JMeter实操入门之登录
- 前言
- 初级-无变量的登录
- 线程组
- 取样器-HTTP请求
- 进阶-定义变量的登录
- 用户定义的变量
- 获取JSON返回的数据-token
- token设置全局变量
前言
安装及环境配置教程可移步:JMeter安装与配置环境
本篇文章针对小白进一步的认识及运用JMeter,围绕知识点会有:线程组、用户定义变量、全局变量、HTTP信息头管理器等
初级-无变量的登录
- 测试计划下,右击添加线程组
线程组
一个线程组能够看作一个虚拟用户组,线程组中的每一个线程均可以理解为一个虚拟用户。多个用户同时去执行相同的一批次任务。每一个线程之间都是隔离的,互不影响的。一个线程的执行过程当中,操作的变量,不会影响其余线程的变量值。
如下图:1s 内启动并运行 1个线程,一共启动 10个线程,总共发送 1 个请求(一个用户只请求一次)
- 线程组下,右击选择取样器,添加HTTP请求
取样器-HTTP请求
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
- jmeter中如果不指定content-type,默认使用此格式(参数格式:key1=value1&key2=value2)
- application/json不是默认的文件类型,所以需要告诉服务器我们发送的请求信息是哪种格式的。申明方法为添加信息头管理,在里面申明类型,消息头管理器添加方法:http请求上点击右键-添加-配置元件-HTTP信息头管理器
content-type
application/json
-
线程组下,右击选择监听器,添加结果树
-
运行,查看结果
默认txt,改成JSON。(用于查看响应数据)
- 如果返回的数据有乱码
- 方法一:可在消息请求头中设置为Content-Type:application/json;charset=UTF-8
- 方法二:检查jmeter.properties修改sampleresult.default.encoding=UTF-8
进阶-定义变量的登录
本篇登录可定义的变量有:服务器IP、接口Body Data的用户名、密码
用户定义的变量
- 测试计划下,选择配置元件,添加用户定义的变量
- 添加服务器IP、接口Body Data的用户名、密码。设置的名称到时候需要去引用的
3.在登录HTTP请求中,引用变量
4. 运行查看请求是否正常
获取JSON返回的数据-token
添加多个线程组同时运行其他接口的情况下,可以从登录返回的JSON中获取token
- HTTP信息头管理器下,选择后置处理器,添加JSON Extractor
- 变量名:
token
JSON参数路径:$.data.token
JSON参数返回如下可以看出是data下的token
- 线程组下,选择取样器,添加Debug取样器查看是否获取了token变量
token设置全局变量
通过后置定义token变量后,如需要在别的线程组使用,需要定义全局变量
-
线程组下,选择取样器,添加Bean Shell Sampler
表达式:${__setProperty(全局变量名,${局部变量名},)};
-
在别的线程组下HTTP信息头中引用
表达式:${__property(全局变量名)}
因为Authorization需要获得Bearer加token值。具体看自己需要用到的
-
最后运行结果如下:每个线程组中都可以加个结果树,便于单个查看请求的数据是否正确。
-
完成后,需要保存测试计划。
测试计划下,选择监听器,添加Simple Data Writer
保存文件路径,后缀可以.jmx
下次打开Jmeter可以直接打开该测试计划