Blazemeter 不会取代 JMeter 属性

Blazemeter is not replacing JMeter property

我有一个 JMeter 脚本,我在其中使用配置元素“用户定义的变量”定义了一些变量

并且在本地使用 ${host} 例如在请求中它工作正常。我将此脚本上传到 Blazemeter 并启用了属性覆盖:

然而,当我 运行 在 Blazemeter 中进行测试时,新的主机值根本没有被替换。我是不是做错了什么,还是我误解了这个功能在 Blazemeter 中的工作原理?

当您在用户定义的变量组件中定义变量时,您可以使用 ${VariableName} 访问它们,因为它们充当 JMeter variables

当您在 Blazemeter 中定义变量时,它们充当 JMeter 属性。您可以使用 ${__P(PropertyName,)} 访问 JMeter properties。您不能使用 ${VariableName} 访问。 JMeter 属性。

例如 ${__P(host,)} 你的情况

您可以通过读取属性并将它们分配给用户定义变量组件中的现有 JMeter 变量来继续使用现有脚本

您可以将默认值设置为 属性 ${__P(host,defaultHost)}。该脚本将在本地环境和 Blazemeter 上继续 运行。

参考资料: JMeter Properties User Defined Variables

我没看到你在哪里“定义”变量,也就是说我看到的是名称,而不是值。

为了引用您在测试计划中通过 JMeter Properties section of the BlazeMeter load test configuration you need to use __P() or __property() 函数提供的值,例如:

这样你就可以override the properties locally using -J command line argument喜欢:

jmeter -Jhost=some-host -n -t test.jmx

并使用 BlazeMeter 的 Jmeter Properties 部分执行相同的操作。

更多信息:Apache JMeter Properties Customization Guide