Jmeter OS Process Sampler中的curl参数存在问题

Jmeter OS Process Sampler中的curl参数存在问题,jmeter,jmeter-4.0,Jmeter,Jmeter 4.0,我试图使用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:

我试图使用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”参数,可能是因为有两个破折号(“--”)

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

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

有人能告诉我为什么在Jmeter下运行curl时会出现错误,但在命令行中运行curl时没有问题吗

谢谢


另外,我之所以尝试通过OS Process Sampler而不是HTTP请求发送请求,是因为URI中的某些字符导致HTTP请求步骤引发URI异常。我无法对该URI进行编码,因为它有某种散列,如果我对URL进行编码,则会导致服务器端的错误,因此我正在尝试使用OS Process Sampler进行替换。

这是您的配置方式:


选项1

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

因此,我的期望是,您应该修改您的配置,使其看起来像:


选项2

如果您计划执行HTTP请求,我的期望是最明显的选择是使用sampler

您可以简单地使用JMeter记录CURL调用,CURL可以通过以下方式配置为用户JMeter的代理:

关于-可以使用或系统属性来完成


选项3

请注意,在99%的情况下,执行任意OS命令更容易使用,语法如下:

return "your command here".execute().text
演示(我将输出打印到jmeter.log文件,而不是作为示例结果返回):


您能展示一下您是如何使用HTTP请求的吗?我认为没有理由不能用HTTP requestUBIK LOAD PACK实现这一点-thx解决了这个问题-我可以再问一个问题吗-我如何在最后一个参数(https:…)周围包含双引号,并且仍然让Jmeter展开变量(${redirecturl2})?是的,我认为是这样,Jmeter将展开。
return "your command here".execute().text