我有几个JMeter测试计划应该在不同的环境中执行,比如Dev,Test,UAT,Live.在每个测试计划中,我想有一个简单的方法来指定使用哪个环境.每个环境都有很多配置,例如主机名,端口,ssl-cert,用户名,密码,帐号和其他测试数据.
我想要实现的一件事是在使用JMeter GUI或从构建脚本运行场景时轻松切换环境.
我的一个想法是使用"包含控制器"来包含另一个jmx文件,该文件包含用户定义变量列表和其他配置元素.但是,JMeter不支持包含文件名中的变量,因此我无法通过环境名称对场景进行参数化.Include Controller支持JMeter参数"includecontroller.prefix",但它不是很灵活,例如我无法从JMeter GUI更改它,我应该更改JMeter配置文件并重新启动它.
我试过使用Switch Controller,但没有运气,它不会切换配置元素,只有采样器.
从测试场景中外部化特定于环境的配置并在多个场景之间共享的最佳实践是什么?
Dmi*_*i T 13
我建议用JMeter属性替换所有特定于环境的变量或值.请参阅以下功能以供参考:
例如,您可以定义hostname在jmeter.properties文件中调用的属性或JMeter命令行参数,如下所示
jmeter -Jhostname=169.140.130.120 -n -t yourscript.jmx -l yourscriptresults.jtl
Run Code Online (Sandbox Code Playgroud)
并在脚本内部引用:
${__P(hostname,)}
要么${__property(hostname,,)}有关更多详细信息,请参阅Apache JMeter Properties Customization Guide.
小智 6
与Manish Sapariya提到的一样,参数化控制器对于为多个环境准备配置非常有用.我在之前工作的地方使用它,现在在新的地方开始配置.这在开始时有点工作,但后来很容易维护.上面提供的链接中有一些教程,但不会考虑到你想一次只运行一个env.我将在下面描述一下,也许它会有用.所以,慢慢地一步一步:

这里最重要的是我在这个时候用变量名前缀分隔它们,所以在一个UDV元素中我有变量,如dev.serverIP,dev.serverPort,preprod.serverIP等等(第二个屏幕截图)填充了值与该环境相关.此外,在其中一个UDV中,我有环境类型变量(前面提到过),默认值为'dev'(您可以在此处手动更改,或者在通过命令行/ CI或其他任何方式启动时提供不同的值)

现在在Env Profiler中我有If控制器(第一个截图上没有4).对于dev env我有(在第一个屏幕上没有5):
"$ {environmentType}"=="dev"
对于每个env(如果是控制器),您必须提供如上所述的正确条件.


这就是它.现在保持:
我知道你开始的时候要做的事情很多,但是之后的情况并没有那么糟糕,只是添加一些东西 - 可能是最简单的方法.
我自己没有使用过,但是这个jmeter-pluing 可能对你有帮助。这是文档的片段
Parameterized Controller since 0.1.0
When your JMeter test plan tree becomes like a sequoia or a banyan,
you start feeling yourself like a monkey in a jungle, jumping from
branch to branch, trying to support this important test consistent.
You really need some way to have parameterized subroutines, to reuse
parts of test plan like regular programming language functions and
procedures.
JMeter have out-of-box Module controller, but it has no parameters
to pass to, so if you need to call repeating sequence of the same
action with different parameters, your reflection in a mirror starts
morphing into monkey. Parameterized Controller helps you stay human
and sane.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15314 次 |
| 最近记录: |