测试进阶必备,这 5 款 http 接口自动化测试工具不要太香~
![测试进阶必备,这5款http接口自动化测试工具不要太香~](https://static001.geekbang.org/infoq/4e/4efe0782ec0bfba9b5f4d891287792bd.webp)
现在市场上能做接口自动化测试的工具有很多,一搜一大把,让人眼花缭乱。我们去选择对应实现方式时,不管是框架体系还是成熟稳定的工具,核心目的都是期望引入的技术能在最低投入的情况下达到最优效果。
那么我们选择依据出来了:
一是最低投入。
二是最优效果。
一、先来看最优效果
要达到该点,在做接口测试前,做为测试者,我们需要非常明确自己选择测试工具去达到的核心目的。通常情况下可能有以下几个:
这里不仅仅只是说明了全流程自动化接口测试实现方案,对于常规的接口测试也进行了罗列
开发者调试接口
测试人员提前介入测试,尽早发现程序缺陷
测试人员对于系统接口回归,确保后台逻辑无缺陷,降低版本迭代风险
如是情况 1 或者 2,在实际的项目开发过程中,这其中的空余时间不固定且零散,按照这样的预期,我们期望接口测试工具更为便捷,可以快速的配置出接口测试脚本或用例。这类接口自动化测试工具有:
1、Postman
![](https://static001.geekbang.org/infoq/aa/aa49b24662ea332bab2de4bede8f8578.png)
Postman 工具的优势:
清晰的图形界面
结合界面操作可以快速的配置接口请求信息,提供各种类型接口配置,以及数据配置
有丰富响应断言,方便对于接口进行快速验证
Postman 满足了基本常见接口测试,但是还是有部分不足的地方,下面就讲。
Postman 工具的不足:
无法连接数据库
无法进行共有的代码封装以及引入第三方插件
2、Jmeter
![](https://static001.geekbang.org/infoq/a6/a65954f1c956a18389fb05a42474c02e.png)
Jmeter 工具的优势
C/S 架构,基于 java 实现的工具,配置起来比较容易,更偏向于性能测试;
JMeter 提供了 BeanShell 编程能力,可以写出比较灵活的测试脚本;
JMeter 提供了比较高级的扩展能力,允许自己定义和扩展新的协议支持;
JMeter 的社区比较完善,提供了比较丰富的协议支持;
Jmeter 的不足之处:
脚本缺乏灵活性,测试报告更多的偏向于性能方面;
对于全自动化实现的支持不足。
3、SoapUI
SoapUI 工具的优势
SoapUI 支持 REST 和 SOAP 服务;
使用拖放,点击即可轻松生成测试脚本,并可以导致代码形式测试用例;
使用来自文件和数据库的数据进行强大的数据驱动测试;
脚本可以轻松重用;
使用 RESTful 模拟模拟服务;
SoapUI 不足之处
需要破解;
SoapUI 对于 PC 资源占用大。
4、Airpost
和 postman 类似,非开源。
![](https://static001.geekbang.org/infoq/b2/b29fce3c249347c19b008f71de777c40.png)
最后我们来到情况 3:测试人员对于系统接口回归,确保后台逻辑无缺陷,降低版本迭代风险。
这种情况下,我们就需要选择比较完整的自动化测试框架并可持续执行。对于该实现形式主要有以下要求:
可持续运行;
可维护性高;
丰富断言以及报告;
这里推荐一些代码形式实现接口自动化测试框架或可视化接口测试平台:
5、代码实现形式:
需要代码功底,实现功能灵活,可以根据自己需要来进行定制,以便对接口实现比较完整的测试点覆盖
Java:testng+git+jenkins+httpclient+maven+poi+jsonpath
Python:pytest+git+jenkins+requests
6、可视化接口自动化测试平台:
测试人员只要进行简单培训就能进行操作,跟平常使用业务功能系统一样,方便灵活组织、维护和运行测试用例,丰富的报告,这里提供两个开源工具平台。
EasyTest:https://github.com/lixiaofeng1993/EasyTest
Django 实现的可视化接口自动化测试平台:https://github.com/githublitao/api_automation_test
二、来看最少投入
通过上面部分的阐述,相信大家对于哪个工具能达到的效果已有了一定的识别。下面我们再回过头来看到我们另一个依据,最少投入。
投入包含两部分:一是学习成本投入,二是工具本身的资金投入。
1、从学习成本来看
完整的接口自动化测试体系学习成本肯定要比 Postman、jmeter 这类独立工具成本高。
但 Postman、jmeter 这类独立工具来做接口测试,它们之间的学习难度差距不大。
目前对于一些测试工具已经公开了学习视频,进一步降低了大家的学习成本,请看:
Postman 学习视频百度网盘,这些学习视频我也分享在了文末
2、从工具本身的资金投入来看
部分测试工具拥有比较强大的功能,但是非开源。在选择的过程中,个人建议要更偏向于使用开源工具。
三、用表格最后总结
综合上面的描述,我们用下面的表格来做个小的总结,请看:
![](https://static001.geekbang.org/infoq/c4/c4c4771d6357458cbc61c173703340ae.png)
结合上面的表格来选择适合自己需要的接口自动化测试工具吧。加油,最后预祝你自学也能月薪 10k+。
![](https://static001.geekbang.org/infoq/6e/6e06042df0118a2d8011935f3504d2d5.png)
最后: 可以在公众号:伤心的辣条 ! 自行领取一份 216 页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux 必备、Shell、互联网程序原理、Mysql 数据库、抓包工具专题、接口测试工具、测试进阶-Python 编程、Web 自动化测试、APP 自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习技术千万不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:746506216(里面有各种软件测试资源和技术讨论)
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
版权声明: 本文为 InfoQ 作者【伤心的辣条】的原创文章。
原文链接:【http://xie.infoq.cn/article/8ec6c0583007410b0d09fd055】。未经作者许可,禁止转载。
评论