安装及环境配置教程可移步:JMeter安装与配置环境
本篇文章针对小白进一步的认识及运用JMeter,围绕知识点会有:线程组、用户定义变量、全局变量、HTTP信息头管理器等
一个线程组能够看作一个虚拟用户组,线程组中的每一个线程均可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每一个线程之间都是隔离的,互不影响的。一个线程的执行过程当中,操作的变量,不会影响其余线程的变量值。
如下图:1s 内启动并运行 1个线程,一共启动 10个线程,总共发送 1 个请求(一个用户只请求一次)
Parameters参数
Body Data主体数据
具体看登录的接口是怎么请求的如下图,是通过Body Data传参的
F12查看接口请求的数据:接口https://smarthotel.laiyijian.cn/smarthotel-authentication/open/admin-auth/createToken
拆解填入JMeter-HTTP请求中
① 协议为:https
②服务器IP(HOST): smarthotel.laiyijian.cn
③请求方式:POST
④接口路径:/smarthotel-authentication/open/admin-auth/createToken
⑤请求的BODY参数为:
{
"username": "myy@mall",
"password": "admin123456",
"loginChannel": 1
}
3. 线程组下,选择配置元件,添加HTTP信息头管理器
content-type
application/json
线程组下,右击选择监听器,添加结果树
运行,查看结果
默认txt,改成JSON。(用于查看响应数据)
本篇登录可定义的变量有:服务器IP、接口Body Data的用户名、密码
4. 运行查看请求是否正常
添加多个线程组同时运行其他接口的情况下,可以从登录返回的JSON中获取token
token
$.data.token
通过后置定义token变量后,如需要在别的线程组使用,需要定义全局变量
线程组下,选择取样器,添加Bean Shell Sampler
表达式: ${__setProperty(全局变量名,${局部变量名},)};
在别的线程组下HTTP信息头中引用
表达式:${__property(全局变量名)}
因为Authorization需要获得Bearer加token值。具体看自己需要用到的
最后运行结果如下:每个线程组中都可以加个结果树,便于单个查看请求的数据是否正确。
完成后,需要保存测试计划。
测试计划下,选择监听器,添加Simple Data Writer
保存文件路径,后缀可以.jmx
下次打开Jmeter可以直接打开该测试计划