【问题标题】:How to run specific TestSuite or TestCase from Soapui using java?如何使用 java 从 Soapui 运行特定的 TestSuite 或 TestCase?
【发布时间】:2015-02-06 19:21:36
【问题描述】:

我在soapui中创建了一个项目后,现在我想从我的项目中运行特定的TestSuite和TestCases,在这里我找到了一个google的例子,但它执行了项目中的所有TestSuite。

如何指定要运行的 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());
      }
    }
  }
}

【问题讨论】:

标签: java soapui


【解决方案1】:

查看com.eviware.soapui.impl.wsdl.WsdlProject API,有一个getTestSuiteByName(String testSuiteName) 方法可以通过名称获取TestSuite,该方法返回一个com.eviware.soapui.impl.wsdl.WsdlTestSuite 对象,该对象也有getTestCaseByName(String testCaseName) 方法通过名称获取此TestSuite 中的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());
...

希望这会有所帮助,

【讨论】:

    猜你喜欢
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    相关资源
    最近更新 更多