使用SOA和微服务作为软件架构的趋势不断上升,催生了多种用于服务API自动化测试的工具。
API是应用程序接口(application programming interface)的缩写,是一套用于构建和集成应用软件的定义和协议,是两个或多个计算机程序相互通信的一种方式。
API定义了客户端和服务之间的通信协议以及服务的行为方式。你可以使用不同的协议或体系结构约定来管理应用程序中的交互。简单对象访问协议 (SOAP) 建议使用 XML 作为消息格式,并通过HTTP或SMTP传送请求。表述性状态传输 (REST) 与SOAP不同,因为SOAP是一种协议,而REST是一种架构风格。可以使用GraphQL(一种查询语言和服务器端运行时)作为REST的替代方案。
API测试工具选择技术标准
除了明显的许可证和价格之外,如果选择商业API测试工具,你还可以使用许多技术标准来选择API测试工具。其中包括:
-
如何定义和管理测试(代码、低代码、无代码)
-
支持的技术(编程语言、平台……)
-
与软件开发和交付过程的其他组件集成,例如CI/CD工具
-
认证与授权
-
记录和监控
-
……
以下盘点13个开源API测试工具,可以参考使用。
1. Airborne
Airborne是一个开源RSpec驱动的API测试框架。Airborne是一个GEM,旨在测试Rspec和RestClient之上的API。Airborne提供了一个为API编写自动化测试的框架。Airborne使用rest_client发出HTTP请求,并支持所有HTTP动词。创建测试时,可以调用以下任意方法:get、post、put、patch、delete、head、options。
网站:https://github.com/brooklynDev/airborne
2. APIAuto
APIAuto是一款易于使用的开源HTTP接口工具,用于敏捷开发、机器学习零代码测试、代码生成和静态检查、文档生成和光标浮动注释。集文档、测试、mocking、调试、管理于一体的一站式体验,以及一键格式化、注释/取消注释等高效易用的快捷键。在常用功能方面,远远超过Postman、Swagger、YApi等各种开源和商业API文档/测试工具,并且可以一键导入用例和文档。它支持 GET、POST、PUT、PATCH、DELETE、HEAD等HTTP方法和Content-Type、URL /{Path}/{Variable}。它不仅适用于RESTful、RESTful-like和GRPC API,也是腾讯APIJSON推荐的官方文档和测试工具。
网站:https://github.com/TommyLemon/APIAuto
3. Apickli
Apickli是一个基于Cucumber的开源REST API集成测试框架。它提供了一个Gherkin框架和一系列实用函数,使API测试变得简单且耗时更少。Apickli也可以作为NPM包提供。
网站:https://github.com/apickli/apickli
4. Dredd
Dredd是一种与语言无关的命令行工具,用于根据API的后端实现来验证API描述文档。Dredd读取你的 API 描述,并逐步验证你的API实现是否按照文档中的描述回复响应。Dredd支持自动化测试REST API,生成精美的报告,并根据历史案例生成精美的REST API文档。
网站:https://github.com/apiaryio/dredd;https://dredd.org/
- 现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
- 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
- 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
- 分享他们的经验,还会分享很多直播讲座和技术沙龙
- 可以免费学习!划重点!开源的!!!
- qq群号:691998057【暗号:csdn999】
5. Frisby
Frisby是一个基于Jest构建的开源REST API测试框架,旨在使API端点测试变得简单、快速且有趣。Frisby.js加载了许多内置工具,以确保REST API正常工作,并返回正确的属性、值和类型。当你需要自定义内容时,Frisby.js还提供了一种简单的方法来自定义和扩展断言,让工作更轻松,同时减少重复和繁琐的代码。
网站:https://github.com/vlucas/frisby;https://docs.frisbyjs.com/
6. Insomnia
Insomnia是一个开源、跨平台API客户端,适用于GraphQL、REST、WebSockets、服务器发送事件 (SSE)、gRPC 和任何其他HTTP兼容协议。借助Insomnia,你可以使用最流行的协议和格式调试API、使用本机OpenAPI 编辑器和可视化预览设计API、使用本机测试套件测试API、模拟API、使用本机构建CI/CD管道Insomnia CLI用于检查和测试,并使用许多协作功能与其他人协作来共同推进项目。
网站:https://github.com/Kong/insomnia;https://insomnia.rest/
7. mountebank
mountebank是一个提供跨平台、多协议在线测试的开源API测试工具。只需将正在测试的应用程序指向mountebank,而不是真正的依赖项,就能像使用传统存根和模拟一样进行测试。
网站:https://github.com/bbyars/mountebank;http://www.mbtest.org/
8. RestAssured
在Java中测试和验证REST服务比在Ruby和Groovy等动态语言中更难。REST Assured将这些语言的简单使用带入Java领域。
网站:https://github.com/rest-assured/rest-assured;https://rest-assured.io/
9. Schemathesis
Schemathesis是一个以规范为中心的API测试工具,适用于开放API和基于GraphQL的应用程序。它读取应用程序架构并生成测试用例,这将确保应用程序与其架构兼容并且永远不会崩溃。被测应用程序可以用任何语言编写,唯一需要的是支持格式的有效API模式。得益于最先进的假设库支持的基于属性的测试方法,使用简单,但功能强大,可以发现难以发现的错误。
网站:https://github.com/schemathesis/schemathesis
10. SoapUI
SoapUI是一个免费、开源的跨平台API和Web服务功能测试解决方案。它提供了测试REST、SOAP和GraphQL API的能力。SoapUI基于 java,因此它可以在大多数操作系统上运行。我们在多个Windows版本以及Mac和多种Linux方言上对其进行了测试。SoapUI需要1.6+版本的JRE(Java运行时环境),建议至少1GB 内存,以及大约100 MB磁盘空间。
网站:https://github.com/SmartBear/soapui;https://www.soapui.org/
11. SupeTest
SuperTest是一个开源超级代理驱动库,用于使用Fluent API测试Node.js HTTP 服务器。该模块的动机是为测试 HTTP 提供高级抽象,同时仍然允许您使用Superagent提供的较低级别API。
网站:https://github.com/visionmedia/supertest;https://www.npmjs.com/package/supertest
12. Tavern
Tavern是一个pytest插件、命令行工具和Python库,用于自动化测试API,具有简单、简洁和灵活的基于YAML的语法。上手非常简单,并且可以针对复杂的测试进行高度定制。Tavern支持测试RESTful API 以及基于MQTT的API。Tavern 充当pytest插件,因此您所要做的就是安装 pytest 和 Tavern,在 yaml 文件中编写测试,然后运行pytest。这意味着您可以访问所有 pytest 生态系统。您还可以使用Python库将Tavern集成到您自己的测试框架或持续集成设置中,或者使用命令行工具tavern-ci以及bash脚本和cron作业。
网站:https://github.com/taverntesting/tavern;https://taverntesting.github.io/
13. Wisdom rest-client
Wisdom Rest-Client是一款支持自动化测试REST API,生成报告,并根据历史案例生成REST API文档的工具。
网站:https://github.com/wisdom-projects/rest-client
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
评论记录:
回复评论: