原文链接:https://www.cnblogs.com/jessicaxu/p/7512680.html

1.函数助手对话框-常用的Jmeter函数

(一级菜单栏->选项->函数助手对话框)
1、Random:在最大值和最小值之间取一个随机值。有三个参数:最大值,最小值,获取的随机值的变量名
例如,生成[1,100]内的随机函数
02-jmeter设置变量 - 图1
注意:在设置线程属性时,循环次数必须大于1,随机函数才会生效
例如${
Random(1,100,)},当设置线程数=10,循环次数=1时,10次随机函数的结果都是1;当循环次数>1时,才会随机取值
02-jmeter设置变量 - 图2
2、P:设置属性的默认值。有两个参数:变量名,默认值(默认值为1)。例如:${P(hostname,XXX)}:返回属性hostname的值,如果没有定义该属性则返回值XXX
3、CSVRead:从CSV文件中读取字符串。有两个参数:文件名,第几列(0表示第一列)
4、${
UUID}:随机取值,且结果唯一;区别于__Random(随机取值,结果有可能相同)
5.再请求参数中使用这些函数
Snipaste_2020-08-16_20-14-52.png

2.通过cvs文件

1、创建:添加->配置元件->CSV Data Set Config
2、作用:可以从.csv、.dat等文件中获取数据,并将这些数据参数化。当数据发生变化时,只需要改原始文件,不需要改脚本
02-jmeter设置变量 - 图4
3、参数含义02-jmeter设置变量 - 图5

Sharing Mode:共享模式: All threads:所有线程,所有线程循环取值,线程1取第一行,线程二取下一行;Current thread group:当前线程组,各个线程组分别循环取值;Current thread:该测试计划内的所有线程都取第一行

3.Test Plan中添加变量

可以在Test Plan中设置好变量名,变量名可以在任意的位置引用,比如说在线程组中直接用${变量名}方式引用变量,步骤如下:

  • 设置变量名和变量值

02-jmeter设置变量 - 图6

  • 添加线程组

02-jmeter设置变量 - 图7

  • 添加Sampler

02-jmeter设置变量 - 图8

  • 添加View Results Tree

02-jmeter设置变量 - 图9

  • 引用变量:${}

02-jmeter设置变量 - 图10

  • 查看执行结果

02-jmeter设置变量 - 图11

4.通过Config Element添加变量

  • 添加线程组

02-jmeter设置变量 - 图12

  • 添加Sampler

02-jmeter设置变量 - 图13

  • 添加View Results Tree

02-jmeter设置变量 - 图14

  • 通过Config Element添加变量

02-jmeter设置变量 - 图15

  • 设置变量

变量名为url,变量值为www.sina.com
02-jmeter设置变量 - 图16

  • 引用变量

02-jmeter设置变量 - 图17

  • 查看执行结果

02-jmeter设置变量 - 图18

  • 在Test Plan中设置变量:url=www.sohu.com

02-jmeter设置变量 - 图19

  • 查看执行结果

和步骤7)的结果是一致的,请求的都是新浪
02-jmeter设置变量 - 图20

  • 说明
  1. 如果在Test Plan中也设置了同样的变量名,那么会变量引用时会采用就近原则取值,比如在Test Plan中设置变量url值为www.sohu.com,再次执行脚本请求的仍然是新浪;(尽量不要重复定义相同的变量名)
  2. 新生成的User defined Variables放在最后也是没有问题的,只要是同级目录下就都能访问到,和顺序没有关系。

    5.通过User Parameter

    可以针对不同的线程定义不同的变量,前面的2种方式是做不到的。
  • 添加线程组

02-jmeter设置变量 - 图21

  • 添加第1个HTTP Request

02-jmeter设置变量 - 图22

  • 添加第2个HTTP Request

02-jmeter设置变量 - 图23

  • 添加View Results Tree

02-jmeter设置变量 - 图24

  • 添加User Parameters

02-jmeter设置变量 - 图25

  • 设置变量两组变量值

如图添加两个变量url1和url2,url1有两个user分别为www.sohu.com和www.sina.com;url2有两个user分别为www.iciba.com和cn.bing.com
02-jmeter设置变量 - 图26

  • 第1个HTTP请求中引用变量url1

02-jmeter设置变量 - 图27

  • 第2个HTTP请求中引用变量url2

02-jmeter设置变量 - 图28

  • 默认开1个线程的执行结果:

分别执行了url1和url2中uer_1对应的url
02-jmeter设置变量 - 图29

02-jmeter设置变量 - 图30

  • 开2个线程的执行结果:

把设置的4个url都执行了一遍
02-jmeter设置变量 - 图31
02-jmeter设置变量 - 图32

  • 开3个线程的执行结果:

02-jmeter设置变量 - 图33
02-jmeter设置变量 - 图34

02-jmeter设置变量 - 图35