2015-02-06 44 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()); 
... 

希望這有助於

相關問題