jmeter 中 CSV 数据集配置的 "filename" 文本的参数化问题
Problems with the parameterization for the "filename" text of CSV Data set config in jmeter
我知道 CSV 数据集配置不能使用 JMeter 变量作为 "Filename",所以我使用了不同帖子中建议的 __property 函数:
- 我在 "User Defined Variable" 配置元素中定义了一个初始变量 (datapoolpath)
- 然后我在 BeanShell 预处理器
中将我的 'datapoolpath' 变量转换为 属性 'pdatapoolpath'
- 我在 CSV 数据集配置的文件名字段中使用了 ${__P(pdatapoolpath)}
当我 运行 使用 Jmeter GUI 进行 mytest 时,此解决方法 运行 没问题。
一旦我尝试通过 cli (jmeter -n -t mytest,jmx -Jdatapool=c:\datapool) 运行 相同的测试,它就不再工作了(即:csv 数据配置不是能够找到 csv 文件,因为 属性 "pdatapoolpath" 值为空。请注意,在我的 BeanShell 脚本中,我用来打印 属性 的值,但它似乎仍然正确打印。
所以我的问题是:我哪里错了?为什么 jmeter 在 运行 来自 GUI 与 CLI 时表现不同?
提前致谢
如果可以在 UDV 中初始化,您可以在 CSV 数据集配置字段中使用变量。
假设名称和路径 c:\datapool.csv
中有一个文件,通过使用 -J
- 您实际上是将 property
传递给 JMeter 测试;不可变。
-J, --jmeterproperty {argument}={value}
Define additional JMeter properties
如果你这样调用
jmeter -n -t mytest.jmx -Jdatapool=c:\datapool.csv
您可以使用在命令行中传递的 属性 名称直接在 CSV 数据集配置中使用它。
${__P(datapool)}
如果您需要将此 属性 复制到用户定义变量,
vdatapool = ${__P(datapool)}
然后在 CSV 数据集配置中访问下面给出的变量。
${vdatapool}
这就是我们需要在 JMeter 中访问变量和属性的方式。
${variablename}
${__P(proprtyname)}
我知道 CSV 数据集配置不能使用 JMeter 变量作为 "Filename",所以我使用了不同帖子中建议的 __property 函数:
- 我在 "User Defined Variable" 配置元素中定义了一个初始变量 (datapoolpath)
- 然后我在 BeanShell 预处理器 中将我的 'datapoolpath' 变量转换为 属性 'pdatapoolpath'
- 我在 CSV 数据集配置的文件名字段中使用了 ${__P(pdatapoolpath)}
当我 运行 使用 Jmeter GUI 进行 mytest 时,此解决方法 运行 没问题。 一旦我尝试通过 cli (jmeter -n -t mytest,jmx -Jdatapool=c:\datapool) 运行 相同的测试,它就不再工作了(即:csv 数据配置不是能够找到 csv 文件,因为 属性 "pdatapoolpath" 值为空。请注意,在我的 BeanShell 脚本中,我用来打印 属性 的值,但它似乎仍然正确打印。
所以我的问题是:我哪里错了?为什么 jmeter 在 运行 来自 GUI 与 CLI 时表现不同?
提前致谢
如果可以在 UDV 中初始化,您可以在 CSV 数据集配置字段中使用变量。
假设名称和路径 c:\datapool.csv
中有一个文件,通过使用 -J
- 您实际上是将 property
传递给 JMeter 测试;不可变。
-J, --jmeterproperty {argument}={value} Define additional JMeter properties
如果你这样调用
jmeter -n -t mytest.jmx -Jdatapool=c:\datapool.csv
您可以使用在命令行中传递的 属性 名称直接在 CSV 数据集配置中使用它。
${__P(datapool)}
如果您需要将此 属性 复制到用户定义变量,
vdatapool = ${__P(datapool)}
然后在 CSV 数据集配置中访问下面给出的变量。
${vdatapool}
这就是我们需要在 JMeter 中访问变量和属性的方式。
${variablename}
${__P(proprtyname)}