java - 如何使用 java 从 Soapui 运行特定的 TestSuite 或 TestCase?

标签 java soapui

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

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

最佳答案

查看com.eviware.soapui.impl.wsdl.WsdlProject API ,有一个getTestSuiteByName(String testSuiteName)方法通过名称获取 TestSuite,此方法返回 com.eviware.soapui.impl.wsdl.WsdlTestSuite对象也有 getTestCaseByName(String testCaseName)方法通过名称获取此 TestSuite 中的 TestCase。

您可以运行 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());
...

希望这有帮助,

关于java - 如何使用 java 从 Soapui 运行特定的 TestSuite 或 TestCase?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28373198/

相关文章:

java - 如何让 PhantomJSDriver 在 selenium 中工作?

c# - 授权 : Basic in client for SOAP Service

web-services - 修复 SoapUI 中的 "Missing SOAP Operations in Project"错误

java - 在哪里可以找到 wsdl url? (对于soapUI)

java - 使用 javax.servlet.RequestDispatcher.include() 时如何将参数传递给 .jsp 文件?

java - 附加调试器时程序永远不会抛出异常

Soap UI - Windows 中存储的首选项/设置在哪里

soapui - 如何使用 soapUi 在枚举字段中发送多个值

java - java中如何知道引用对象的类型?

c# - 我应该坚持开源,还是探索.net世界的时间?