小编Boz*_*Boz的帖子

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

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

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

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

<!-- ${ENV} set in User Defined Variables -->
<stringProp name="HTTPSampler.domain">${ENV}</stringProp>
Run Code Online (Sandbox Code Playgroud)

命令行测试用例用来参数如下:

<!-- Define via command line w/ -JCMDDEV -->
<stringProp name="HTTPSampler.domain">${__P(CMDENV)}</stringProp>
Run Code Online (Sandbox Code Playgroud)

两者都为它们服务的目的而工作,但我想将这些测试结合起来更容易维护,并能够通过 GUI 或命令行运行它们。

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

Name    Value
-----   --------
ENV     ${__P(ENV,dev.address.com)}
Run Code Online (Sandbox Code Playgroud)

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

我不确定我是否想得太多了,但我希望能够在属性默认值中添加一个变量,以避免在将其交给其他人时出现拼写错误等。我尝试了一些似乎不起作用的变体:

Name    Value
-----   --------
ENV     ${__P(ENV,${__V(DEV)})}
DEV     dev.address.com
Run Code Online (Sandbox Code Playgroud)

这给了我以下请求:

POST http://DEV/servlet
Run Code Online (Sandbox Code Playgroud)

代替:

POST http://dev.address.com/servlet
Run Code Online (Sandbox Code Playgroud)

我也尝试使用:

${__P(ENV,${DEV})}
${__property(ENV,,${__V(DEV)})}
${__property(ENV,,${DEV})}
Run Code Online (Sandbox Code Playgroud)

我正在研究Jmeter 嵌套变量,但它没有提供任何有效的解决方案。 …

variables properties jmeter

6
推荐指数
1
解决办法
5201
查看次数

标签 统计

jmeter ×1

properties ×1

variables ×1