自动化测试框架
自动化测试是通过特定的软件(脚本)去控制测试流程,并比较实际的结果与预期结果之间的差异。通过将测试自动化,可以让正式的测试过程中的必要测试,可以反复进行;通过这种方法,也可以将难以手动进行的测试,交由软件来做。
自动化测试最大的优势就是可以快速而且反复的进行测试
1. Robot Framework
Robot Framework 是最流行的 Python 自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。基于 Python 编写,可以运行在 Java 和.NET 环境。它还支持跨平台,例如 Windows、MacOS 和 Linux。
它是一个开源框架,并且留有 API 扩展空间。表格式的测试数据语法和关键词驱动测试(KDT)使得它在全球的测试人员中非常流行。它无疑是最易用的自动化测试框架,并可通过 pabot 或 Selenium Grid 执行并行测试。
注:开源
2. Selenium
Selenium 可能是网页应用中最流行的开源自动化测试框架。起源于 2000 年,10 多年来不断地完善,Selenium 成为许多 Web 自动化测试人员的选择,尤其是那些有高级编程和脚本技能的人。Selenium 支持多系统环境(Windows,Mac,Linux)以及多种浏览器(Chrome,FireFox,IE 以及无头浏览器(没有界面))。它的脚本可以由各种各样的编程语言编写,比如 Java,Groovy,Python,C#,PHP,Ruby 以及 Perl。
Serenity真正的好处是可以生成非常好的测试报告。开箱即用,使用Serenity来创建文档,不仅可以用于查看您的 Selenium BDD测试结果,还可以作为您的应用程序的文档。
注:开源
3. Pytest
Pytest 是一个轻量级测试项目,非常适合较小、复杂度比较低的项目,而且可以方便的应用于单元测试。它也具有 Robot Framework 所闻名的验收测试能力。Pytest 最好的特性之一是,它提供了测试用例的详细失败信息,使得开发者可以快速准确地改正问题。它兼容最新版本的 Python。它还兼容 unittest、doctest 和 nose,开箱即用。它还有包含更多功能的插件和多样化的现有测试技术和测试用例。事实上,有 300 多个可用插件来自它的活跃社区。该平台设计用于编写更简单错误率更小的代码。你可以将 Pytest 与诸如 Selenium 和 Splinter 之类的图形用户界面一起使用,来使得测试工作更轻松。
对于任何编程语言来说,都没有绝对理想的测试框架。它取决于开发者的舒适度、项目需求和项目中特定模块所需的测试类型。可用的自动化测试框架有线性自动化、基于模块的测试、函数库框架测试、混合测试、关键词驱动和数据驱动测试等。每个框架都有它的优点和缺点。上面列举的 Python 框架是性能最全面的自动化测试框架。
注:开源
4. Katalon Studio
Katalon Studio 是一个在网页应用、移动和网页服务方面功能强大的自动化测试解决方案。基于 Selenium 和 Appium 框架,Katalon Studio 集成了这些框架在软件自动化方面的优点。
这个工具支持不同层次的测试技能集。非程序员也可以快速上手一个自动化测试项目(如使用间谍对象记录测试脚本),同时也节省了程序员和高级测试人员构建新库和维护脚本的时间。
Katalon Studio 可以集成到 CI/CD 过程中,而且兼容流行的质量处理工具,包括 qTest,JIRA,Jenkins 和 Git。它提供了一个很好的功能叫Katalon 分析,通过指标和图表向用户提供全面的测试报告。
注:免费
5. RedwoodHQ
RedwoodHQ 是一个免费开源的自动化测试工具,狂平台(Windows、Linux、Mac OS X)且便于安装,它的流行是由于大部分流行的编程语言都可以用来编写测试,例如 Java、Python、C# 和 likewise。它有一个网站界面,在那里多个测试人员可以在一个平台上协作和运行测试用例。在 RedwoodHQ 中出现的 action 关键字可以用来毫不费力地创建和修改测试用例。你所需要做的只是找到你需要的 action,将它拖到你的测试盒中,然后输入参数并改变它们的值来生成一份完整的测试报告。它有一个内置的 IDE(集成开发环境),你可以在那里创建和修改测试用例,并且并行运行它们。它是对用户最友好或对测试人员最友好的平台之一,它关注一个重大项目的全部测试过程。
注:开源
6. Jasmine
Jasmine 是一个 JavaScript 单元测试框架, 也被称为 JavaScript 的行为驱动开发(BDD)测试框架。它适用于任何使用 JavaScript 的地方。除了 JavaScript 之外,它还被用于 Python 和 Ruby 自动化测试。它主要与 AngularJS 配对使用。它是一个将客户端和服务端单元测试结合起来的完美的测试框架,而且被认为是测试领域的未来。它现成可用,除了需要一个名为 Karma 的测试运行器之外,不需要其它外部依赖。但 Jasmine 有一个缺点就是难以异步测试。
注:开源
7. Watir
Watir 是一个基于 Ruby 库的开源的网页自动化测试工具。Watir 支持跨浏览器测试,包括 Firefox,Opera,无头浏览器和 IE。它同样支持数据驱动测试和集成 BBD 工具,比如 RSpec,Cucumber 和 Test/Unit。
8. NUnit
NUnit 是支持所有 .Net 语言的单元测试框架。最初也是基于 Junit 的启发,完全采用 C# 编写,目前已被完全重新设计以使用更多 .NET 语言功能。同时其启动和测试执行速度快,自带断言和注释,支持并行测试和支持测试驱动开发(TDD)。 但其不支持跨平台,仅适用于 .Net ;同时该工具也未集成到 Visual Studio echo 系统中,因此需要更高的维护成本。
9. TestNG
TestNG 是一个 Java 自动化测试框架,受 JUnit 和 NUnit 的启发,但又改进和新增了一些功能。旨在涵盖所有自动化测试类别:单元测试、功能测试、端到端、集成测试等。TestNG 容易整合到 maven 循环中,所以使开发人员能够编写灵活而强大的测试;支持数据驱动测试且允许创建并行测试。但其不足在于只支持 Java ,至少需要具备 Java 编程语言的基础知识,必须投入时间进行框架设置和设计。