【问题标题】:How to replace jmeter keys when running Taurus运行 Taurus 时如何替换 jmeter 键
【发布时间】:2018-09-04 14:39:43
【问题描述】:

问题:

我目前正在我的 jmeter .jmx 测试文件中对密码进行硬编码。 我希望能够在 config.yaml 或命令行中使用“-o modules.jmeter.properties”开关(以在 CI 管道中替换它)进行设置

但是,我无法让其中任何一个实际替换 .jmx 文件中的值。

我查看了Taurus doco 并最终尝试了以下操作。

更新 config.yaml 文件:

execution:
- executor: jmeter
  scenario:
   script: ../scripts/apigee_loadtesting.jmx
   data-sources:
    - ../datafiles/
 concurrency: 2
 ramp-up: 30s
 hold-for: 1m
 steps: 2

modules:
  jmeter:
    properties:
      es.password: P@ssw0rd!

也从命令行尝试过:

bzt ../config.yaml -o modules.jmeter.path=/usr/local/apache-jmeter-4.0.2/bin/jmeter \
-o modules.jmeter.properties.espassword=P@ssw0rd! config.yaml

但他们似乎都没有做任何有意义的事情,任何建议将不胜感激

【问题讨论】:

  • 你在 yaml 属性中有一个额外的.,应该是espassword
  • 一定是一个示例错字。这仍然没有任何区别。
  • 我认为这个开关应该找到: espassword 并用“P@ssw0rd!”替换它: 对吗?

标签: jmeter blazemeter taurus


【解决方案1】:
  1. Taurus 本身不会更改 .jmx 脚本中的任何内容,只需确保在 .jmx 脚本中使用 __P() function 将属性引用为 ${__P(es.password,)} 并且该值将替换为 .jmx 文件中的值或命令行覆盖。
  2. 我会避免在属性名称中使用点,因为这可能会导致从命令行覆盖属性值时出现问题。所以如果可能的话,请在任何地方坚持espassword
  3. 更改您的命令行,使config.yaml 成为最后一个参数,例如:

    bzt -o modules.jmeter.path=/usr/local/apache-jmeter-4.0.2/bin/jmeter -o modules.jmeter.properties.espassword=P@ssw0rd! config.yaml
    

有关使用 Taurus 运行 JMeter 测试的更多信息,请参阅 Navigating your First Steps Using Taurus 文章

【讨论】:

  • 这似乎成功了。我可以从命令行传递它。我对线程、步骤等做了类似的事情。以前无法让它为此工作。为帮助干杯
  • 我正在运行使用 taurus 配置的性能测试 jenkins 作业。我有现有的 jmeter jmx 文件,我想在这个工作中运行。这个 jmx 文件应该从 jenkins 作业输入中读取输入。所以,我配置了@Dmitri T 所说的 jmx 文件,使用 $_P() 来读取输入,但在测试运行期间这些值仍然为空。任何帮助将不胜感激。
猜你喜欢
  • 2021-12-19
  • 1970-01-01
  • 2018-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多