OS Process Sampler

时间:2018-10-20 17:00:39

标签: jmeter jmeter-4.0

我正在尝试使用OS Process Sampler在Jmeter测试计划中执行HTTP请求,但是我在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”参数,可能是因为两个破折号(“-”)。 / p>

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

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

有人可以告诉我为什么我尝试在Jmeter下运行curl时出现此错误,但是从命令行运行curl没关系吗?

谢谢!

P.S。仅供参考,我尝试通过OS Process Sampler而不是HTTP请求发送请求的原因是URI包含导致HTTP请求步骤引发URI异常的某些字符。我无法对该URI进行编码,因为它具有某种哈希值,并且如果我对URL进行编码,这将导致URI在服务器端必须是错误的,所以我试图查看是否可以使用OS Process Sampler进行替换。

2 个答案:

答案 0 :(得分:1)

这是配置OS Process Sampler的方式:

OS Sampler

答案 1 :(得分:1)

选项1

行为良好的JMeter测试必须做真实用户正在做的事情,特别是在您的情况下,我期望您正在从CMDPowershell

启动curl

所以我的期望是您应该将配置修改为:

enter image description here


选项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来执行任意OS命令更容易,语法类似于:

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

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

enter image description here