了解最新技术文章
TestRail 团队很自豪地宣布发布 TestRail CLI。通过直接从命令行解析 JUnit 风格的测试结果并将其上传到 TestRail,或者通过将 CLI 作为自动构建管道的一部分运行,您可以专注于编写测试代码,而无需在每个测试中编写、测试和维护 API 调用。测试脚本。
现在,在手动和自动测试中集中跟踪测试进度、测量质量和获取历史情报比以往更快、更容易,为测试中的所有利益相关者带来了更高的可见性和可追溯性。
您可以在 GitHub 上找到有关 TestRail CLI 和安装说明的更多信息,或继续阅读以了解更多信息。
使用与手动测试相同的工具来跟踪自动化测试的状态和结果非常重要,以确保整个团队的完全可见性。但是,在 TestRail CLI 之前,如果您想报告测试自动化的结果,则必须编写一个方法来解析结果,并将其上传到 TestRail,并将 API 调用写入自动化框架。现在,只要您使用输出 JUnit 样式 XML 报告或其他可以轻松转换为 JUnit 样式格式的报告样式的测试自动化框架,您就可以使用 TestRail CLI 自动将它们上传到 TestRail。
TestRail CLI 提供了一种与编程语言无关的机制,可将最常见的测试结果格式之一(JUnit 样式的 XML 文件)转换为一组 TestRail 测试结果,自动创建新的测试运行并将结果上传到 TestRail,甚至生成TestRail 中的新测试用例(如果您尚未将它们从自动化框架复制到 TestRail)。以下是最流行的测试自动化框架的一些示例,这些框架可以轻松生成 JUnit 样式 XML 文件中的结果文件:
联合单元
赛普拉斯.io
剧作家
机器人框架
py测试
单位
除了更轻松地将 TestRail 与测试自动化堆栈集成并为您在测试周期中运行的自动化测试提供可见性之外,TestRail CLI 还可以减少维护开销并加快编写新测试自动化脚本的过程,以便您可以在不失去监督的情况下测试覆盖率。CLI 工具还为跟踪和比较临时探索性测试以及安全、负载和性能测试的历史结果提供了新的机会,前提是您用来执行这些类型测试的自动化工具可以生成 JUnit 样式的报告。
继续阅读以了解如何:
✔ 安装 TestRail CLI 工具
✔ 配置您的 TestRail 实例以与 TestRail CLI 结合使用(启用 TestRail API 并添加名为“automation_id”的自定义案例字段)
✔ 运行 CLI 工具并上传测试自动化结果
✔ 在 TestRail 上查看您的测试结果
用户可以在 Jenkins、GitLab CI、GitHub Actions、Azure DevOps Pipelines、TravisCI 等流行工具中的 CI/CD 管道中使用 TestRail CLI。一旦自动化测试作业完成,只需在构建管道脚本中添加另一个步骤即可推送测试结果直接存入 TestRail。
如果您也手动运行单元或其他自动化测试套件,您还可以从本地计算机安装和利用 CLI。
要安装 CLI 工具,您只需安装Python 3和pip3并运行以下命令:
$ pip3 install trcli
在使用 CLI 工具之前,您首先需要配置 TestRail 实例,如下所示:
通过访问管理面板、转到站点设置、单击API选项卡并选中启用API选项来启用 TestRail API 。您可以参考API介绍页面了解更多信息。
创建自定义字段,以便将自动化测试用例代码映射到实际的 TestRail 用例。您可以通过访问“管理”面板,转至右侧的“自定义”并单击“添加字段”来执行此操作。到达字段创建屏幕后,如下图所示,此自定义字段有两个要求:
系统名称必须是automation_id
类型必须是字符串。
如果您仍然不确定如何设置自定义字段,请参阅我们的配置自定义字段文档。
CLI 工具设计简单、高效。安装并正确配置 TestRail 实例后,可以通过命令行传递 JUnit 结果文件,以快速创建运行并添加测试结果。
举例来说,我们设置了一个示例 TestRail 项目来接受传入的 API 请求,并通过命令行将下面的示例报告推送到我们的 TestRail 实例。请注意命令本身的-y选项,它会跳过提示以自动创建新测试。当通过 CI 工具运行 CLI 工具时,这非常有用。
注意:建议您在帐户的“我的设置”下创建 API 密钥并使用它代替密码。这将防止您泄露密码并从而造成安全风险。
您可以在下面的 JUnit 样式 XML 文件中看到我们从自动化项目中获得的测试结果文件示例。
<testsuites name="test suites root"> <testsuite failures="0" errors="0" skipped="1" tests="1" time="0.05" name="tests.LoginTests"> <properties> <property name="setting1" value="True"/> </properties> <testcase classname="tests.LoginTests" name="test_case_1" time="159"> <skipped type="pytest.skip" message="Please skip"> skipped by user </skipped> </testcase> <testcase classname="tests.LoginTests" name="test_case_2" time="650"> </testcase> <testcase classname="tests.LoginTests" name="test_case_3" time="159"> <failure type="pytest.failure" message="Fail due to..."> failed due to… </failure> </testcase> </testsuite></testsuites>
一旦我们在 XML 文件中获得了自动化运行的结果,我们就可以使用以下命令将它们上传到 TestRail。
$ trcli -y > -h https://trcli.testrail.io > --project "TRCLI Test 1" > --username trcli.user@gmail.com > --password TestRail123! > parse_junit > --title "Automated Tests Run" > -f results.xmlChecking project. Done.Adding missing sections to the suite.Found test cases not matching any TestRail case (count: 3)Adding missing test cases to the suite.Adding test cases: 3/3, Done.Creating test run. Done.Adding results: 3/3, Done.Submitted 3 test results in 6.5 secs.
导入过程完成后,您可以看到我们在TRCLI Test 1项目中运行了一个名为Automated Tests Run的新运行(基于您通过 TestRail CLI 命令提交的设置):
通过打开测试运行,您可以看到每个测试用例的结果。然后,您可以进一步深入研究失败的测试用例并检查直接从 JUnit 报告导入的错误消息。这有助于快速了解测试期间出现的问题。
请注意,此测试运行中的测试用例以前并不存在于 TestRail 上。这些测试用例是由 CLI 工具创建的,该工具使用模式classname.name(来自 JUnit 报告的属性)来填写Automation ID字段,以便在将来的测试运行中将结果导入到 TestRail 上的正确用例中,假设测试名称和类名不变。在下图中,您可以看到test_case_3的Automation ID值按照预期填充了值tests.LoginTests.test_case_3,以便 CLI 工具能够在将来的测试结果导入中识别它。
通过使用备用配置文件,快速轻松地将结果提交到不同的实例或项目,使用不同的凭据或命令中的其他预设参数。配置文件将以 YAML 格式编写,命名为 config.yml,并与 TRCLI 可执行文件存放在同一目录中,除非另有说明。也可以使用环境变量。如果命令中引用了配置文件,则配置文件中的所有参数都会覆盖环境变量。命令中指定的任何参数都将覆盖配置文件。
以下示例显示了存储用户凭据的备用配置文件的使用:
host: https://trcli.testrail.io project: TRCLI Test 1username trcli.user@gmail.com password TestRail123!project: TRCLI Test 1title: Automated Tests Run
$ trcli -y > --config alternate_config.yaml > parse_junit > -f results.xml
想象一下,您已经运行了 CLI 工具,并且 TestRail 上有自动化测试结果,但某些测试失败了,您想要重新运行这些测试并使用新结果更新现有的测试运行。为此,您只需传递–run-id参数,CLI 工具将使用该 id 更新测试运行。
$ trcli -y > -h https://trcli.testrail.io > --project "TRCLI Test 1" > --username trcli.user@gmail.com > --password TestRail123! > parse_junit > --title "Automated Tests Run" > --run-id 32> -f results.xmlChecking project. Done.Adding results: 3/3, Done.Closing test run. Done.Submitted 2 test results in 2.5 secs.
您现在应该在测试详细信息面板上看到新的测试结果。这是在同一测试运行下跟踪自动化测试结果的一种方法。
如果您想立即关闭新创建的测试运行,只需传递–close-run参数,CLI 工具将在添加所有结果后执行该操作。如果您不想在运行完成后更改结果,这非常有用。
$ trcli -y > -h https://trcli.testrail.io > --project "TRCLI Test 1" > --username trcli.user@gmail.com > --password TestRail123! > parse_junit > --title "Automated Tests Run" > --close-run true> -f results.xmlChecking project. Done.Creating test run. Done.Adding results: 3/3, Done.Closing test run. Done.Submitted 3 test results in 3.2 secs.
您可以在“已完成的测试运行”部分下找到您的测试运行。
CLI 工具旨在通过一系列 API 调用快速上传测试结果,这本质上受到网络延迟的影响。为了优化性能,使用多个线程同时执行一系列 API 调用。
虽然多线程允许 CLI 工具更有效地调用 TestRail API,但如果达到 API 速率限制,也可能会很麻烦。为了避免这种情况,采用了重试和限制机制。如果达到速率限制,CLI 工具将等待适当的时间并重试调用以获得成功响应。
为了使贡献者能够更轻松地充满信心地对开源 TestRail CLI 项目进行更改,我们包含了大量的单元测试,以避免不必要的副作用。
需要不同类型报告的解析器吗?只需在 GitHub 上分叉该项目或提交拉取请求并创建一个新的解析器类,根据 CLI 工具数据模型实现它,您就可以信任其余的代码片段来上传您的测试结果!您还可以实现新功能,而无需修改现有代码。
想要查看 TestRail CLI 中的一些附加功能或新功能吗?请随意在 GitHub 项目上提交问题或自行进行更新并创建拉取请求以审核您的更改并将其合并到源代码中。