【问题标题】:GitLab CI invalidates JMeter command with spacesGitLab CI 使带有空格的 JMeter 命令无效
【发布时间】:2021-12-16 22:53:24
【问题描述】:

这是我的git-ci.yml 文件的 sn-p:

image:
  name: justb4/jmeter:latest
  entrypoint: [""]
api test:
  stage: test
  script:
    - mkdir xyzresults
    - /entrypoint.sh -n -t ./XYZ_login_dashboard_machine_actor_card_XYZ.jmx -l ./dcs.log -f -Jthreads=40 -Jrampup=40 -JtestCases=100 -JBASE_URL_2=qa2s.nayax.com -e -o ./dcsresults -Jjmeter.reportgenerator.exporter.html.series_filter="^(Actor|Actor - Update Work Hours)(-success|-failure)?$"

这失败并出现错误:

Error: Malformed option -

请注意,如果我只是删除Actor - Update Work Hours,这确实会成功。

这使我得出结论,我没有正确地逃离空间。

也试过了,没用

  1. '"(Actor|etc.)?$"' - 单引号

  2. \"... - “前斜线”

  3. '/entrypoint.sh -n -t ./XYZ_login_dashboard_machine_actor_card_XYZ.jmx ... (-success|-failure)?$"'

    一个。这导致最后 2 个双引号没有出现。

图片显示字符串应该被正确传递了。

【问题讨论】:

  • 您可以尝试将整个命令用单引号括起来,例如 '/entrypoint.sh ....' - 我们有时也会将其用于 curl 命令
  • @SimonSchrottner - 这不起作用,但感谢您的尝试。
  • 你试过只用单引号括起来Actor - Update Work Hours吗?比如:/entrypoint.sh -n -t ./XYZ_login_dashboard_machine_actor_card_XYZ.jmx -l ./dcs.log -f -Jthreads=40 -Jrampup=40 -JtestCases=100 -JBASE_URL_2=qa2s.nayax.com -e -o ./dcsresults -Jjmeter.reportgenerator.exporter.html.series_filter="^(Actor|'Actor - Update Work Hours')(-success|-failure)?$"
  • @DanielCampos - :-) 是的,我什至试过了!我又想到了一个想法:使用 BeanShell 东西在 JMeter 本身中设置属性。无论如何,值得一试。

标签: jmeter gitlab escaping gitlab-ci spaces


【解决方案1】:

Eureka - 只需添加一个新的 properties 文件并将 -q 参数添加到 jmeter 命令。

完全按预期工作。

所以是这样的:

jmeter blah blah -q report_filter.properties

report_filter.properties

jmeter.reportgenerator.exporter.html.series_filter=^(Actor|Actor - Update Work Hours|Actor Get|Actor Seach etc. etc. etc.)(-success|-failure)?$

请注意,您应该用双引号将字符串括起来。

享受吧。

【讨论】:

    猜你喜欢
    • 2021-12-18
    • 2019-05-13
    • 2022-08-14
    • 2018-12-14
    • 2020-06-28
    • 2022-08-06
    • 2018-07-05
    • 1970-01-01
    • 2013-11-09
    相关资源
    最近更新 更多