文本

当涉及到使用 Selenium 进行测试时,使用正确的 Selenium 报告工具生成的详细测试报告可以为测试活动创造奇迹。使用 Selenium 报告工具生成的测试报告为测试活动提供了详细的见解,并显示了测试场景的状态。

通常您会遇到这样的情况: 您需要立即将测试报告呈现给某人或者用于其他目的。在这些情况下,您可以利用 Selenium 的最佳报告工具来生成简短且可理解的测试报告,以便团队中的任何人都可以快速掌握信息。

Selenium报告工具的重要性

由于 Selenium 为 Java、 c # 、 Python、 r 等多种语言提供了客户端 api,因此选择最好的 Selenium 报告工具非常重要,它既满足首选编程语言的要求,又符合您的标准。

Selenium 测试结果报告应该包含所有相关信息,以便您的团队成员(和经理)能够评估报告的进度。在本博客的最后,您将能够根据用于测试用例开发的语言选择 selenium 的最佳报告工具。

下面是我们根据诸如易于设置、内容清晰、支持的报告格式(如 HTML、 XML 等)、定价等因素选择的前9个 Selenium 报告工具。

  1. TestNG Reporting Tool 这个流行的单元测试框架受到 JUnit 和 NUnit 的启发。它提供了一个具有默认报告特性的库,可用于生成可以存储在指定文件夹中的测试报告。

除了基本级别(或摘要)报告之外,它还提供了生成详细报告的选项。在没有任何人工干预的情况下生成的文件索引.html 包含整个报告,以及关于错误、执行的测试、测试场景状态等信息。

当 TestNG 与诸如 Eclipse 或 IntelliJ IDEA 这样的 IDE 一起使用时,TestNG 可以创建可发送邮件的报告 html,显示每个可嵌入和共享的测试场景的得分。

Language – Java License – Open Source

语言-Java 许可证-开放源码 优点

  1. 没有必要进行任何额外的安装,因为 TestNG 框架的报告特性是默认的
  2. 提供创建 HTML 报告而不需要任何代码/生成更改
  3. 准备创建可以与团队中必要的涉众共享的详细报告(emailable-report.html)
  4. 最佳 Selenium 和 Java 组合报表工具
  5. 易于使用的 CI/CD 工具,如 Jenkins、 GitLab CI 等

缺点

  1. 只有 TestNG 框架可用

  2. 只支持 Java 我们的裁决 尽管使用 TestNG 框架生成的默认报告具有原始的外观和感觉,但它提供了测试工程师或测试经理可能感兴趣的所需信息,这些测试工程师或测试经理希望了解测试的细节。

  3. ReportNG ReportNG 是为 TestNG 框架开发的一个简单的 HTML 报告插件。它可以用来代替默认的 testnghtml 报告。ReportNG 在测试报告中使用了一种颜色编码机制,使得报告一目了然。

该插件生成100% 有效的 XHTML 1.0文件。有一个选项可以通过使用自己的 CSS 文件重写默认样式表来重写报告中使用的默认颜色编码。

Language – Java License – Open Source

语言-Java 许可证-开放源码 优点

  1. 比 TestNG 框架提供的默认 HTML 报告更详细的报告机制
  2. 易于使用用户定义的 CSS 文件自定义外观
  3. 包含第二个记录器,它从0.9.0版本生成 JUnit 格式的 XML 输出
  4. 易于集成的 CI/CD 工具 jenkins
  5. JUnit 其版本的 JUnit reporter 忽略了 TestNG 的套件概念,并生成与使用 JUnit 生成的输出相对内联的输出 缺点

仅适用于TestNG框架

最新版本(ReportNG 1.1.4)已通过TestNG 6.2进行了测试,并假定可与更高版本的TestNG一起使用。

ReportNG 1.1.4是ReportNG的最终版本,该版本不再维护该软件。 但是,ReportNG可以在GitHub上进行开发

我们的判决

与使用TestNG生成的默认报告相比,ReportNG插件为Selenium测试结果报告增加了巨大的价值。 但是,由于它的开发已停止,因此它不是使用Java的Selenium的最佳报告工具。 它可能不适用于将来的TestNG框架版本。

  1. Allure Allure是一个开放源代码框架,旨在创建易于理解的测试执行报告。 它是轻量级的,可让您添加参数,步骤和附件。

魅力基于标准xUnit结果,并向其中添加了一些补充数据。 在Allure中生成报告分为两个步骤。

在第一步(也称为测试执行阶段)中,测试框架附带一个名为适配器的小库,该库将有关已执行测试的详细信息保存到XML文件。 在第二步(也称为报告生成阶段)中,将XML文件转换为HTML报告。 可以使用命令行工具,CI插件或构建工具来执行转换步骤。

Allure提供了适用于Ruby,Python,Scala,Java,PHP和C#的广泛使用的测试框架的适配器。

语言– Ruby,Python,Scala,Java,PHP和C#

许可证–开源 好处

生成详细的测试报告,以清楚地显示摘要,缺陷,行为(用于BDD测试),图形和时间表

流行测试框架的提供者适配器

GitHub和StackOverflow等平台上的活跃社区

可用作本地解决方案

易于与流行的CI / CD工具(如Jenkins,GitLab CI等)集成,其中报告生成是POST Build操作的组成部分

支持拍摄屏幕截图,此功能有助于进行UI测试

使用不同编程语言的详细文档和详尽示例

魅力插件系统为报告的表示提供了更大的灵活性

缺点

如果要从Allure框架中获得更高的价值,则应将其与CI / CD工具(如Jenkins,Bamboo,TeamCity等)结合使用。

我们的判决

魅力框架是Selenium最好的报告工具之一,因为它提供了现代风格的报告。 可以使用一系列工具(例如命令行,Jenkins,TeamCity,Bamboo,Codefresh,Gradle和Maven)生成吸引力报告。

魅力是少数可用于大型项目的Selenium报告工具之一,因为它创建易于理解的报告(带有颜色编码和样式)。

  1. JUnit

JUnit提供了一个选项,作为J​​ava和Selenium的Selenium报告工具之一。 @BeforeClass批注下的实现在开始类中的任何批注之前运行。 因此,可以在@BeforeClass批注下执行诸如打开HTML报告,添加预定义信息等预执行任务。

一旦完成所有测试,便会运行@AfterClass注释下的实现。 后执行任务(例如添加测试用例结果和关闭报告)可以在@AfterClass批注下。

与TestNG一样,JUnit也以非常简单易懂的格式提供Selenium测试结果报告。

语言– Java

许可证–开源

好处

默认情况下,JUnit框架提供报告功能。

JUnit是Java开发人员使用的一种流行的开源单元测试工具。因此,JUnit的报告功能自动成为Selenium和Java的最佳报告工具之一。

它创建易于理解的HTML报告。

缺点

要在JUnit中使用Selenium报告工具,必须完成一些实现。

Selenium测试结果报告具有原始的外观。

我们的判决

由于JUnit是用于单元测试(包括跨浏览器测试)的流行测试框架,因此,如果J外观报表的外观不是最高优先级,则JUnit报表将成为首选。 您可以将JUnit框架与流行的CI / CD工具(如Jenkins)一起使用。 由于该实施只需极少的更改(无需更改)即可转换到持续集成(CI)环境。

  1. HTML Publisher + Jenkins

Jenkins是功能强大的开源CI / CD工具,得到了充满活力的社区和不断发展的插件生态系统的支持。 HTML Publisher插件用于发布内置Jenkins为作业和构建页面生成的HTML报告。

HTML Publisher插件可以与Jenkins中的FreeStyle和Pipeline项目一起使用。 在Jenkins中安装插件并与工作一起使用非常容易。 HTML报告目录位置必须存档,并且索引页(index.html)必须添加为“发布后操作”的一部分。

要在Jenkins Pipeline上使用HTML Publisher插件,必须在管道的“ post”部分中添加publishHTML步骤。

语言– Java,Python,C#

许可证–开源 好处

Jenkins中的HTML Publisher插件使用户可以发布在测试运行期间创建的HTML报告,并将其包含在Jenkins项目结果中。

它支持针对Ruby,Python,Java和C#的流行测试框架。

您可以在Jenkins中使用第三方API生成带有测试结果的HTML报告

在FreeStyle项目和Jenkins Pipeline项目中使用插件相对容易。

统一的颜色编码指示执行的测试的状态,从而易于理解报告内容

缺点

由于哪些用户(尤其是新手)在配置插件时会遇到问题,在HTML报告中显示问题等等,因此文档并不详尽。

我们的判决

如果您正在使用Jenkins进行持续集成,并且正在寻找可用于发布简单HTML报告的插件,则应使用HTML Publisher插件。 此外,您可以使用它向构建中添加HTML格式的代码覆盖率报告。

  1. PyTest HTML

PyTest是一种流行的单元测试框架,用于使用Selenium和Python进行自动化测试。 许多开发人员更喜欢用PyTest代替PyUnit,后者是Python中的默认单元测试框架。

pytest-html是PyTest广泛使用的插件,可为测试结果生成HTML报告。 由于它是一个插件,因此很容易与PyTest框架一起安装和使用。 使用pytest-html生成的Selenium测试结果报告可以是HTML或XML格式。

语言– Python

许可证–开源

资源

好处

插件pytest-html易于配置和安装。

它支持流行的报告格式,例如HTML和XML。

使用LambdaTest提供的基于云的Selenium Grid支持的API可以轻松增强报告功能。

缺点

该支持仅适用于PyTest框架,即不能与Python中的其他测试框架一起使用。

使用pytest-html生成的报告具有原始的外观。

我们的判决

开发人员和自动化测试人员更喜欢将pytest-html插件与PyTest结合使用,以生成复杂程度最小的测试自动化报告。 尽管报告中提供的信息是基本信息,但它使解码输出的任务更加容易。 它是使用PyTest对Selenium进行报告的最佳工具之一,因为使用pytest-html可以轻松开始生成PyTest报告。 对于高级报告,您应该使用Allure for PyTest。

  1. JUnit插件+ Jenkins

在Jenkins中,JUnit插件提供了一个发布者,该发布者使用在构建过程中生成的XML测试报告来生成HTML报告。 该插件还添加了历史测试结果的可视化,用于查看测试报告的Web UI,跟踪测试用例的状态(包括故障)等。

在Jenkins中配置了带有TestNG的选项JUnit测试报告XML格式后,它还可以提供有关测试结果的其他信息(例如趋势)。 JUnit Publisher插件可以与FreeStyle项目和Jenkins Pipeline一起使用。

可以将其配置为允许空结果,仅在测试成功后才触发报告等,这是构建后操作的一部分。

语言– Java

许可证–开源

资源

好处

对JUnit和TestNG框架的内置支持。

Jenkins中简单高效的插件,用于生成测试自动化报告。

仅当它们以JUnit格式生成报告时,它才能与其他测试自动化框架轻松集成。

缺点

仅适用于詹金斯。

前提条件是报告应以JUnit格式生成。

报表具有原始外观。

  1. Extent Reports

Extent Reports库也像其他副本库一样用于生成HTML报告。 JUnit和Extent库提供的报告之间的主要区别在于,信息的可读性和清晰度得到补充,其中包括饼图和其他可视元素。

Extent Reports分为两种不同的版本-社区版和专业版。 在撰写本文时,ExtentReports库的最新版本为版本5。ExtentReports库提供了添加日志,事件,屏幕截图,设备,标签,作者或任何其他可增强报告信息的信息的功能。 它也可以与TestNG和Junit框架一起使用。

语言– Java,C#

许可证–社区和专业版

资源

好处

精美精美的现代报告,其中包含与自动化测试相关的各个方面。

详尽的文档,易于入门。

支持不同的报告格式,即HTML,电子邮件或将数据推送到MongoDB for Klov。

通过从XML或直接从代码指定自定义CSS(或JavaScript)来自定义每个报告模板的选项。

单个仪表板中的“历史分析和见解”可帮助跟踪自动化测试的进度,并分析其随着时间的执行情况。

可以与CI / CD工具集成。

专业版可以与流行的CDN平台(例如Amazon AWS和S3)一起使用。

缺点

它仅支持Java和C#。

ExtentReports社区版的仪表板中的功能有限。

Community Edition不支持与CI / CD工具集成。

我们的判决

扩展报告是Selenium的最佳报告工具,因为ExtentReports库提供了可用于生成详尽的Selenium测试结果报告的功能。 我们期望在ExtentReport库的将来版本中支持Python。 Extentx服务器存储历史数据,可以轻松分析自动化测试活动的进度。

  1. Maven Surefire插件+ Jenkins

Maven Surefire报告插件是Jenkins中广泛使用的插件之一。 它以XML格式(即TEST-*。xml)生成报告,这些报告存储在目录target / surefire-reports中。 surefire插件可与TestNG和JUnit(基于Java的流行测试自动化框架)一起使用。

Maven Surefire插件是Maven构建工具的一部分,无论用于测试的测试自动化框架如何,surefire的行为都是相同的。 Maven Surefire插件生成的测试报告中包含名称以Test开头或以Test,TestCase或Test结尾的名称的测试类。

语言– Java

许可证–开源

资源

好处

Maven Surefire插件可与FreeStyle,Maven和Jenkins Pipelines项目一起使用。

该插件只有一个目标,该目标与构建周期的测试阶段绑定在一起。

插件的行为不会随基础测试自动化框架而改变。

缺点

此插件只能与使用Java编写的测试一起使用。

测试报告以XML格式提供。 因此,必须在输出目录上使用诸如HTML Publisher Plugin之类的其他插件才能将其转换为HTML格式(这是Selenium测试报告的首选格式)。

我们的判决

Maven Surefire插件是Java的默认Jenkins插件,可提供可解析的测试结果。 由于报告是以XML格式生成的,因此必须使用Jenkins中的附加插件来解析报告输出以在HTML报告中提供结果。 根据我们的经验,HTML Publisher插件是Selenium的最佳报告工具,可以与Maven Surefire插件一起使用。

这是Selenium最好的9种报告工具。 什么? 您想要更多! 好吧 这是给您的奖金工具。 10. Robot Framework

Robot Framework是Python中流行的可扩展的关键字驱动的测试自动化框架。 该框架主要用于ATDD(验收测试驱动开发),验收测试,RPA(机器人流程自动化)和BDD(行为驱动开发)。 机器人框架被视为Selenium自动化测试的顶级Python测试框架之一。

该框架与执行测试的目标无关。 它遵循分层体系结构,并且系统中各层之间的交互是使用系统库进行的。 测试执行完成后,框架将生成日志和报告。 支持的格式是XML和HTML。 Robot框架提供的报告是详尽无遗的,其中包含有关作为测试方案一部分执行的每一行的信息。

语言– Python

许可证–开源

资源

好处

报告机制内置在Robot框架中。

它能够生成XML和HTML格式的报告。

该框架支持关键字驱动的测试报告。

这些报告详细且易于阅读。 关于错误消息的信息可在日志文件中作为失败关键字的消息获得。

缺点

由于Robot框架用于关键字驱动(或表驱动)测试,因此您需要在报告中遵循相同的格式。

我们的判决

Robot Framework支持开箱即用的报告功能。 如果您打算使用“关键字驱动测试”方法来测试Python代码,则应该尝试一下Robot框架! Robot框架生成的HTML报告提供了有关测试方案状态的足够信息,并且可以在logs文件夹中找到更多详细信息。 总体而言,它是Selenium的最佳报告工具之一,可用于Python中的关键字驱动(或表驱动)测试。

结论

资源

在此博客中,我们详细介绍了Selenium的一些最佳报告工具,其中一些特定于语言,而另一些特定于CI / CD工具。 对于涉及Selenium自动化测试的任何项目,使用理想的Selenium报告工具都是必不可少的。 它有助于跟踪测试活动的进度,并有助于将状态传达给项目的相关利益相关者。

author

石头 磊哥 seven 随便叫

company

thoughtworks

大家好,本人不才,目前依旧混迹于thoughtworks,做着一名看起来像全栈的QA,兴趣爱好前端,目前是thoughtworks 西安QA社区的leader,如果有兴趣分享话题,或者想加入tw,可以找我

roles

QA(营生) dev(front-end dev 兴趣爱好)

联系方式

如果想转载或者高薪挖我 请直接联系我 哈哈

wechat:

qileiwangnan

email:

qileilove@gmail.com