本文是我们《手把手教你接口性能测试》系列文章中的中篇,主要介绍软件测试工作中常用的一些接口测试工具。
一、接口都有哪些类型?
1、接口一般分为两种:
1.程序内部的接口
2.系统对外的接口
程序内部的接口
方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如 论坛 系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。
系统对外的接口
比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把 数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
2、接口的分类
1.webservice 接口
2.http api 接口
webService接口
webService 接口是走 soap 协议通过 http 传输,请求报文和返回报文都是 xml 格式的,我们在测试的时候都用通过工具才能进行调用,测试。
http api 接口
http api 接口是走 http 协议,通过路径来区分调用的方法,请求报文都是 key-value 形式的,返回报文一般都是 json 串,有 get 和 post 等方法,这也是最常用的两种请求方式。
json 是一种通用的数据类型,所有的语言都认识它。(json 的本质是字符串,他与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成 Python 中的字典,key-value 的形式,可以转换成 JavaScript 中的原生对象,可以转换成 java 中的类对象等。)
二、接口–前端、后端和测试
前端对接口进行使用
通过后端人员给的接口文档,来进行 Ajax 的设计,通过接口向服务发送请求,获取响应的数据,然后通过返回的数据进行下一步的页面跳转和显示。
后端生成接口
通过编写接口,为前端提供与服务器和数据请求交互的通道。编写对应的接口,需要传递的参数,参数类型等等。然后生成接口文档,分享给前端,让其按照接口文档编写对应的 Ajax。
测试验证接口
可以通过接口文档,进行接口验证,查看后端开发的接口和前端所写的 Ajax 是否对应,有没有出错的接口,还可通过接口流程测试,知道整个系统之间的接口是否是相对应的,有没有接口是不对的,或者没有正常运行。
三、前端、后端和测试使用的接口工具
前端:一般使用 postman、apipost/apifox 或者 jmeter 进行接口验证和查看响应值。
后端:多用 swagger、postman、apipost/apifox 等接口文档生成工具和测试工具。
测试:jmeter、postman 和 apipost/apifox 等可以对接口进行验证测试。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036
四、接口测试工具介绍
Postman
postman想必不用说太多,是非常流行的API调试工具,广泛用于在开发过程中调试接口。postman简单方便,而且功能强大,具有全球范围的影响力。
postman是 Google 开发的一款接口测试的插件,也有客户端。
postman这款接口测试工具,是一款很轻便的接口验证工具,可以通过输入请求方法、url、参数直接进行接口请求访问,验证接口是否开通,还可以查看返回的响应值查看接口开发是否正常。
缺点是国内禁用 Google 之后,postman 的插件就不好下载和使用了。
官网地址:https://www.postman.com/
Swagger
swagger 是一款通过针对与后端开发人员的一款接口文档生成工具。主要通过在代码中的注释生成接口文档的工具。
Swagger 是一个规范且完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 的目标是对 REST API 定义一个标准且和语言无关的接口,可以让人和计算机拥有无须访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过 Swagger 进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。Swagger除了具备API设计、开发和文档化的功能,还支持API的测试和API mock功能。
缺点是Swagger-UI 封装好了一套 Html 模板,任何 RESTFUL API 的展示形式只能遵循其格式,不能灵活修改
官网地址:https://swagger.io/
Jmeter
jmeter 是基于java的开源软件,可以进行接口测试和性能测试的,
但是对于做单纯的接口测试 jmeter 操作起来没有 postman、apipost 使用起来方便。jmeter 重点在于压力测试,稳定性测试和负载测试。
针对于接口和程序的稳定性设计的一块以软件性能为主接口测试为辅的接口测试工具。
JMeter支持REST、SOAP、HTTP、HTTPS、FTP、TCP等多种协议。JMeter有丰富的插件支持。
官网地址:https://jmeter.apache.org/
缺点是配置元件多,需要逐步了解学习
Apipost
apipost 这款接口测试工具,主要针对于接口验证和接口文档生成。
Apipost = Postman + Swagger + Mock + Jmeter
apipost 这款接口测试工具,是一款很轻便的接口验证工具,可以通过输入请求方法、url、参数直接进行接口请求访问,验证接口是否开通,还可以查看返回的响应值查看接口开发是否正常。根据这些接口验证信息,直接可以生成在线文档和离线版的 word 文档。是一款很棒的接口测试和接口文档生成工具,又不像 swagger 生成的接口文档都是英文的阅读起来也不太方便。apipost 还具备协同工作,可以很有效的实现前端的接口联调。
缺点是需要收费
官方网址:https://www.apipost.cn/
Apifox
Apifox 是 API 文档、调试、Mock、测试一体化协作平台,定位Postman + Swagger + Mock + JMeter。通过一套系统、一份数据,解决多个系统之间的数据同步问题。只要定义好 API 文档,API 调试、API 数据 Mock、API 自动化测试就可以直接使用,无需再次定义;API 文档和 API 开发调试使用同一个工具,API 调试完成后即可保证和 API 文档定义完全一致。高效、及时、准确!
Apifox 由国人团队开发,不仅免费下载、开箱即用,还有自动生成 API 文档等
缺点是功能过于复杂了,上手有一定的门槛
官方网址:https://www.apifox.cn/
Yapi
Yapi是 API 管理平台,旨在为开发、产品、测试人员提供更优雅的接口管理服务。可以帮助开发者轻松创建、发布、维护 API,YApi 还为用户提供了优秀的交互体验,开发人员只需利用平台提供的接口数据写入工具以及简单的点击操作就可以实现接口的管理。
缺点是功能倾向于开发侧,测试方面不如以上几个工具
官方网址:http://yapi.dapengjiaoyu.com/
其他的工具:SoapUI、Eoapi、Hoverfl
脚本进行接口测试
使用的 python+requests 进行接口测试。实现接口的原理和接口测试工具一样。还是通过 url、参数和请求方法进行的接口测试。
核心是调用 requests 和 json 库,因为参数一般是通过 json 格式传递的。
缺点是需要python基础以及一点的编码能力(此处挖个坑,后续将开展接口自动化测试的手把手系列文章)
总结
主要介绍了接口类型和分类,软件测试工作中常用的一些接口测试工具。由于文字载体展示效果不佳,还需各位同学自行去实践。
本系列文章主要是JMeter接口性能测试的介绍,故会在下面一篇中主要介绍JMeter工具如何进行接口测试和并发性能测试。
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。