使用JMeter测试API项目
API情况:
- 接口是http协议,使用get/post
- 使用请求参数返回json字符串,其中带有"errno":0字段值表明成功。
- 接口有__plat、__version、sign等固定参数
- 登陆用户验证串在cookie中(测试中使用特殊参数绕开验证,因对结果影响不大)
测试目标:
- 接口按照优先级(重要性+访问频率计算)分成3种,并发分别为300、200、100
- 单机目标,平均响应时间500ms内,qps大于1000
- 测试环境分开发、测试、线上
JMeter简单介绍:
测试计划:等同项目的概念
右键点击测试计划——添加可见下面各种元素:
- 配置元素——用户定义的变量:key-value形式,等同于变成语言中的变量,有作用域的概念,放在tree哪个节点下作用域就是哪个节点。在项目中可以用${xxx}替换变量值。(全局变量)(请求参数变量)
- 配置元素——HTTP头信息管理器:key-value形式,管理http header,有作用域。(HTTP Header)
- 配置元素——HTTP Cookie管理器:管理http cookie,有作用域。(HTTP Cookie)
- 配置元素——HTTP默认请求:有作用域与继承的关系,定义一些通用的属性。(HTTP默认请求)
- 断言——响应断言:有作用域。用于判断测试是否成功。常用的是响应代码——equal、响应文本——Substring(断言:code=200、断言:返回值errno=0)
- Threads(Users)——线程组:类似LoadRunner中的用户,可配置并发数、请求次数等。在这里1个线程组对应1个测试,因为接口分3个等级,并发不同所以不能把多个接口放在一个线程组中。注意,1个线程组中的http接口测试是顺序执行的,不是并发。单个接口测试要各自分配线程组。
- Sampler——HTTP请求:对应一个接口,被线程组包含。
- 监听器——聚合报告:测试结果汇总,重要的指标有Samples(请求数)、Average(平均响应时间毫秒)、Error%(错误百分比)、Throughput(QPS)
命令行运行测试
- 要添加“聚合报告”
- 命令行运行:jmeter -n -t testplan.jmx

浙公网安备 33010602011771号