variables - Jmeter 将变量设置为属性的默认值

标签 variables properties jmeter

这似乎不是我独有的情况,但我无法在任何地方找到答案。

我正在尝试构建可以在 GUI 和命令行中执行的 Jmeter 脚本。命令行需要将值传递给测试用例,但同样的测试用例也需要通过 GUI 执行。我最初有单独的 GUI 和命令行脚本,但是只更改几个参数就复制相同的测试用例似乎是多余的。

例如,界面 测试用例将 Web 服务器名称设置为:

<!-- ${ENV} set in User Defined Variables -->
<stringProp name="HTTPSampler.domain">${ENV}</stringProp>

命令行 测试用例使用以下参数:
<!-- Define via command line w/ -JCMDDEV -->
<stringProp name="HTTPSampler.domain">${__P(CMDENV)}</stringProp>

两者都为他们服务的目的工作,但我想结合测试更容易维护,并有能力通过 GUI 或命令行运行它们。

我通过了一个障碍,即通过将用户定义变量 ${ENV} 设置为以下内容来组合要使用的 GUI 变量以及命令行的属性:
Name    Value
-----   --------
ENV     ${__P(ENV,dev.address.com)}

我现在可以通过 GUI 和命令行运行相同的测试用例(使用 -JENV 定义新环境)

我不确定我是否想得太多了,但我希望能够在属性默认值中添加一个变量,以避免在将其交给其他人时出现拼写错误等。我尝试了一些似乎不起作用的变体:
Name    Value
-----   --------
ENV     ${__P(ENV,${__V(DEV)})}
DEV     dev.address.com

这给了我以下请求:
POST http://DEV/servlet

代替:
POST http://dev.address.com/servlet

我也尝试使用:
${__P(ENV,${DEV})}
${__property(ENV,,${__V(DEV)})}
${__property(ENV,,${DEV})}

我正在调查 Jmeter nested variables ,但它没有提供任何可行的解决方案。

所以对于我的主要问题,我可以使用变量作为属性默认值吗?如果是这样,我将如何实现这一目标?

最佳答案

我找到了解决这个问题的方法。这不完全是我想要的方式,但它现在可以工作。

我真的很想把所有东西都放在一个人们必须编辑的地方,但我能够通过添加 ${__P(ENV,${DEV})} 来让用户定义的变量工作。到 HTTP 请求默认 Web 服务器名称 而不是将其预先定义为变量。

现在有两个配置元素可能需要通过 GUI 执行进行编辑,但我认为从长远来看它应该会更好。

关于variables - Jmeter 将变量设置为属性的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28306394/

相关文章:

java - 在循环中命名数组

javascript - 在 JavaScript 代码中的变量后面添加文本

c# - 为什么 C# 不允许泛型属性?

c# - 在 C# 中定义 get 或 set

Jmeter : Increment count of user variable for n user(thread) and n request

c - 打印变量(或指针)的内存位置

java - 为 kafka 消费者使用多个反序列化器

java - Netty + JMeter,重用连接时出错

jmeter - Jmeter 的响应时间因 Firebug 而异

PHP 空 var == 0?