Restful API接口简介
- 协议:http\ https
- method:GET\POST\PUT\DELETE
- 结果状态返回码:200,303(重定向),401(未授权),500(服务器内部错误)等
创建第一个压测脚本
#基础流程-添加组件
.创建测试计划
1.创建线程组
2.设置线程数和循环次数
3.创建Http请求,配置请求参数
4.添加响应断言
5.添加察看结果树和聚合报告
6.运行测试
例:
需求:
接口详情地址:https://api.qqsuu.cn/doc/dm-ipquery.html
操作:
创建压测脚本:
- 创建测试计划 TEST Plan
- 添加线程组 Thread Group
- 添加http取样器 Http Request Sampler
- 定义请求名称
- 配置请求参数 Host\Port\Path,Method=POST\GET
body data 中配置请求参数-json - 在Http Request添加Http Header Manager ,管理该请求的header信息
获取登录(上一次请求返回的)的token,用于本次请求(思考:如何获取动态token?)
content-Type :application/json
access_token: - 在请求接口上添加响应断言
- 在Thread Group添加结果查看器View Result Tree,查看请求/响应详情
- 添加聚合报告
参数动态传递
压测过程中数据传递 动态变量传递
1.添加调试样本Debug Sampler
- 线程组下添加调试样本Debug Sampler,帮助调试的组件,主要用于查看变量和属性值
Debug Sampler的配置:
JMeter Properties:JMeter 属性
JMeter Variable:JMeter变量
System Properties:系统环境变量
一般只显示JMeter 变量,其他两项不用显示
注意:Debug Sampler使用时,请求从前往后执行,建议放在最后面,便于收集变量
2.数据提取
接口之间需要正确的数据传递才能保证程序的正常运行。
响应数据格式:json
传入参数保持一致,使用json格式 - 提取接口的JSON返回值
- 在对应的Http Request中添加JSON Extractor(JSON提取器)
注意:JSON Extractor在Post Processors中
需要使用JSON路径表达式来匹配需要提取的变量值
$. 代表JSON的根节点
可以在View Result Tree中打开JSON Path Tester 确定所匹配的JSON变量路径的正确性
在Debug Sampler中查看提取结果:
3.数据传递
- 在接口请求的header中 HTTP Header Manager添加获取的变量(如:access_token变量)
- JMeter中其他接口请求引用变量的方法:${变量名}
可设置全局变量:
把HTTP Header Manager放在线程组下面。项目全局使用。
数据传递规则过程:
1.获取前序接口的返回值数据,响应数据获取,JSON提取
2.JSON Path 解析
3.将数据赋值给对应变量
4.后续接口引用该变量
5.运行调试Debug Sampler,调试脚本
添加响应断言
作用:
- 校验请求/响应的正确性
- 压测结果的有效性
- 断言的实际值与设定值是否相符-成功/失败
操作:
- 【请求】右键单击对应的HTTP Request,添加Response Assertion(响应断言)
- 将校验条件加到响应断言中
- 比如:响应文本是否包含某个字符串或http 响应码是否200
校验: - 运行单并发压测,验证断言正确性:校验HTTP响应码或响应文本内容
- View Results Tree中查看结果
Demo-添加响应断言,运行回放验证,更新断言期望值展示出错信息
断言校验:View Results Tree查看结果
添加察看结果树