本文通过Kimi转译
原英文地址见:engineering.kablamo.com.au/posts/2024/…
自动化测试中一个关键的挑战是找到一个能够提供全面测试执行视图的报告工具。经过对多种工具的尝试,我发现Monocart不仅解决了我的报告问题,而且显著提升了我们的Playwright自动化框架。
我们使用Playwright构建了一个强大的自动化框架,用于我们的前端应用程序和后端服务,并且这些测试大多数在构建部署期间运行。然而,Playwright缺少一个云仪表板来上传测试结果,这本来可以进一步增强我们的测试流程。
有了Monocart,我们现在拥有了一个强大的报告工具,它提供了一个云仪表板来展示测试结果,从而提高了我们测试套件的可扩展性和可靠性。
Monocart简介
Monocart是一个尖端的软件解决方案,旨在简化和优化测试执行报告的生成与分析。它的一个关键特性是其用户友好的界面,这使得用户能够轻松地浏览和理解测试运行情况。通过这个界面,用户可以方便地查看通过和失败的测试数量,应用过滤器以快速找到特定信息,并根据需要自定义报告。此外,Monocart还能生成详细且视觉吸引力强的自动化测试报告,并允许用户自定义并与其他测试管理工具集成。
Playwright简介
Playwright是由微软开发的强大自动化库,用于网页浏览器。它是一个开发者和测试人员可以信赖的工具,用于自动化网页浏览器交互,从而创建可靠和可扩展的测试套件。Playwright支持多种编程语言,包括JavaScript、TypeScript、Python和C#。它提供了一个统一的API,用于跨不同浏览器(包括Chromium、Firefox和WebKit)与网页交互。Playwright在我们的自动化测试流程中扮演着关键角色,而Monocart通过提供强大的报告工具进一步增强了其功能。
Monocart作为优秀报告工具的原因
Monocart的报告输出美观,为测试执行提供了清晰的视图。它直观地展示了通过和失败的测试数量,并提供了多种过滤器,如通过、失败、跳过、不稳定、套件和测试,使用户能够轻松找到所需信息。
用户无需下载或安装任何额外软件即可生成报告,只需在Playwright配置文件中添加Monocart的详细信息即可。
Monocart是一个开源工具,这意味着它是免费提供且透明的。这种开源特性确保了无需订阅费用,提供了对其可靠性的信心和安心。此外,它还允许社区贡献和持续改进,使其成为自动化测试需求的可靠选择。
Monocart简化了测试失败的审查和及时调试过程,通过提供详细的报告,将测试失败归类为错误或损坏的测试,并允许配置日志、步骤、固定装置、附件、时间、历史记录以及与测试管理系统(TMS)和缺陷跟踪系统的集成。这确保了负责的开发者和测试人员能够快速获取所有必要的信息,有效解决问题,减少解决常见缺陷所需的时间。
Monocart报告为利益相关者提供了清晰的覆盖功能概览、缺陷聚类、执行时间线和其他相关信息。Monocart的模块化和可扩展性确保您始终可以进行调整以更好地满足您的需求。
每个失败的测试都有详细的堆栈跟踪。
报告可以根据所需的字段进行定制。
与Playwright集成的步骤
-
安装monocart-reporter作为开发依赖项:
npm i -D monocart-reporter -
将
Monocart报告器添加到Playwright配置文件中,并指定测试报告的名称和输出文件。完成这些步骤后,您可以使用Monocart生成全面的报告:outputFile: './test-results/report.html'
其他配置可在Monocart的GitHub - monocart-reporter找到。
在CICD中生成报告的方法
我们使用AWS CodeBuild / CodePipeline作为项目的CICD工具,但以下步骤适用于任何CICD工具。
-
设置Buildspec:
- 创建
buildspec.yml文件。 - 指定构建规范的版本。
- 定义构建阶段,包括
install、pre_build、build、post_build和artifacts。
- 创建
-
开始执行:
- 检测到更改时,流水线自动触发并执行测试,或手动触发构建。
-
监控流水线执行:
- 在CodePipeline控制台监控流水线进度,查看每个阶段和操作的状态。
-
执行结束:
- 执行结束后,日志中会打印出访问报告的URL。
如何查看报告
转到test-results文件夹并打开report.html文件。一个精美的报告将使用系统默认浏览器打开。
结论
Monocart提供了多种功能,增强了测试执行的报告和分析,包括显示测试进展的趋势图、突出测试覆盖的代码区域的报告、电子邮件通知以更新测试结果,以及与流行的测试管理工具的集成。我仍在探索这些功能,并计划很快撰写更多关于它们的博客文章。