一、主流工具推荐与对比
(1)Apifox
(2)Postman
(3)JMeter
(4)DATF(零编码工具)
(5)Robot Framework
二、选择关键维度
2.维护成本与易用性
3.集成与扩展能力
三、新兴趋势与建议
四、总结与推荐
实战介绍:
主流的接口自动化测试工具很多,比如有posterman、jmeter、soupUI、AirPost等,另外还有代码实现方式,需要一定的代码功底,实现功能灵活,可以根据自己的需要进行定制,以便对接口实现比较完整的测试点覆盖:Java:testing+git+httpclinet+Jenkins+ant,pytho:pytest+git+Jenkins+requests。对此,这几款工具对比分析如下:
Postman工具的优势:
Ø 清晰的图形界面
Ø 结合界面操作可以快速的配置接口请求信息,提供各种类型接口配置,以及数据配置
Ø 有丰富响应断言,方便对于接口进行快速验证
Postman工具的不足:
Ø 无法连接数据库
Ø 无法进行共有的代码封装以及引入第三方插件
Jmeter工具的优势:
Ø C/S架构,基于java实现的工具,配置起来比较容易,更偏向于性能测试;
Ø JMeter提供了BeanShell编程能力,可以写出比较灵活的测试脚本;
Ø JMeter提供了比较高级的扩展能力,允许自己定义和扩展新的协议支持;
Ø JMeter的社区比较完善,提供了比较丰富的协议支持;
Jmeter的不足之处:
Ø 脚本缺乏灵活性,测试报告更多的偏向于性能方面;
Ø 对于全自动化实现的支持不足。
PS:因目前我司统一DevOps持续集成平台,已将Jmeter集成到了DevOps平台,满足了全自动化实现条件,同时对测试结果报告进行了整合优化。
SoapUI工具的优势
Ø SoapUI支持REST和SOAP服务;
Ø 使用拖放,点击即可轻松生成测试脚本,并可以导致代码形式测试用例;
Ø 使用来自文件和数据库的数据进行强大的数据驱动测试;
Ø 脚本可以轻松重用;
Ø 使用RESTful模拟模拟服务;
SoapUI不足之处
Ø 需要破解;
Ø SoapUI对于PC资源占用大。
AirPost和postman工具类似,非开源。
通过上面部分的阐述,相信大家对于哪个工具能达到的效果已有了一定的识别。下面我们再回过头来看到我们另一个依据,最少投入。
投入包含两部分:一是学习成本投入,二是工具本身的资金投入。
1、从学习成本来看
完整的接口自动化测试体系学习成本肯定要比Postman、jmeter这类独立工具成本高。但Postman、jmeter这类独立工具来做接口测试,它们之间的学习难度差距不大。
目前对于一些测试工具已经公开了学习视频,进一步降低了大家的学习成本。
2、从工具本身的资金投入来看
部分测试工具拥有比较强大的功能,但是非开源。在选择的过程中,个人建议要更偏向于使用开源工具。
最后综合对比,通过如下表格总结:
工具/框架 |
学习难度 |
是否开源 |
自动化完整性 |
可维护性 |
postman |
☆ |
否 |
否 |
否 |
jmeter |
☆☆☆ |
是 |
是 |
是 |
soupUi |
☆☆ |
否 |
否 |
否 |
testng+git+jenkins |
☆☆☆☆☆ |
是 |
是 |
是 |
pytest+git+jenkins |
☆☆☆☆ |
是 |
是 |
是 |
目前结合DevOps使用以及学习成本,主要是jmeter工具使用。
在通过jmeter工具进行接口自动化测试时,可以通过录制脚本进行辅助测试,但因为录制的脚本错乱、冗余信息多,并不完全适合进行场景的接口自动化实现,一般还是通过自行设计及编写测试脚本进行接口自动化实现。
在设计时,一般建议通过菜单进行功能模块划分,同时提炼公共信息、通用变量,来简化脚本实现。如下图所示: