JMeter从CSV读取的threadCount变量无法设置线程组线程数问题
JMeter CSV参数无法赋值线程组线程数的问题原因
根本原因
这是由JMeter的组件初始化与执行顺序决定的:
- 线程组的
Number of Threads (users)属于测试计划的初始化配置项,JMeter在启动测试的配置解析阶段就会读取该参数确定要创建的线程数量,这个阶段远早于采样器、配置元件的运行时机。 CSV Data Set Config是测试运行阶段的配置元件,只有在线程正式启动后才会执行CSV读取逻辑、给对应变量赋值,所以初始化线程组时${threadCount}还没有被赋值,自然无法正常替换,和你日志中输出的Not running version, return raw function string提示完全对应:还未进入运行状态,直接返回原始的变量字符串。
为什么用户自定义变量可以生效
User Defined Variables(用户自定义变量)是JMeter初始化阶段最先处理的组件之一,处理时机早于线程组配置解析,所以线程组读取线程数参数时,用户自定义变量中配置的threadCount已经完成赋值,可以被正常识别替换。
可选解决方案
如果需要动态配置线程数,推荐两种常用方式:
- 使用JMeter属性传递:启动JMeter时添加启动参数
-JthreadCount=100,在线程组的线程数字段填写${__P(threadCount,)}即可读取属性值 - 提前读取CSV:在用户自定义变量中使用
${__CSVRead(你的CSV文件路径, 对应列序号)}函数提前读取CSV里的threadCount值,这样初始化阶段就能拿到对应参数
内容的提问来源于stack exchange,提问作者George
相关产品推荐
相关产品推荐

