【发布时间】:2021-08-13 19:57:54
【问题描述】:
我有一个 JMeter 脚本,其中我使用配置元素“用户定义的变量”定义了一些变量
当我在本地使用 ${host} 时,例如在请求中它工作正常。我将此脚本上传到 Blazemeter 并启用了属性覆盖:
但是,当我在 Blazemeter 中运行测试时,新主机值根本没有被替换。我在这里做错了什么还是我误读了这个功能应该如何在 Blazemeter 中工作?
【问题讨论】:
标签: jmeter blazemeter
我有一个 JMeter 脚本,其中我使用配置元素“用户定义的变量”定义了一些变量
当我在本地使用 ${host} 时,例如在请求中它工作正常。我将此脚本上传到 Blazemeter 并启用了属性覆盖:
但是,当我在 Blazemeter 中运行测试时,新主机值根本没有被替换。我在这里做错了什么还是我误读了这个功能应该如何在 Blazemeter 中工作?
【问题讨论】:
标签: jmeter blazemeter
当您在用户定义变量组件中定义变量时,您可以使用${VariableName} 访问它们,因为它们充当JMeter variables。
当您在 Blazemeter 中定义变量时,它们充当 JMeter 属性。您可以使用${__P(PropertyName,)} 访问JMeter properties。您不能使用${VariableName} 访问。 JMeter 属性。
例如 ${__P(host,)} 在你的情况下
您可以通过读取属性并将它们分配给用户定义变量组件中的现有 JMeter 变量来继续使用现有脚本
您可以为属性${__P(host,defaultHost)} 设置默认值。该脚本将继续在本地环境和 Blazemeter 上运行。
【讨论】:
我看不到您“定义”变量的位置,即我看到的是名称,而不是值。
为了引用您通过 BlazeMeter 负载测试配置的 JMeter Properties 部分提供的值,您需要在测试计划中使用 __P() 或 __property() 函数,例如:
这样你就可以override the properties locally using -J command line argument点赞:
jmeter -Jhost=some-host -n -t test.jmx
并使用 BlazeMeter 的 Jmeter Properties 部分执行相同操作。
【讨论】: