Jmeter变量设置

全局变量线程组变量

 

在测试计划中添加的变量可以所有的线程组中使用。

 

 

也就是说,变量名只能存在一个。 类似与Postman中 Global 变量。

 

 

线程组设置变量

线程组添加用户定义的变量】,在用户定义的变量中设置的变量,只能在当前线程组中使用,类似Postman中定义 环境变量。

 

 

企业微信的接口中, 前缀 都一样

 

 

 

 

 

 

运行之后,可以看到执行的结果中,使用的变量是 线程组中定义的用户变量,没有用 测试计划 中设置的变量。

 

 

 

常问面试题

  1. jmeter 中设置变量的方式有哪些?
  1. 在【测试计划】中设置变量,可以所有的线程组中使用;
  2. 在【线程组】--【用户定义的变量】设置的变量,可以在所有的线程组中使用。
  1. 如果在两个线程组中分别创建同样的变量,使用的时候不确定用的哪个线程组中变量。
  2. 建议使用 【测试计划】中创建的变量。
  1. 在进行上下游传参的时候,使用JSON提取器,动态获取服务器返回的结果,提取对应值 设置为变量。
  1. 与上面方式不同的是:取到的值是动态的。
  2. 上面两种方式设置的值是固定。

 

 

正则表达式提取

正则表达式提取器与JSON提取器的 最终目的是一样的: 都是为进行上下游传参设置。

 

正则表达式更强大,json提取器能提取到的数据,正则也能!

 

正则提取器能提取到的数据,JSON提取器不一定能。

 


下面看个例子:

标记单个消息为已读,前提条件是:必须要有未读的消息。

 

 

 

未读消息的接口:

 

 

 

这两个接口就有上下游传参

 

创建上游接口

 

 

查看服务器返回的结果

 

 

里面返回很多数据。

使用Json提取提取

在查看结果树中,使用json Path Tester 进行查看

 

 

 

先使用json提取提取出来

 

 

对应的json提取器表达式

$.data.hasnot_read_messages[0].id
  • [0] 表示的是 第一个未读消息。
{
  "data":{
  	"hasnot_read_messages":[
      {"id":"1111111222"},
      {"id":"22222333344"}
    ]
  }
}

使用json提取器, 提起data的值

$.data

data 对应的值是

{
  	"hasnot_read_messages":[
      {"id":"1111111222"},
      {"id":"22222333344"}
    ]
 }

再次提取 hasnot_read_messages 对应值

$.data.hasnot_read_messages

取到的值为 对应的数组,数组表示多个数据。

[
      {"id":"1111111222"},
      {"id":"22222333344"}
    ]

从数组中提取一个。 索引为0

$.data.hasnot_read_messages[0]

取到对应的结果

{"id":"1111111222"}

最后取对应的id值

$.data.hasnot_read_messages[0].id

设置json路径表达式

 

 

 

创建下游接口标记单个消息为已读,通过引用变量的方式。

 

 

 

附件

相关文章

Jmeter:Authenticationcredentialswerenotprovided上次在使...
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:...
jmeter默认语言设置: 1、临时设置:进入options--ChooseLa...
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加...
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了...
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent...