【问题标题】:Problem with a curl parameter in OS Process SamplerOS Process Sampler 中的 curl 参数问题
【发布时间】:2019-03-25 06:31:08
【问题描述】:

我正在尝试使用 OS Process Sampler 在 Jmeter 测试计划中执行 HTTP(s) 请求,但我在其中一个 curl 参数上遇到错误。我在 Windows 机器上运行 Jmeter。

这是原始的 curl 命令,如果我从命令行运行它就可以:

curl -k -L -b .\cookies -c .\cookies -E h:\curl\EXP\curl\bin\publicCert.pem.crt --key H:\curl\EXP\curl\bin\privateKey.pem.key https://myhost.foo.com//xxx.cgi?encreply=xxxxxxxxx

我在 Jmeter 中看到的错误是:

curl: option --key H:\curl\EXP\curl\bin\privateKey.pem.key: is unknown
curl: try 'curl --help' or 'curl --manual' for more information

认为(但不确定)问题在于 Jmeter 似乎不喜欢“--key”参数,可能是因为 2 个破折号(“--”)。

我猜测的原因是早些时候,我遇到了证书参数“--cert”的问题,我能够通过更改为“-E”参数来消除早期的问题,有一个破折号。

不幸的是,密钥文件似乎没有单破折号参数。

有人能告诉我为什么当我尝试在 Jmeter 下运行 curl 时出现该错误,但是当我从命令行运行 curl 时就可以了吗?

谢谢!

附:仅供参考,我尝试通过 OS Process Sampler 而不是 HTTP 请求发送请求的原因是 URI 有一些字符导致 HTTP 请求步骤引发 URI 异常。我无法对该 URI 进行编码,因为它具有某种哈希值,并且如果我对 URL 进行编码,这会导致服务器端出现问题,因此我正在尝试查看是否可以使用 OS Process Sampler 进行替换。

【问题讨论】:

  • 您能展示一下您是如何使用 HTTP 请求的吗?我认为没有理由不能通过 HTTP 请求做到这一点

标签: jmeter jmeter-4.0


【解决方案1】:

选项 1

表现良好的 JMeter 测试必须做真实用户正在做的事情,特别是你的情况,我的期望是你从 CMDPowershell 启动 curl

所以我的期望是你应该修改你的配置看起来像:


选项 2

如果您打算执行 HTTP 请求,我的期望是最明显的选择是使用 HTTP Request 采样器。

您可以使用 JMeter 的 HTTP(S) Test Script Recorder 简单地记录您的 CURL 调用,可以通过 -x command-line option 将 curl 配置为用户 JMeter 的代理,例如:

curl -x http://localhost:8888  -k -L -b .\cookies -c .\cookies ......

关于passing client-side certificate using JMeter - 可以使用SSL Manager 或系统属性来完成。


选项 3

请注意,在 99% 的情况下,使用JSR223 Sampler 来执行任意操作系统命令会更容易,语法类似于:

return "your command here".execute().text

演示(我将输出打印到 jmeter.log 文件,而不是将其作为示例结果返回):

【讨论】:

    【解决方案2】:

    这是您将如何配置OS Process Sampler

    【讨论】:

    • UBIK LOAD PACK - 解决了这个问题的感谢 - 我可以再问一个 - 我如何在最后一个参数周围包含双引号(https:...)并且仍然让 Jmeter 扩展变量(${redirecturl2})?
    • 是的,我想是的,JMeter 会扩展。
    猜你喜欢
    • 2016-11-05
    • 2013-09-03
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    相关资源
    最近更新 更多