本文记录了使用JMeter来模拟用户登录,并从登录接口返回的JSON数据提取Token供其它线程组使用。
主要内容:
- 1.登录提取token设置全局变量
- 2.使用全局token进行接口压测
1.下载
http://jmeter.apache.org/download_jmeter.cgi
2.新建测试计划
2.1.新建 HTTP请求默认值
用来统一管理待测试的服务器地址和端口
这里将测试服务器地址设置为 http://127.0.0.1:9999
2.2 新建 setUp线程组
这里的线程组来模拟登录使用只需要执行一次即可,所以单独用一个线程组。
在这个线程组下新建 HTTP请求来模拟登录
我这里登录是用的JSON格式,所以下面设置登录请求头为Content-Type:application/json
测试是否登录成功,新建 查看结果树
运行测试计划
可以看到登录已经成果返回了
{
"data": {
"token": "OGMwYTkzMzA1MDc3NDBiOGJjYjQyNDdkMjkwYmU2ZmQ6MTExMzAwMzEyNDA5MzYxNjEyOQ",
"user": {
"id": "1113003124093616129",
"username": "admin",
"truename": "管理员"
}
},
"message": "操作成功!",
"resultCode": "00000"
}
2.3.提取登录返回数据中的token并设置全局变量
1.提取token
新建 JSON提取器
这里 $
就是返回的JSON对象 $.data.token
就是获取token 然后赋值给 token 变量
2.将token赋值全局变量
新建 Bean shell 后置处理程序
${__setProperty(Token,${token},)}
将token赋值给Token
2.4.使用全局的Token
类似于登录,我们新建一个线程组来测试业务接口
在线程组下有个HTTP信息头管理器,我们可以设置获取全局Token
${__P(Token,)}
获取Token
这样设置后线程组下面的所有业务接口都能复用第一次登录的token了。
3.对登录一次对线程组里的业务接口进行压力测试
前面我们已经获取到全局的Token现在只需要给线程组设置规则就好了
新建 聚合报告
运行,并查看报告