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可以直接打开该测试计划
 