时间飞逝到2019年底。软件测试教学总监王老师比较了七种开源自动化测试框架的优缺点,帮助大家选择适合自己的测试框架。
杭州软件测试自动化工具大盘点 杭州软件测试自动化工具清单
1.机器人框架
机器人框架是用于验收测试和验收测试驱动开发的自动化测试框架。它是基于Python编写的,但也可以在Jython和IronPython上运行,提供跨平台支持。
优点:
通过使用关键字驱动的测试方法,简化了自动化测试过程,并且便于测试人员创建可读的测试。
测试数据语法很容易使用。
丰富的生态系统。它由作为独立项目开发的各种通用测试库和工具组成。
具有高度的可扩展性。
并行测试可以通过pabot或Selenium Grid进行。
缺点:
自定义HTML报告很麻烦。
如果是对广泛的库和扩展进行KDT自动化测试,建议使用这种跨平台框架。如果要添加新的关键词,需要具备Java/Python/C语言的基础知识。
2.单元测试
JUnit是Java应用程序的单元测试框架,用于编写和运行可重复的测试。
优点:
用纯Java编写。
支持测试驱动开发。
允许创建自己的单元测试用例集。
与其他工具和IDE的良好集成。
长期发展,有自己庞大的用户群体,并且可以轻松找到文档。
缺点:
如果你需要模仿的能力,你需要添加额外的模仿。
因为JUnit中的方法名称受到Java约定的限制,所以非技术人员很难读取测试结果。
如果您正在为您的Java应用程序编写单元测试,这可能是一个更好的选择。但是,对于功能测试或非Java应用程序,应该考虑其他解决方案。
3.斯波克
Spock是一个用于Java和Groovy应用程序的测试和规范框架,它基于JUnit。
优点:
该测试可读性强,支持简单的英语句子,易于阅读。
提供周围的语境,让你很容易理解如何解决问题。
内置嘲讽和存根功能。
支持黑盒测试。
缺点:
需要Groovy语言的基础知识。
如果你的应用是基于JVM的,目标是使用DSL进行BDD自动化测试,那么这个框架就恰到好处!
4.NUnit
NUnit是一个支持所有的单元测试框架。Net语言。最初的灵感来源于Junit,完全用C #编写,经过了彻底的重新设计,可以使用更多。NET语言函数。
优点:
快速启动和测试执行。
带上你自己的主张和评论。
支持并行测试。
支持测试驱动开发。
缺点:
非跨平台,仅适用于。网络语言。
它没有集成到Visual Studio echo系统中,这意味着使用它需要更多的维护。
一个好的C #开源单元测试框架有着悠久的历史和很高的声誉。但是,如果您准备使用。NET语言,也可以考虑MSTest。
5.测试
TestNG是一个Java自动化测试框架,灵感来源于JUnit和NUnit,但它进行了改进,增加了一些功能。它旨在涵盖所有自动测试类别:单元测试、功能测试、端到端测试、集成测试等。
优点:
易于集成到maven循环中。
使开发人员能够编写灵活而强大的测试。
支持黑盒测试。
笔记很容易理解。
测试用例可以很容易地分组。
允许创建并行测试。
缺点:
只支持Java,至少需要Java编程语言的基础知识。
必须花时间来设置和设计框架。
如果您使用Java,并且正在寻找端到端的自动化测试框架,并且愿意投入一点时间来设置框架,那么您应该考虑使用TestNG。
6.茉莉属
Jasmine是一个JavaScript单元测试框架,也称为JavaScript行为驱动开发测试框架。适用于网页、Node.js项目或者任何可以运行JavaScript的地方。主要和AngularJS一起使用。
优点:
除了JavaScript,它还可以在Python和Ruby中运行。如果您想在服务器上运行客户端测试,它可以帮助您。
被许多CIs使用和支持。
断言的内置语法。
缺点:
在大多数情况下,它需要一个测试运行程序。
异步测试很困难。
如果你正在寻找一个统一的单元测试解决方案,Jasmin可能非常适合。
7.摩卡
Mocha是一个JavaScript单元测试框架,在NodeJs上运行测试,主要和ReactJS配对。
优点:
内置测试运行程序。
支持异步测试。
它使用起来很灵活,任何满足要求的断言库都可以作为Node标准“断言”函数的替代。
缺点:
相对较新,意味着有很多未知和可变性,在某些方面缺乏用户基础和支持。
只提供了基本的测试结构,因此需要额外的设置和配置。
如果你正在寻找一个独立的JavaScript单元测试框架,摩卡是首选!