常见的接口自动化测试工具 ?接口自动化工具对比
dylinchen 377 2022-07-11
1、eolink
官网:https://www.eolink.com/product/auto_test/
ApI自动化测试
eolink 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java 或Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构,核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端。
License:免费
2、Selenium
官网:https://www.seleniumhq.org/download/
WebUI自动化测试
Selenium是一个用于Web应用程序测试的工具,Selenium已经成为Web自动化测试工程师的首选。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。其升级版本为Webdriver。
License:免费
3、Postman
官网:https://www.getpostman.com
接口测试
Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还能够创建自己的 Team Library 用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。
License:免费
4、Soapui
官网:https://www.soapui.org
接口测试
SoapUI提供了所有所需的工具来测试和完善的测试。总览标签给你一个项目的所有内容和全面的看法。只需一次点击,您可以添加任何数量的断言为验证传入的消息TestStep。使用功能强大的HTTP监视器记录,分析甚至修改客户机 - 服务器通信,因为它发生。和SoapUI临带来了更专业和先进的功能,保持遥遥领先其他测试工具。轻松创建和运行数据驱动测试。该数据源TestStep读取测试数据从任何外部来源 - Excel中,XML,JDBC,文件,等等 - 到标准SoapUI属性。
License:免费
5、Robot Framework
官网:http://robotframework.org
WebUI自动化测试,接口测试,APP测试
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。
Robot framework为不同的自动化测试需求提供了不同的框架。它的测试能力可以通过 Python 和 Java 测试库得到扩展。Selenium WebDriver 是 Robot Framework 中内置的流行库。
Robot Framework 不仅仅是网页测试工具,同样可以用来做 Android 和 iOS 的自动化测试。对于关键字测试驱动熟悉的测试员可以轻松上手 Robot Framework。
License:免费
6、QTP
官网:https://software.microfocus.com/en-us/products/unified-functional-automated-testing/overview
WebUI自动化测试,接口测试,APP测试
HP QuickTest Professional 提供符合所有主要应用软件环境的功能测试和回归测试的自动化。采用关键字驱动的理念以简化测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或者回归测试用例。专业的测试者也可以通过提供的内置脚本和调试环境来取得对测试和对象属性的完全控制。目前版本名为Unified Functional Testing,简称UFT。可以测试非常多的应用,比如接口API,Web services,桌面程序,Web系统,手机APP。
License:商业
7、Jmeter
官网:https://jmeter.apache.org
接口测试,性能测试
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现;
JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。
使用Jmeter做接口测试需要注意一点,小心使用“用户定义变量”,Jmeter组件有优先级的,如果多个线程同时执行的时候,“用户定义变量”组件定义的变量可能会乱套。
License:免费
8、Loadrunner
官网:https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview
性能测试
LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。
License:商业
9、Monkey
App稳定性测试
软件附带在sdk中,适用于android和ios,通过adb shell,生成用户或系统的伪随机事件,压力测试结果:崩溃crash,无响应anr。
License:免费
10、GT
官网:http://gt.qq.com/index.html
App性能测试
GT(随身调)是APP的随身调测平台,它是直接运行在手机上的“集成调测环境”(IDTE, Integrated Debug Environment)。利用GT,仅凭一部手机,无需连接电脑,您即可对APP进行快速的性能测试(CPU、内存、流量、电量、帧率/流畅度等等)、开发日志的查看、Crash日志查看、网络数据包的抓取、APP内部参数的调试、真机代码耗时统计等。
License:免费
11、Appscan
官网:https://www.ibm.com/developerworks/downloads/r/appscan/
安全测试
IBM Security AppScan 是一个适合安全专家的 Web 应用程序和 Web 服务渗透测试解决方案,对现代 Web 应用程序和服务执行自动化的动态应用程序安全测试 (DAST) 和交互式应用程序安全测试 (IAST),支持 Web 2.0、JavaScript 和 AJAX 框架的全面的 JavaScript 执行引擎,涵盖 XML 和 JSON 基础架构的 SOAP 和 REST Web 服务测试支持 WS-Security 标准、XML 加密和 XML 签名,详细的漏洞公告和修复建议。
License:免费
12、Jenkins
官网:https://jenkins.io
持续集成
自动化构建 编译,部署,任务执行,测试报告,邮件通知等。
License:免费
1、Python+HttpRunner
HttpRunner 是一款面向 HTTP(S) 协议的通用测试框架,只需编写维护一份 YAML/JSON 脚本,即可实现自动化测试、性能测试、线上监控、持续集成等多种测试需求。
1.1、主要特征
l 继承Requests的所有强大功能。
l 以YAML或JSON格式定义测试用例,并使用PyTest以简洁优雅的方式运行。
l 可通过HAR录制并生成测试用例。
l 支持variables/extract/validate/hooks机制,以创建非常复杂的测试场景。
l 使用debugtalk.py插件,任何功能都可以在测试用例的任何部分使用。
l 使用jmespath,提取和验证json响应从未如此简单。
l 有了PyTest,数百个插件随时可用。
l 使用Allure,测试报告可以非常强大。
l 通过重用Locust,可以进行性能测试,而无需进行额外的工作。
l 支持CLI命令,与CI/CD完美结合。
1.2、优点
l 基于YAML/JSON格式,专注于接口本身的编写
l 接口编写简单
l 能生成测试报告
l 有接口录制功能
l 自带脚手架
1.3、缺点
l 没有编辑器插件对语法校验,容易出错
HttpRunner 没有编辑器插件,本身就是一个YAML/JSON配置文件,所以配置写错了,但只要是合法的YAML/JSON格式,也看不出来,只有运行过后才知道。
l 扩展不方便,需要用Python实现一些函数
1.4、小结
可以考虑使用,对于接口数据的初始化可能需要单独处理。
建议:
适用于团队代码基础有限,想快铺量自动化的情况。
不适用于有精细化需求的团队。当然,如果愿意花时间来自己定制也是可以满足需求的。
2、Python+UnitTest+Requests+HTMLTestRunner
2.1、主要特征
利用现有的框架和库自己定制。
2.2、优点
l 足够灵活强大: 分层测试、数据驱动、测试报告、集成CI等
l 对于公司的业务支持比较高,可以根据业务的灵活度来定制化开发接口框架
2.3、缺点
l 有一定的学习成本
2.4、小结
如果代码能力可以,推荐使用,代码相对简单,功能足够灵活。
3、Python+PyTest+Requests+Allure
3.1、主要特征
l PyTest是基于UnitTest的扩展框架,比UnitTest更简洁,更高效
l PyTest兼容UnitTest框架的代码,可以用来运行UnitTest测试用例
3.2、优点
l 足够灵活强大: 分层测试、数据驱动、测试报告、集成CI等
l 对于公司的业务支持比较高,可以根据业务的灵活度来定制化开发接口框架
3.3、缺点
l 有一定的学习成本
3.4、小结
如果代码能力可以,推荐使用,代码相对简单,功能足够灵活。
表 1 UnitTest与PyTest比较
用例格式 | 兼容性 | 插件 | |
UnitTest | 复杂 | 无 | 少 |
PyTest | 简单 | 兼容UnitTest | 丰富 |
4、Python+Gauge
4.1、主要特征
BDD行为驱动测试框架
4.2、优点
l 行为文件与脚本文件分离,本质上实现了数据驱动
l 功能强大灵活,本质上还是用Python写接口用例
l 自动生成测试报告
l IDE如VS Code有支持插件
4.3、缺点
l 门槛略高,需要了解BDD的用法
l 需要会Markdown语法
4.4、小结
BDD有一定的门槛,看测试人员的学习能力和接受速度,推荐使用。
虽然用BDD拿来做接口测试理念不搭,但并不是不可以,唯一的缺点是用BDD来描述接口行为不合适,其他的都可以。可以参数化,断言写起来也简单,测试报告也漂亮,本质上还是用Python实现一些功能,所以非常灵活。
5、总结
表 2 框架对比
框架 | 学习成本 | 录制 | 测试报告 | 用例管理 | 扩展难度 |
HttpRunner | 低 | 是 | 是 | 易 | 高 |
UnitTest | 高 | 否 | 是 | 难 | 高 |
PyTest | 高 | 否 | 是 | 难 | 高 |
Gauge | 高 | 否 | 是 | 易 | 中 |
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~