接口测试的全称是应用程序编程接口(API)测试,从原理上来说,接口测试是模拟客户端向服务器端发送请求,然后检查能否获得正确的返回信息。接口测试用于测试RESTful API、SOAP Web服务,这些服务可以通过HTTP、HTTPS、JMS和MQ发送。
图一 自动化测试金字塔
API测试不仅稳定,而且适合自动化测试、容易实现、测试执行速度快。相比上层的UI测试,接口自动化测试的投入产出比更高,因为接口测试更稳定,而且可以在软件开发早期进行,能够更早的发现软件缺陷。随着SOA 架构、微服务架构的流行,面向接口的实现越来越多,也就意味着大量的软件测试都可以通过接口来进行,因此,做好接口测试的自动化成为许多团队的当务之急。
下面我们来盘点一下目前有哪些好用的接口测试工具,以及接口测试会用到的接口Mock工具、接口文档开发工具、接口管理工具。
Postman
SoapUI
REST-Assured
JMeter
Apifox
Katalon Studio
Karate
WireMock
Hoverfly
Swagger
YApi
比较好用的接口测试工具包括:Postman、SoapUI、REST-Assured、JMeter、Apifox、Katalon Studio、Karate 。
1)Postman
Postman一款非常流行的API调试工具,被广泛的用于在开发过程中调试接口。Postman简单方便,而且功能强大。在开发调试网络程序时跟踪一些网络请求,能够高效的帮助后端开发人员独立进行接口测试。
官网地址:https://www.postman.com
2)SoapUI
SoapUI是一款应用非常广泛的SOAP和REST API自动化测试工具,凭借其易于使用的图形界面,测试人员可以轻松验证基于 REST 和 SOAP 的 Web 服务,非常适合复杂的测试场景。
官网地址:https://www.soapui.org/
3)REST-Assured
REST-Assured是一个开源工具,用于在Java语言中测试REST API的好用工具,支持XML和JSON请求/响应,支持BDD-Given/When/Then的语法。这个框架让我们使用Java语言写接口测试用例变得容易和简单。
官方网站是:http://rest-assured.io/
4)JMeter
JMeter是一款用于应用程序压力和性能测试的开源软件,也被广泛用于接口测试。JMeter支持REST、SOAP、HTTP、HTTPS、FTP、TCP等多种协议。
JMeter 提供比较多的插件支持:https://jmeter-plugins.org/
官网地址:https://jmeter.apache.org/
5)Apifox
Apifox 作为接口测试工具功能强大,可以支持API 文档定义、API 调试、API Mock、API 自动化测试。简单来说,Apifox = Postman + Swagger + Mock + JMeter。
此外,Apifox 天生就是为团队协作而生的,接口云端实时同步更新,成熟的团队/项目/成员权限管理,满足各类企业的需求。
官网地址:https://www.apifox.cn/
6)Katalon Studio
Katalon Studio是一个强大而全面的自动化工具,用于API、Web、桌面测试和移动测试。Katalon Studio通过在一个包中包含所有框架、ALM集成和插件,提供了轻松的部署。将UI和API/Web服务组合到多个环境(Windows、Mac OS和Linux)的能力也是Katalon Studio在顶级API工具中的独特优势。此外,Katalon Studio还是一款无代码化的自动化测试工具,在“202年软件测试趋势报道:无代码化的测试自动化”中有相关介绍。
官网地址:https://www.katalon.com/
7)Karate
Karate是一个用于API测试的开源框架,不需要使用编程语言开发测试代码,测试人员可以通过使用特定领域的语言编写测试用例。该工具专门为自动化API测试而设计,由Intuit发布。几年前由Intuit公司创造的Karate已经发展成为具有综合能力的测试框架,覆盖了API 接口功能测试、UI自动化测试、性能测试,并提供Mocks支持。《敏捷测试:以持续测试促进持续交付》一书4.9.4节中有关于Karate测试工具的详尽介绍。
官网地址:https://github.com/karatelabs/karate
8)WireMock
WireMock 是一个基于HTTP的模拟服务,当被测试的API所依赖的API不存在或不完整时,WireMock 可以为特定的请求提供固定的响应,并捕获传入的请求,以便后面校验。WireMock 可以作为第三方库在项目中使用,也可以作为单独的进程启动。
官网地址:http://wiremock.org/
9) Hoverfly
Hoverfly是一个轻量的API服务模拟工具(有时候也被称作服务虚拟化工具),可以创建应用程序依赖的API的真实模拟。Hoverfly用于创建可重复使用的虚拟服务,在CI环境中替代缓慢和不稳定的外部或第三方服务,还可以模拟网络延迟,随机故障或速率限制以测试边缘情况。此外,Hoeverfly提供多种运行模式,可以对HTTP响应进行记录,回放,修改或合成。
官网地址:https://hoverfly.io/
10) Swagger
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。
Swagger除了具备API设计、开发和文档化的功能,还支持API的测试和API mock功能。Swagger 支持OpenApi 3.0的文档标准。
官网地址:https://swagger.io/
11) YApi
YApi 是高效、易用、功能强大的API管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API.YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
官网地址:http://yapi.smart-xwork.cn/
参考文档:
2021年软件测试工具总结——单元测试工具
高效接口测试的策略、原则、结构与实践技巧
Devops下的接口全生命周期管理与测试
2020年软件测试趋势报道:无代码化的测试自动化