13款强大的开源API测试工具,不容错过!

使用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自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/402786.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024新版Java高频面试题+Java八股文面试真题

Java面试题_2024新版Java高频面试题Java八股文面试真题 Java高频面试专题视频课程,瓤括了Java生态下的主流技术面试题,课程特色: 1、全面,jvm、并发编程、mysql、rabbitmq、spring、mybatis、redis、分布式、微服务、数据结构等等…

解决 ModuleNotFoundError: No module named ‘transformers‘

Traceback (most recent call last): File “start_cli_test.py”, line 2, in import transformers ModuleNotFoundError: No module named ‘transformers’ Traceback (most recent call last): File “/usr/local/python3/lib/python3.8/runpy.py”, line 185, in _run_m…

OpenCascade——BRepPrimAPI图元创建接口

OpenCascade BRepPrimAPI包提供了创建以下图元(primitive)的 API: 盒;锥体;柱体;棱镜。 可以创建部分实体,例如一定经度范围内的球体。在实际模型中,图元可用于轻松创建特定的子部件。 BRepPrimAPI也提供了扫掠方式…

鱼哥赠书活动第⑧期:《基础软件之路:企业级实践及开源之路》

鱼哥赠书活动第⑧期:《基础软件之路:企业级实践及开源之路》 作者介绍:1.静态分析工具在当前软件开发流程中的应用2.编译相关技术在静态分析工具中的应用3.编译相关技术在提升软件质量和性能上的更多应用4. 未来展望图书推荐:赠书…

Jest单元测试:玩转代码的小捉迷藏!

嗨,码农小伙伴们!在这个金秋十月,国庆与中秋重叠,我们有一个特殊的任务——通过 Jest 单元测试,找到代码的神秘“中秋蛋糕”!这是一个简单又有趣的冒险,就像在中秋晚会上找月亮一样容易。让我们…

springboot208基于springboot物流管理系统

基于spring boot物流管理系统设计与实现 摘 要 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动互联网的到来,处理信息不再受制于地理位置的限制,处理信息及时高效,备受人们的喜爱。…

大数据Kafka--概述

文章目录 概述定义消息队列传统消息队列的应用场景消息队列的两种模式 Kafka基础架构 Kafka快速入门安装部署集群规划集群部署集群启停脚本 Kafka命令行操作主题命令行操作生产者命令行操作消费者命令行操作 概述 定义 消息队列 目前企业中比较常见的消息队列产品主要有 Kafk…

PLC_博图系列☞基本指令“插入输入”

PLC_博图系列☞基本指令“插入输入” 文章目录 PLC_博图系列☞基本指令“插入输入”背景介绍插入输入说明参数示例 关键字: PLC、 西门子、 博图、 Siemens 、 插入输入 背景介绍 这是一篇关于PLC编程的文章,特别是关于西门子的博图软件。我并不是专…

LeetCode每日刷题:101. 对称二叉树

题目: 解题思路:可以新写一个函数,从root开始,root的left的头结点将记为lefttree(左子树),root的lright的头结点将记为righttree(右子树), 然后递归左子树的root.left与右…

搭建sql-labs靶机环境

phpstudy(小皮面板) 先下载phpstudy(小皮面板)软件,方便我们快速搭建环境,该软件程序包集成最新的ApachePHPMySQLngix,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境.该程序不仅包括PHP调试…

C++笔记:OOP三大特性之继承

文章目录 一、继承的概念和定义1.1 概念1.2 定义格式1.3 继承关系和访问限定符 二、基类和派生类对象赋值兼容转换2.1 类型转换存在临时对象的意义2.2 赋值兼容转换不会产生临时变量 三、继承中的作用域四、派生类中的默认成员函数4.1 构造4.2 拷贝构造4.3 赋值重载4.4 析构 五…

【进程创建】

目录 进程创建的方式查看进程pid 调用系统调用创建子进程fock函数做了的工作子进程刚开始创建的状态 一个变量,两个不同的值创建子进程的作用 进程创建的方式 1.在操作系统上输入的指令。 2.已经启动的软件。 3.程序员在代码层面上调用系统调用创建进程。 linux中第…

centos6安装

前期准备 官网 选择download 选择isos 选择mininal.iso下载 安装 打开vmware 输入root和密码登录

Block Coordinate Descent算法的部分构造技巧

文章目录 构造的目的定理另一篇中对于该定理的表述出处 构造的目的 通过增加辅助变量,使原来的非凸问题变为关于各个变量的凸子问题,交替优化各个辅助变量。 定理 Define an m m m by m m m matrix function E ( U , V ) ≜ ( I − U H H V ) ( I …

工具分享:Corn表达式在线生成工具介绍

无极低码 :https://wheart.cn Corn表达式在线生成工具介绍 在现代的信息技术领域中,定时任务是一个不可或缺的功能。无论是为了定期清理缓存、发送邮件、还是执行其他自动化任务,我们都需要一个高效、便捷的定时工具。而在众多的定时工具中…

Microsoft PowerToys:自定义 Windows 的实用程序

Microsoft PowerToys:自定义 Windows 的实用程序 Microsoft PowerToys 是一组实用程序,供高级用户调整和简化其 Windows 体验以提高工作效率。 微软官方地址为:https://learn.microsoft.com/en-us/windows/powertoys/,其github源…

springboot207基于springboot的实习管理系统

实习管理系统的设计与实现 摘要 近年来,信息化管理行业的不断兴起,使得人们的日常生活越来越离不开计算机和互联网技术。首先,根据收集到的用户需求分析,对设计系统有一个初步的认识与了解,确定实习管理系统的总体功…

qt-OPENGL-星系仿真

qt-OPENGL-星系仿真 一、演示效果二、核心程序三、下载链接 一、演示效果 二、核心程序 #include "model.h"Model::Model(QOpenGLWidget *_glWidget) { glWidget _glWidget;glWidget->makeCurrent();initializeOpenGLFunctions(); }Model::~Model() {destroyV…

HashMap 源码学习-jdk1.8

1、一些常量的定义 这里针对MIN_TREEIFY_CAPACITY 这个值进行解释一下。 java8里面,HashMap 的数据结构是数组 (链表或者红黑树),每个数组节点下可能会存在链表和红黑树之间的转换,当同一个索引下面的节点超过8个时…

Elastic Stack--01--简介、安装

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 1. Elastic Stack 简介为什么要学习ESDB-Engines搜索引擎类数据库排名常年霸榜![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/051342a83f574c8c910cda…