基于Apache JMeter的接口自动化测试

基于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进行对接,每次构建完环境后,自动运行接口自动化脚本,并将报告以邮件等形式发送给管理者。

到此结束,希望能给大家带来帮助,如有错误不足之处,请指正,谢谢。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181207G0SRVS00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券