【问题标题】:Is there a way to launch specific test case from testSuite(made with soapUI) trough jenkins?有没有办法通过jenkins从testSuite(用soapUI制作)启动特定的测试用例?
【发布时间】:2014-08-13 08:54:08
【问题描述】:

正如您在标题中看到的,我有一个问题!我正在寻找一种在 testSuite 中启动特定 testCase 的方法。 testSuite 由软 SoapUi 制作。一个 testSuite 是一个包含多个测试用例的 xml 文件。通过 Jenkins 软件,我想执行一项工作来尝试我的 xml 脚本。为此,我使用了一个 Maven 插件,但我的问题是我不知道如何指定执行一个或两个测试用例,而不是每次都执行。例如,如果我执行我的脚本一次并且所有测试用例都成功,除了 2 失败,我如何使用相同的脚本执行仅有的两个失败的测试用例。

亲切

【问题讨论】:

  • 你的问题,连同下面的评论,听起来你不确定你要完成什么。无论如何,这更像是一个讨论,SO并不真正支持。见How to Ask

标签: maven jenkins maven-plugin soapui jenkins-plugins


【解决方案1】:

因此,为了处理您的场景,您可以在 SOAP UI 测试用例中实现通常称为“标记”的东西。

让我们讨论一些例子,例如,

场景一:

  • 您可以添加 testCase 属性“Runmode”,其值可以是“Y”或“N”。

  • 同样会有一个项目属性“testExecution”,其中包含要执行的 tescase。

  • 现在在运行 Jenkins 作业时,您可以将测试用例列表作为参数传递给 maven SOAP UI 项目,例如 -DtestExecution="testcase1,testcase4"。

  • 首先,在项目的 SetUp 脚本中,从 testExecution 属性中解析这些测试用例,并为测试用例分配 RunMode。如果用户没有提及任何测试用例,也要处理这些用例,在这种情况下,每个测试用例都必须运行。

场景二:

  • 您可以指定一些标签,例如“SmokeTests”、“Regression”、“Integration Tests”。
  • 并添加项目属性,如“TestExecution”。
  • 同样,您可以从 maven 参数中传递其值,例如 -DTestExecution = 'SmokeTest'
  • 首先,您需要为每个测试用例定义“TAG”属性,其值可以是“烟雾测试”、集成测试等。
  • 所以基于TestExecution的值,你可以控制测试用例的执行。

希望这会对你有所帮助。

【讨论】:

  • 谢谢你的回答 :) 但实际上将这个解决方案应用于我的情况非常复杂,因为有超过 1000 个 testCase 和超过 500 个 testSuite:/ 我期待关于 maven 的解决方案插件端或其他插件(如果有)!
  • @nayan,你是如何在 maven.pom xml 中设置 TestExecution 的?我在测试用例级别添加了标签,例如回归,当使用 -DTestExecution 运行 maven 时仍然运行所有测试用例?
【解决方案2】:

因此,在这种情况下,您可以将一些参数与 maven 插件一起用于控制功能测试。

插件设置

测试设置

projectFile : 指定要使用的 SoapUI 项目文件的名称,默认值为 ${pom.artifactId}-soapui-project.xml

testSuite### :指定要运行的TestSuite的名称

testCase### : 指定要运行的TestCase的名称

endpoint : 覆盖任何 TestRequests 调用的服务端点

host : 覆盖目标 host:port 将被任何 TestRequests 调用

username : 覆盖任何 TestRequests 运行使用的用户名

password :覆盖任何 TestRequests 运行使用的密码 domain : 覆盖任何 TestRequests 运行使用的域

printReport : 控制是否应将小型测试报告打印到控制台(真/假)

outputFolder : 设置结果/报告保存到哪个文件夹

junitReport : 打开 JUnit 报告的创建,(true/false)

exportAll :控制是否应导出所有测试请求(默认仅导出错误), (真假) settingsFile : 指定要使用的 SoapUI 设置文件

wssPasswordType : 指定 WSS 密码类型

project.password : 指定加密项目的密码

settingsFile.password : 指定加密设置文件的密码

globalProperties : 设置全局属性

projectProperties : 设置项目属性

saveAfterRun : 运行后保存项目文件

testFailIgnore : 忽略失败的测试。

reportFormat : 设置创建报告的格式。仅限专业版。

reportName :设置要创建的报告。仅限专业版。

coverage :设置输出以包含 Coverage HTML 报告。仅限专业版。

environment :设置活动环境。仅限专业版。

【讨论】:

    【解决方案3】:

    在这个聚会上有点晚了,但您可以通过以下方式执行此操作 - 在 Pom.xml 中添加以下条目:

                    <configuration>
                      <reportName>SoapUI report</reportName>
                      <projectFile>name-of-project-file</projectFile>
                      <outputFolder>${project.build.directory}/reports/</outputFolder>
                      <junitReport>true</junitReport>
                      <exportAll>false</exportAll>
                      <printReport>true</printReport>
                      <testSuite>${testSuite}</testSuite>
                      <testCase>${testCase}</testCase>
                      <projectProperties>
                        <projectProperty>Environment=${Environment} /projectProperty>
                      </projectProperties>
                    </configuration>
    

    TestSuite 可以在命令行中使用

    mvn test -DtestSuite="name of your test suite" 
    

    或者如果您想指定测试用例的名称:

    mvn test -DtestCase="name of your test case"
    

    或者如果你想同时指定:

    mvn test -DtestCase="names of your test case" -DtestSuite="name of your test suite"
    

    更新

    我发现如果你想运行一个特定的测试用例,你需要指定 -DtestSuite

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-10
      • 2011-10-23
      • 1970-01-01
      • 2018-10-30
      • 1970-01-01
      • 1970-01-01
      • 2015-11-05
      • 2022-01-14
      相关资源
      最近更新 更多