【问题标题】:Running jmeter using docker使用 docker 运行 jmeter
【发布时间】:2021-08-31 16:23:34
【问题描述】:

我在使用 docker 容器运行 jmeter 时遇到问题。当我在本地机器上通过 GUI 或 CLI 运行该脚本时,该脚本运行良好。但是当我使用容器执行相同的脚本时,它会失败。
以下是问题。
所以我使用 beanshell 后处理器来捕获响应 cookie。下面是相同的代码。
props.put("MyCookie1","${COOKIE_one}"); props.put("MyCookie2","${COOKIE_two}"); props.put("MyCookie3","${COOKIE_three}");
这个参数化的值在我的本地机器(windows 10)中运行良好。但是当我在容器中运行相同的参数时,这些参数化值不会得到解决。
我在容器中使用“alpine:3.12”基础镜像。

注意:我本地机器上的 Jmeter 版本是“5.4.1”,java 版本是“java 11”。在 docker 容器中,Jmeter 版本是“5.3”,java 版本是“java 8”。我正在使用的 API 托管在 AWS Lambda 中。

【问题讨论】:

    标签: docker jmeter


    【解决方案1】:

    你忘记了最重要的细节:你的Dockerfile

    盲击:为了能够以COOKIE_one 等身份访问cookies - 您需要将extra property 添加到CookieManager.save.cookies=trueuser.properties 文件或通过-J 命令行参数将其传递给 JMeter 启动脚本,例如:

    ./jmeter -JCookieManager.save.cookies=true -n -t test.jmx -l result.jtl
    

    同样根据 JMeter 最佳实践:

    1. Since JMeter 3.1 you should be using JSR223 Test Elements and Groovy language for scripting
    2. You should always be using the latest version of JMeter

    所以也许值得考虑迁移到 Groovy,您只需要修改您的代码:

    props.put("MyCookie1","${COOKIE_one}")
    

    props.put("MyCookie1",vars.get("COOKIE_one"))
    

    其中vars 代表JMeterVariables 类实例,如果需要,请参阅Top 8 JMeter Java Classes You Should Be Using with Groovy 了解更多信息。

    并更新您的 Dockerfile 以使用 latest stable version of JMeter

    【讨论】:

    • 谢谢@Dimitri。 “-JCookieManager.save.cookies=true”这个解决方案对我有用。并感谢最佳实践文档。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    相关资源
    最近更新 更多