了解最新技术文章
本文是使用TestRail 简化测试自动化系列博客文章的一部分,旨在指导您在 TestRail 中集中测试自动化工作,如下图所示。
如果您遵循了本系列博客文章中的前几篇文章,那么您现在应该已经设置了测试执行管道,并将测试结果作为工件存储在 Jenkins 上。如果您所在的组织重视一致的测试管理和可见性,您将希望在测试管理工具中管理自动化测试结果,以便可以集中所有测试活动并生成综合且丰富的报告。
为了使这个过程尽可能轻松、无缝,TestRail 提供了一个 CLI 来上传您的测试结果,只要您的测试自动化框架可以生成 JUnit 风格的报告。TestRail CLI 解析 JUnit 报告,自动在 TestRail 上创建测试用例,创建测试运行,并将结果上传到相应的测试。
TestRail CLI 是一个用 Python 开发的工具,可在 Python Package Index (PyPI) 中找到。要使用此工具,您只需在系统上安装 Python(我们已经为 Pytest 项目进行了配置)。您可以使用以下命令安装它。
$ pip install trcli
要在 TestRail 实例上使用 TestRail CLI,您只需执行一些小配置。请参阅TestRail CLI 文档了解所需步骤并熟悉通过 CLI 提供的功能。
现在让我们回到 Jenkins 工作并快速进行必要的更改以将测试结果上传到 TestRail。
1. 编辑执行 shell 步骤命令,调整它以使用 TestRail CLI 上传测试结果。
下面是上面使用的脚本的副本以及每个部分的简要说明。
# Setup virtual environmentpython3.10 -m venv ./venv. ./venv/bin/activate# Install and run test projectpip install -r requirements.txtpytest --junitxml "reports/junit-report.xml" "./tests" || pytest_exit_code=$?# Install TestRail CLI and upload test resultspip install trclitrcli -y -h "https://INSTANCE.testrail.io" -u "USER_EMAIL" -p "API_TOKEN" --project "PROJECT NAME" parse_junit --title "Automated Test Run" --run-description "CI Build: ${BUILD_URL}" -f "reports/junit-report.xml" # Exit with Pytest exit codeexit $pytest_exit_code
# Install and run test project
第一个更改是 pytest 命令。请注意该--junitxml "reports/junit-report.xml"
选项,它命令 Pytest 生成供 TestRail CLI 使用的 JUnit 样式报告。您可以在与Integrating with Pytest相关的文档中找到更多详细信息。另一个细节是|| pytest_exit_code=$?
pytest 命令之后的内容。这告诉 shell 即使测试失败也要继续,这会导致 Pytest 返回失败退出代码,否则会停止整个作业执行,而不将测试结果上传到 TestRail。稍后我们将使用 退出脚本,pytest_exit_code
根据测试结果确定构建是否通过。有多种方法可以实现此行为,并且插件可以帮助您实现此目的,这是实现本示例目的的最简单方法。
# Install TestRail CLI and upload test results
如果测试执行成功完成(无论是否有失败的测试),您现在应该有一个 JUnit 样式的报告,以便能够将结果上传到 TestRail。为此,您只需使用 pip 安装 TestRail CLI,然后使用 TestRail 实例详细信息执行它。您需要替换-h
、-u
和-p
的占位符--project
。该脚本中 trcli 调用的另一个小但有用的细节是选项--run-description "CI Build: ${BUILD_URL}"
。这会将当前的 Jenkins 构建 URL 添加到您的 TestRail 测试运行中,以便您可以轻松导航回它。最后的建议是,不要直接在脚本上使用密码或 API 令牌,而是使用Jenkins 凭据管理器。
# Exit with Pytest exit code
如前所述,我们只需使用原始 Pytest 退出代码退出脚本,这将通知 Jenkins 实际自动化测试执行的结果。
1. 现在我们已经完成了构建步骤的更改,我们可以再次运行作业。为此,您只需点击左侧面板上的“立即构建”操作即可。
2. 作业完成后,通过查看构建的控制台输出页面上的日志,您应该能够看到脚本已按预期执行。如果测试执行完成且没有任何障碍,并且 TestRail CLI 已正确配置,您应该能够在构建日志上看到它已将测试结果提交到 TestRail 实例。
3. 最后,如果您打开 TestRail 实例并转到 Test Runs & Results 页面,您应该能够找到新创建的名为 Automated Test Run 的执行并查看您的测试结果,以及指向您的 Jenkins 作业构建的链接生成了这个测试运行。请注意运行描述链接,以便您可以导航到 Jenkins 并进一步调试您的测试结果。
执行本文中的所有说明后,您将完成下图中的步骤 3、4 和 5。
现在您已将测试结果集中在 TestRail 中,您不仅可以检查自动化测试运行的结果以及失败测试的错误消息,还可以在向您显示的报告中汇总手动和自动测试工作围绕您的应用程序的完整测试覆盖范围,甚至跟踪测试自动化进度。您还可以像报告手动测试结果一样,直接从自动化测试结果向您喜欢的问题跟踪器报告错误。
此时,您仍然需要进入 Jenkins 来触发自动