在企业使用jmeter开展实际的接口自动化测试工具,建议按如下操作流程, 可以使整个接口测试过程更规范,更有效。
接口自动化的流程:
1、获取到接口文档:swagger、word、excel ...
2、熟悉接口文档然后设计测试用例(一般都是先在excel中编写)
3、进行用例评审
4、将excel中的测试用例在jmeter中编写完成(配置信息、数据、断言)
5、在相应的测试阶段执行jmeter中的接口用例
6、出接口测试报告
测试时间段:
测试——后端——测试单元、接口——时间:当API开发完成后
测试——前端——测试功能、业务——时间:当前端开发完成后
接口测试用例录入到jmeter中详细操作:
1. 在测试计划下新增一个线程组,并对测试计划和线程组根据项目重新命名
2. 在线程组下新增一个用户定义的变量元件,进行URL等公共参数设置
3. 在线程组下新增一个全局的http请求默认值元件进行取样器公共部分的设置
4. 在线程组下根据公司接口测试需要新增事务控制器元件作为按模块组织接口 的文件夹(事务控制器元件类似文件夹的含义,暂不具体讲解)
5. 在事务控制器下继续新增事务控制器作为单个接口的测试用例汇总文件夹
6. 在单个接口的测试用例汇总文件夹中继续新增事务控制器作为单个测试用例 的文件夹
7. 在单个用例的文件下新增取样器和断言操作(一般断言操作可设置在最后一 个请求中)
8. 反复根据2.5--2.7的过程增添接口测试用例
9. 添加察看结果树进行结果察看
实战如下图:
如果需要引用的数据量较大,且要求不能重复或者需要递增,那么可以使用计数器来实现
如:新增功能,要求名称不能重复
1,新增计数器
计数器:允许用户创建一个在线程组之内都可以被引用的计数器。
计数器允许用户配置一个起点,一个最大值,增量数,循环到最大值,然后重新开始,继续这样,直到测试结束。
配置路径:配置元件——计数器
2、在http请求中引用计数器 ${data}
3、在线程组中循环次数为10次
4、执行后查看结果树,每次循环计数器地址一个数字;如下图:
第一次迭代数据
第二次迭代数据
如果你需要让每个线程在请求之前按相同的指定时间停顿,那么可以使用这个定时器;需要注意的是,固定定时器的延时不会计入单个sampler的响应时间,但会计入事务控制器的时间
1、使用固定定时器位置在http请求中;每次http请求前延迟3秒;
配置路径——定时器——固定定时器;如下图:
2、线程组循环3次,通过表格查看结果;如下图:
可以对每个http请求前做随机延迟;如下图:
2、线程组循环3次,通过表格查看结果;如下图:
1、可以对每个http请求前做随机延迟;如下图:
2、线程组循环3次,通过表格查看结果;但是高斯定时器有时会超时设置的延迟时间;延迟3--5秒,有时会延迟导出5秒以上;故建议想要固定延迟时间可使用固定定时器;如下图:
同步定时器顾名思义就是所有的操作同一时间开始执行,通过使用同步定时器可以对某个请求进行并发的操作;一般用作压力测试;如下图
同步定时器添加路径:定时器>Synchronizing Timer(同步定时器)
模拟用户组的数量: 设置并发用户数,如果设置为0,代表线程组的线程数。
超时时间: 设置并发用户数等待的时间,0表示等到模拟用户数全部到位后开始释放执行;
举例: 模拟用户组数据设置为10,超时时间设置为5秒 ==》用户1第一个到达同步定时器开始计时,如果3秒钟,10个都到了,就一起释放执行后续的请求;如果5秒钟到了,只来了7个,那么7个一起释放执行后续的请求;特殊情况,超时时间设置为0,表示到达用户数不能达到模拟用户组的数量,则无限等待;
使用同步定时器实例:
以上图中的同步定时器为例,在登录1请求下添加同步定时器,如果线程组的线程数为5,那么在5个用户都到登录1的请求时会同时执行,可通过表格察看结果;如下图: