JMeter(3): 定义变量

1. 前言

在使用JMeter的过程中, 常用的定义变量入口有User Defined Variables(UDV)CSV Data Set Config
UDV比较好理解, 毕竟没有选项
CSV Data Set Config就麻烦一点, 配置就跟完型填空一样

2. 结论

  • UDV变量所有线程共享, 同名变量取第一个, 且可读取jmeter.propterties参数
  • CSV
    • Ignore first line, 即是否忽略表头, 如果为true, 过滤第一行
    • Allow quoted data, 默认为False, 即"做为字符串的一部分; 默认为True, 将"内的字符串作为一个整体, 即使其中包含分隔符
    • Recycle on EOF, 默认True, 当线程数大于数据行数, 线程会从头继续读取; 如果为False, 则变量填充EOF
    • Stop thread on EOF只在 Recycle on EOF 为False时有效, 如果为True, 则变量填充为EOF时不执行线程
    • edit参数用于自定义表达式, 返回true or false
    • Sharing mode, 默认为All threads, 表示所有线程共同读取一个CSV文件; Current thread表示线程独享CSV文件

3. 实验

为了搞清楚参数的含义, 新建Jmeter工程试验一下

  • 添加线程组, 定义线程数为3
  • 添加被测组件UDV
  • 添加被测组件CSV Data Set Config
  • Debug SamplerView Results Tree用于观察变量
image.png

3.1 UDV 配置

image.png

3.2 CSV配置

数据文件内容:

1   "Java   12"
2   Python
image.png

3.3 场景

  • 默认配置
Allow quoted data = False
Recycle on EOF = True
Stop thread on EOF = False
info.gif
  • 修改Allow quoted data为True
Allow quoted data = True
Recycle on EOF = True
Stop thread on EOF = False
info.gif
  • 修改Recycle on EOF为False
Allow quoted data = True
Recycle on EOF = False
Stop thread on EOF = False
info.gif
  • 修改Stop thread on EOF为edit
    填充表达式${__BeanShell(vars.get("u_var").equals("come from UDV"))}
    image.png

剩下的场景请自行实验

  • 线程数 > CSV行数, Recycle on EOF + Stop Thread on EOF组合
  • 线程数 <= CSV行数, Recycle on EOF + Stop Thread on EOF组合
  • Sharing mode参数

推荐阅读更多精彩内容

  • 主要文体来自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano阅读 9,742评论 3 26
  • 1 Jmeter安装配置 使用Jmeter前首先要安装JDK,配置JDK环境变量。Jmeter不需要安装,下载后...
    茶小汐阅读 2,180评论 0 8
  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    IT诸葛亮阅读 3,187评论 0 16
  • JMeter也有像LR中的参数化,本篇就来介绍下JMeter的参数化如何去实现。 参数化:录制脚本中有登录操作,需...
    guiwuzhe阅读 199评论 0 0
  • 晚上跑完步慢悠悠的沿着河边往回走,我真的闻到了清甘的河水的味道,伴着夜晚夏日的凉风吹来。 原谅我没有文采,无法生动...
    墨尘禅阅读 2,417评论 0 0