2015-02-06 40 views
0

我在soapui中创建了一个项目后,现在我想从我的项目中运行特定的TestSuites和TestCases,在这里我找到了一个谷歌示例,但它执行了项目中的所有TestSuite。如何使用java从Soapui运行特定的TestSuite或TestCase?

如何指定要运行的TestSuite和TestCase的名称?

import static org.junit.Assert.assertEquals; 
import java.util.List; 
import org.junit.Test; 

import com.eviware.soapui.impl.wsdl.WsdlProject; 
import com.eviware.soapui.model.support.PropertiesMap; 
import com.eviware.soapui.model.testsuite.TestCase; 
import com.eviware.soapui.model.testsuite.TestRunner; 
import com.eviware.soapui.model.testsuite.TestRunner.Status; 
import com.eviware.soapui.model.testsuite.TestSuite; 

public class TestRunnerSample { 

    @Test 
    public void fullControl() throws Exception { 

    WsdlProject project = new WsdlProject("C:/Folder/Project.xml"); 
    List<TestSuite> testSuites = project.getTestSuiteList(); 

    for(TestSuite suite : testSuites) { 
    List<TestCase> testCases = suite.getTestCaseList(); 

     for(TestCase testCase : testCases) { 
     System.out.println("Running SoapUI test [" + testCase.getName() + "]"); 
     TestRunner runner2 = testCase.run(new PropertiesMap(), false); 
     assertEquals(Status.FINISHED, runner2.getStatus()); 
     } 
    } 
    } 
} 
+0

您是否尝试过的官方文档? http://www.soapui.org/test-automation/junit/junit-integration.html – SiKing 2015-02-07 16:21:49

回答

1

com.eviware.soapui.impl.wsdl.WsdlProject API,有getTestSuiteByName(String testSuiteName)方法,通过它的名字来获得的TestSuite,这个方法返回一个com.eviware.soapui.impl.wsdl.WsdlTestSuite对象,它也有getTestCaseByName(String testCaseName)方法通过名称来获得该测试包内一个TestCase。

您可以像使用代码示例一样使用run(StringToObjectMap properties, boolean async)方法运行TestSuite(com.eviware.soapui.impl.wsdl.WsdlTestSuite)或特定TestCase(com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase)。

使用你的代码,你可以做一些事情如:

WsdlProject project = new WsdlProject("C:/Folder/Project.xml"); 
WsdlTestSuite ts = project.getTestSuiteByName('myTestSuite'); 
WsdlTestCase tc = ts.getTestCaseByName('myTestCase'); 

System.out.println("Running SoapUI test [" + tc.getName() + "]"); 
// run a specific testCase 
TestRunner tcRunner = tc.run(new PropertiesMap(), false); 
assertEquals(Status.FINISHED, tcRunner.getStatus()); 

// or alternatively run the whole TestSuite 
TestRunner tsRunner = ts.run(new PropertiesMap(), false); 
assertEquals(Status.FINISHED, tsRunner.getStatus()); 
... 

希望这有助于

相关问题