基于Apache JMeter的接口自动化测试
导读
Apache Jmeter是基于Java的压力测试工具,多被用来对HTTP、FTP、数据库等进行性能测试,常用的接口自动化工具有Postman、soapUI、Python+unittest等等。之所以用jemeter做接口自动化测试,是因为它有以下几点优势:
1、它有完善HTTP协议的支持
2、有Swing图形用户界面,容易上手
主要是小编用习惯了jemeter。(如果大家感兴趣的话,后续还会分享关于jemeter的压力测试流程)
有没有必要做接口自动化测试?
想必各位做测试的同仁都有遇到过:开发人员提交测试后,漏合代码、未刷或漏刷脚本;开发新需求引发原有功能故障;新开发人员对业务不熟悉开发功能不全面等等,导致功能出现问题,已是屡见不鲜了。
那么,如何尽早介入测试,发现隐藏问题,减少一系列成本是我们值得思考的。对于系统业务逻辑比较复杂的系统,人工回归测试所消耗的时间较大,一般情况第一轮测试不会进行全面测试,只验证新需求,后面回归测试再发现问题带来的成本会更大。我们可以将系统涉及的接口,做成自动化场景,用来协助完成冒烟测试和回归测试,发现人工不易发现的问题。
接口自动化测试与UI自动化测试相比,接口自动化测试相对比较稳定,执行时间较短,平均每个接口用例1秒就可执行完。
做接口自动化测试的前提准备
需要强调:
1、新增、被动调用的接口都需要进行性能评估
2、接口变更时新增必填字段
3、无法单方面回退版本的接口
这些是需要重点关注的。小编遇到过一些接口测试环境和生产环境上线都没有问题,到月底月初账时,客户办理套餐业务量较大,相关接口会出现异常,严重的直接就无法使用了。所以一些高并发、大数据量接口要压力测试和稳定性测试。
接口自动化测试需要准备的工作:设计接口测试用例,梳理接口文档(可以让开发提供或通过fiddler抓包工具获取),以及开发工具jemeter。
操作步骤
01
通过jemeter文件中bin目录下的jemeter.bat启动图形用户界面,新建测试计划,在测试计划下新建线程组,设置线程数为1,线程启动开始运行的时间间隔1,循环次数1
02
添加HTTP cookie管理端和HTTP 信息头管理器
03
添加用户自定义变量用于将IP地址、端口号参数化
04
如果需要读取文件参数可以添加CSV Data Set Config配置,并将文件和脚本放入同一个文件夹下,就可通过变量进行读取
05
在线程组下添加HTTP请求,一个HTTP请求为一条用例,IP和端口号通过$引入用户自定义变量
06
在HTTP请求下添加响应断言,就是对响应数据做校验,如果不符合校验条件会报错
07
如果涉及一些变量需要加密解密,可以添加解码jar包后,在HTTP请求下添加BeanShell PreProcessor,进行对变量加密解密
08
最后添加聚合报告和察看结果树,基本框架就完成了,是不是很简单!
我们运行看一下,运行24条接口用例耗时30s左右。
展望
有兴趣的同学可以将Jenkins和jemeter进行对接,每次构建完环境后,自动运行接口自动化脚本,并将报告以邮件等形式发送给管理者。
到此结束,希望能给大家带来帮助,如有错误不足之处,请指正,谢谢。
领取专属 10元无门槛券
私享最新 技术干货