GitLab CI 使带有空格的 JMeter 命令无效

GitLab CI invalidates JMeter command with spaces

这是我的 git-ci.yml 文件的片段:

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,此 确实 可以成功工作。

这让我得出结论,我没有正确转义 space。

也试过但没用

  1. '"(Actor|etc.)?$"' - single-quote

  2. \"... - "

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

    一个。这导致最后 2 double-quotes 没有出现。

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

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)?$

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

尽情享受吧。