当前位置:网站首页>几款开源自动化测试框架优缺点对比你知道吗?
几款开源自动化测试框架优缺点对比你知道吗?
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接口测试全套视频获取
我个人整理了我这几年软件测试生涯整理的一些技术资料,包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。需要的评论区找我谢谢。
边栏推荐
- [oiclass] share prizes
- 指针:最大值、最小值和平均值
- 王爽汇编语言详细学习笔记二:寄存器
- Global and Chinese markets of electronic grade hexafluorobutadiene (C4F6) 2022-2028: Research Report on technology, participants, trends, market size and share
- Install and run tensorflow object detection API video object recognition system of Google open source
- STC-B学习板蜂鸣器播放音乐2.0
- UCORE lab7 synchronous mutual exclusion experiment report
- JDBC 的四种连接方式 直接上代码
- Common Oracle commands
- [pointer] use the insertion sorting method to arrange n numbers from small to large
猜你喜欢
Investment operation steps
Leetcode simple question: check whether the numbers in the sentence are increasing
Summary of thread implementation
Software testing interview summary - common interview questions
5 minutes to master machine learning iris logical regression classification
Statistics 8th Edition Jia Junping Chapter 2 after class exercises and answer summary
Fundamentals of digital circuits (III) encoder and decoder
[HCIA continuous update] advanced features of routing
ucore lab6 调度器 实验报告
Transplant hummingbird e203 core to Da Vinci pro35t [Jichuang xinlai risc-v Cup] (I)
随机推荐
Fundamentals of digital circuits (III) encoder and decoder
CSAPP家庭作業答案7 8 9章
基于485总线的评分系统双机实验报告
How to solve the poor sound quality of Vos?
ucore lab5用户进程管理 实验报告
Detailed introduction to dynamic programming (with examples)
Report on the double computer experiment of scoring system based on 485 bus
【指针】八进制转换为十进制
Global and Chinese market for antiviral coatings 2022-2028: Research Report on technology, participants, trends, market size and share
The number of reversing twice in leetcode simple question
Quaternion -- basic concepts (Reprint)
Using flask_ Whooshalchemyplus Jieba realizes global search of flask
【指针】数组逆序重新存放后并输出
{1,2,3,2,5} duplicate checking problem
Dlib detects blink times based on video stream
Soft exam information system project manager_ Project set project portfolio management --- Senior Information System Project Manager of soft exam 025
Matplotlib绘图快速入门
To brush the video, it's better to see if you have mastered these interview questions. Slowly accumulating a monthly income of more than 10000 is not a dream.
Function: find the maximum common divisor and the minimum common multiple of two positive numbers
Oracle foundation and system table