当前位置:网站首页>几款开源自动化测试框架优缺点对比你知道吗?
几款开源自动化测试框架优缺点对比你知道吗?
2022-07-06 09:24:00 【测试小婉】
目录
1. Robot Framework
Robot Framework(RF)是用于验收测试和验收测试驱动开发(ATDD)的自动化测试框架。 基于 Python 编写,但也可以在 Jython(Java)和 IronPython(.NET) 上运行,提供跨平台支持(Windows、Linux 或 MacOS )。
优点:
- 通过使用关键字驱动测试(KDT)方法简化了自动化测试过程,方便测试人员创建易读的测试。
- 测试数据语法简单易用。
- 生态系统丰富。由各种通用测试库和工具组成,这些工具都是作为独立项目开发的。
- 具有高度可扩展性。
- 可通过 pabot 或 Selenium Grid 执行并行测试。
缺点:
- 自定义 HTML 报告较为麻烦。
如果是针对大范围的库和扩展的 KDT 自动化测试,建议使用此跨平台框架。如果想要添加新的关键字(通过 RF 测试库 API ),需要具备 Java / Python / C 语言的基础知识。
2. JUnit
JUnit 是一款针对 Java 应用的单元测试框架,用于编写和运行可重复的测试。
优点:
- 纯 Java 编写。
- 支持测试驱动开发(TDD)。
- 允许创建自己的单元测试用例套件。
- 能很好地与其他工具(如 Maven )和 IDE(如 IntelliJ )集成。
- 长时间发展,有自己庞大的用户群体,可以很容易找到文档。
缺点:
- 如果需要 mocking 能力,则需要额外添加 Mockito(或其他模拟库)。
- 因 JUnit 中的方法名称受 Java 约定限制等原因,非技术人员很难读懂测试结果。
如果你正在为你的 Java 应用编写单元测试,那这可能是最好的选择。 但是,对于功能测试或非 Java 应用,应考虑其他解决方案。
3. Spock
Spock 是用于 Java 和 Groovy 应用的测试和规范框架,基于 JUnit 。
优点:
- 测试可读性强,支持简单的英文句子,便于阅读。
- 提供周边上下文,从而能轻松了解如何解决故障。
- 内置 mocking 和 stubbing 功能。
- 支持数据驱动测试(DDT)。
缺点:
- 需要具备基本的 Groovy 语言知识。
如果你的应用是基于 JVM 的,并且目标是使用 DSL 进行 BDD 自动化测试,则此框架正适合!
4. NUnit
NUnit 是支持所有 .Net 语言的单元测试框架。最初也是基于 Junit 的启发,完全采用 C# 编写,目前已被完全重新设计以使用更多 .NET 语言功能。
优点:
- 启动和测试执行速度快。
- 自带断言和注释。
- 支持并行测试。
- 支持测试驱动开发(TDD)。
缺点:
- 非跨平台,仅适用于 .Net 语言。
- 未集成到 Visual Studio echo 系统中,意味着使用它需要更多的维护。
一个很好的 C#开源单元测试框架,历史悠久,口碑较高。 不过,如果你正准备使用 .NET 语言,也可以考虑 MSTest 。
5. TestNG
TestNG 是一个 Java 自动化测试框架,受 JUnit 和 NUnit 的启发,但又改进和新增了一些功能。旨在涵盖所有自动化测试类别:单元测试、功能测试、端到端、集成测试等。
优点:
- 容易整合到 maven 循环中。
- 使开发人员能够编写灵活而强大的测试。
- 支持数据驱动测试(DDT)。
- 注释很容易理解。
- 测试用例可以轻松分组。
- 允许创建并行测试。
缺点:
- 只支持 Java ,至少需要具备 Java 编程语言的基础知识。
- 必须投入时间进行框架设置和设计。
如果你使用 Java ,并正寻找端到端的自动化测试框架,同时愿意投入一点时间去设置框架,你应该考虑使用 TestNG 。
6. Jasmin
Jasmine 是一个 JavaScript 单元测试框架, 也被称为 JavaScript 的行为驱动开发(BDD)测试框架。适用于网页、Node.js 项目或任何可以运行 JavaScript 的地方。它主要与 AngularJS 配对使用。
优点:
- 除了 JavaScript ,还可以运行在 Python 和 Ruby 中。如果想在你的服务器端运行客户端测试,它可以帮助你。
- 被许多 CIs 使用和支持。
- 内置用于断言的语法。
缺点:
- 多数情况下,它需要一个测试运行器(如 Karma )。
- 难以异步测试。
如果你正在寻找一个统一的(客户端 - 服务器)单元测试解决方案,Jasmin 可能会非常适合。
7. Mocha
Mocha 是一个 JavaScript 单元测试框架,它在 NodeJs 上运行测试,主要与 ReactJS 配对使用。
优点:
- 内置测试运行器。
- 支持异步测试。
- 使用灵活,可使用任何符合需求的断言库(Chai、expect.js、Must.js 等)作为 Node 标准“断言” 功能的替代品。
缺点:
- 相对较新 (起始于 2012 年),意味着有许多的未知性和可变性,在某些方面或缺乏用户基础和支持。
仅提供基本的测试结构,因此需要额外的设置和配置(对于一些可能是有利的)。
如果你正在寻找 JavaScript 的独立单元测试框架,Mocha 是首选!
感谢每一个认真阅读我文章的人!!!
如果下面这些资料用得到的话可以直接拿走:
1、自学开发或者测试必备的完整项目源码与环境
2、测试工作中所有模板(测试计划、测试用例、测试报告等)
3、软件测试经典面试题
4、Python/Java自动化测试实战.pdf
5、Jmeter/postman接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要的评论区找我谢谢。
边栏推荐
- UCORE lab2 physical memory management experiment report
- 5 minutes to master machine learning iris logical regression classification
- Fundamentals of digital circuit (V) arithmetic operation circuit
- 指针:最大值、最小值和平均值
- [pointer] the array is stored in reverse order and output
- Build your own application based on Google's open source tensorflow object detection API video object recognition system (I)
- Global and Chinese market for antiviral coatings 2022-2028: Research Report on technology, participants, trends, market size and share
- 数字电路基础(二)逻辑代数
- Express
- 想跳槽?面试软件测试需要掌握的7个技能你知道吗
猜你喜欢
Don't you even look at such a detailed and comprehensive written software test question?
Summary of thread implementation
Keil5 MDK's formatting code tool and adding shortcuts
The minimum sum of the last four digits of the split digit of leetcode simple problem
数字电路基础(三)编码器和译码器
Statistics 8th Edition Jia Junping Chapter 4 Summary and after class exercise answers
Sorting odd and even subscripts respectively for leetcode simple problem
ucore lab8 文件系统 实验报告
5 minutes to master machine learning iris logical regression classification
Stc-b learning board buzzer plays music 2.0
随机推荐
指针 --按字符串相反次序输出其中的所有字符
指針:最大值、最小值和平均值
Maximum nesting depth of parentheses in leetcode simple questions
[pointer] use the insertion sorting method to arrange n numbers from small to large
[HCIA continuous update] working principle of static route and default route
CSAPP家庭作业答案7 8 9章
[pointer] solve the last person left
Vysor uses WiFi wireless connection for screen projection_ Operate the mobile phone on the computer_ Wireless debugging -- uniapp native development 008
Fundamentals of digital circuits (II) logic algebra
Description of Vos storage space, bandwidth occupation and PPS requirements
【指针】数组逆序重新存放后并输出
Function: find 1-1/2+1/3-1/4+1/5-1/6+1/7-... +1/n
Why can swing implement a form program by inheriting the JFrame class?
[pointer] find the length of the string
Dlib detects blink times based on video stream
The salary of testers is polarized. How to become an automated test with a monthly salary of 20K?
The minimum sum of the last four digits of the split digit of leetcode simple problem
Investment should be calm
[pointer] find the value of the largest element in the two-dimensional array
王爽汇编语言详细学习笔记二:寄存器