我正在尝试使用JMeter发送带有二进制内容的HTTP请求。 在文档中我发现我可以发送带有二进制内容的文件。我认为这不是一个很好的解决方案,因为每个请求都有自己的二进制内容。
以下是我在Perl中编写的客户端示例,演示了我尝试完成的任务:
$date_time = sprintf "%08X", time();
$BODY_TEMPLATE = "00${date_time}0015";
$body_len = (length (sprintf($BODY_TEMPLATE,0,0))) / 2;
# Here I set $TARGET & $HOST
$MSG_HEADER = "POST \/unil?URL=${TARGET} HTTP\/1.1\r\nHost: ${HOST}\r\ncontent-type:application/binary\r\ncontent-length: ${body_len}\r\n\r\n";
$body = pack ("H*", $BODY_TEMPLATE);
$message_to_send = $MSG_HEADER . $body;
# at this point I sent the entire message over a TCP socket I previously opened.
任何想法? 谢谢, Yuval
答案 0 :(得分:4)
可以使用JMeter。我建议使用
vars.put("mybody",generatedbodystring);
之类的操作。在HTTP采样器中,您可以参考{{ 1}}变量为mybody
或${mybody}
HTTP标头管理器和BeanShell预处理器必须是HTTP请求的子级。
您可以使用Debug Sampler和View Results Tree Listener来检查请求/响应详细信息和正在发送的数据。
希望这会有所帮助。