从 CI 服务器触发 Silk Central

本部分介绍如何通过从 CI 服务器使用 Gradle 脚本触发 Silk Central 上的执行,更好地将 Silk Central 集成到持续集成 (CI) 过程中。

此外,本部分还介绍如何从 Silk Central 获取结果以及如何在构建过程中使用这些结果。

要从 CI 服务器触发 Silk Central 上的执行并从 Silk Central 收集执行结果,您需要将带有相应命令的 Gradle 脚本添加到源代码管理中。您可以从 Silk Central UI 下载 silkcentral.gradle 文件。导航到帮助 > 工具,然后单击用于 CI 服务器集成的 Gradle 脚本

您可以在 Gradle 脚本中配置以下属性:
属性 说明
sc_executionNodeIds 要启动的执行计划的逗号分隔列表。该列表不应包含文件夹。例如 22431,22432,22433
sc_host Silk Central 主机。例如 http://[sc_server_name]:19120
sc_token 用于用户身份验证的 Web 服务令牌。您可以在 Silk Central UI 的设置页面中生成 Web 服务令牌。要访问此页面,请将鼠标光标悬停在 Silk Central 菜单中的用户名上,然后选择用户设置。例如 80827e02-cfda-4d2d-b0aa-2d5205eb6eq9
sc_sourceControlBranch 可选:指定此属性可签出特定分支。如果没有指定分支,则使用执行计划的设置。
sc_ buildName 可选:要运行的构建。如果没有指定构建,则使用执行计划的设置。您只能为执行计划节点而非文件夹设置此属性。
sc_StartOption 可选:应执行的测试。如果没有指定,将执行分配的所有测试。允许的值有:
  • ALL
  • 失败
  • NOT_EXECUTED
  • NOT_EXECUTED_SINCE_BUILD
  • FAILED_NOTEXECUTED_SINCE_BUILD
  • HAVING_FIXED_ISSUES
默认值为 ALL。
sc_sinceBuild 可选:尚未执行测试的开始构建名称。如果将 sc_StartOption 属性设为 FAILED_NOTEXECUTED_SINCE_BUILD 或 NOT_EXECUTED_SINCE_BUILD,请指定此属性。
sc_collectResults 可选:如果为 true,那么脚本将一直等到 Silk Central 执行完成,并以 JUnit 格式编写结果文件。如果为 false,那么脚本将触发执行,并且将完成而不等待结果。这些文件将存储在子文件夹 sc_results 中。默认值为 true。Boolean
sc_collectResultFiles 可选:如果为 true 且 sc_collectResults 也为 true,该脚本将下载各个测试生成的结果文件。这些文件将存储在子文件夹 sc_results 中。默认值为 false。Boolean
sc_startDelay 可选:以秒为单位的启动延迟。如果您有多个执行计划要执行,可以指定它。将在各次启动之间按照指定的延迟顺序启动这些执行计划。如果您需要最大程度降低启动时测试环境上的工作量,例如在启动虚拟机或安装测试中的应用程序时,这会很有帮助。默认值为 0。

您可以直接在脚本中指定属性,或者在触发脚本时传递属性。

触发该脚本时指定的所有其他项目属性都将作为参数传递给 Silk Central 并用于相应执行。这样您就可以使用构建服务器中的值参数化 Silk Central 中的执行。

例如,如果您的构建在 Docker 中启动测试服务器,则可以通过在命令行中指定属性来将 URL 传递给此服务器:
-PmyServerUrl=http://docker:1234

命令行示例

以下命令从命令行启动脚本,启动 localhost 上的执行树节点 22431、22432 和 22433,并使用 Web 服务令牌 80827e02-cfda-4d2d-b0aa-2d5205eb6ea9 进行身份验证:
gradle -b silkcentral.gradle
:silkCentralLaunch -Psc_executionNodeIds='22431,22432,22433'
-Psc_host='http://localhost:19120'
-Psc_token='80827e02-cfda-4d2d-b0aa-2d5205eb6ea9'

有关从 Jenkins 触发 Silk Central 上的执行的具体信息,请参阅从 Jenkins 触发执行。有关从 TeamCity 触发 Silk Central 上的执行的具体信息,请参阅从 TeamCity 触发执行