目前接口测试越来越重要,也普遍得到了各个公司的重视,通常开展接口测试的方案有:
- 代码(java或者python),要求测试人员有基础的编码能力,实现有一定门槛。
- jmeter,绝大多数场景无需编码,另外便于直接对接口进行性能测试(增加线程组中的线程数即可)。
- 自己研发的测试平台,大厂秀kpi的东东,普通公司不需要玩这个。
在这里我来讲解一下通过jmeter落地接口测试的方案,本文先介绍用例的设计逻辑,以及jmeter中一些相关的基础的技术点,下一遍文章会重点介绍如何通过git和jmeter-maven-plugin插件管理jmeter接口文档,敬请期待!
备注:本文默认读者了解接口测试的基础概念,能够对jmeter进行基础操控。
基础设计逻辑
应用为基础创建Jmeter脚本,即.jmx文件,一个人创建一个jmx文件(避免不熟悉git操作的同学多人协作时产生冲突)
各个模块进行细分,一个简单控制器就是一个模块(一个简单控制器中可以包括多个接口),如下图:
一个接口就是一个sampler(通常都是http类型接口),如下图:
每个接口都需要有响应断言来校验接口的返回值正确性(依赖接口文档)。
统一设计查看结果树和聚合报告,用来查看接口的执行结果。
整体用例组织结构,如下:
使用jmeter执行基础接口测试时,常用的知识点汇总如下:
- 用户自定义变量。
- 定义形式是:${变量名}。
- 例如:/url&accessToken=${access_token}。
线程组>右键添加>配置元件>用户定义的变量,如下图:
以后再次调用时就可以使用${user}。
我们也可以把变量放到配置文件中,然后读取,具体方法如下:
线程组>右键添加>配置元件> CSV 数据文件设置,如下图:
设置完成后,就可以把文件中的变量赋值给user和password了,然后脚本中就可以进行引用了。
备注:
- 再次循环 True:假设csv 文件共有 10 条记录,但是线程循环15次,执行 10 次后,重头开始循环。
- 停止线程 False:,如果全部取完了想继续那就是True,如果想文件的数据用完就结束,比如注册不可以重复用,那就设置False。
默认请求
线程组>右键添加>配置元件>HTTP请求默认值。
设置的好处是,请求中不需要再设置ip和端口了,有利于在不同环境中的统一配置。
信息头管理器
线程组或者具体请求(作用域不同)>右键添加>配置元件>。
以json为例:
JSON Extractor
请求>右键添加>后置处理器> JSON Extractor。
例如响应:
{"status":200,"message":"","data":{"testCode":"95a9a6dfc3e5e8107523a782fc4cc55x","token":"00522794718a07fac56c7d18f2e8c9xy","refreshToken":"8e10d3a688a97bdecbb441a9590fa0zz","expires":604800}}
上图中的token代表着变量名称。
$.data.token 是固定写法,表示取响应中的data值中的token内容:
00522794718a07fac56c7d18f2e8c9xy,并把其赋值给变量token。