2015-02-06 1 views
0

После того, как я создал проект в soapui, теперь я хочу запустить определенные тестовые объекты и тестовые приложения из моего проекта, здесь я нашел пример с Google, но он выполняет все тестовые объекты в проекте.Как запустить определенный TestSuite или TestCase из Soapui с помощью java?

Как я могу указать имя 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

ответ

1

Посмотрите на com.eviware.soapui.impl.wsdl.WsdlProject API, есть getTestSuiteByName(String testSuiteName) метод, чтобы получить TestSuite по его названию, этот метод возвращает com.eviware.soapui.impl.wsdl.WsdlTestSuite объект, который также имеет getTestCaseByName(String testCaseName) метод, чтобы получить TestCase внутри этого TestSuite по имени.

Вы можете запустить как TestSuite (com.eviware.soapui.impl.wsdl.WsdlTestSuite) или конкретного TestCase (com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase), используя run(StringToObjectMap properties, boolean async) метод, как вы делаете в образце кода.

Использование кода вы можете сделать что-то как:

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()); 
... 

Надеется, что это помогает,

Смежные вопросы