gpt4 book ai didi

jmeter - 使用 JMETER 向带有二进制主体的 RESTful API 发出 POST 请求

转载 作者:行者123 更新时间:2023-12-03 09:11:53 52 4
gpt4 key购买 nike

我使用 RESTful API 测试服务,这些方法接收带有二进制数据的 POST 请求。我使用 JMeter 进行测试。但我用这个工具提出这样的请求时遇到了麻烦。

我使用 BeanShell Sampler 生成二进制数据并将其放入变量

import java.util.Base64;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.codec.binary.Base64;

String base64Str="Some string";
//Encode the string
byte[] bytes = Base64.encodeBase64(base64Str.getBytes());
vars.putObject("bytes", bytes);

然后是 HTTP 请求,在主体数据中我放置了 ${bytes} ,以便让它从变量中读取原始字节并在 POST 请求中发送。但随后我得到一个异常“java.lang.ClassCastException:[B无法转换为java.lang.String”,这意味着在Body Data中给定的变量bytes被转换为字符串。相当相似的问题是 Sending HTTP requests with binary body using JMeter但评论中对字符串转换也得出了相同的结论。也许可以通过发送带有请求的文件来完成?

有一个插件 HTTP Raw Request,但我找不到将请求发送到具体 API 方法的方法,而该插件只有端口字段(也许在端口后面写一个方法路径?),而且我找不到向其传递字节的方法。

最佳答案

我设法使用 HTTP 请求发出带有二进制正文数据的 POST 请求。为了做到这一点,我添加了一个条目“通过请求发送文件”并仅填充文件路径字段(没有参数名称和 MIME 类型)。 JMeter 读取给定的文件,并在本例中发送其字节(如 POST 请求正文中所示)。

答案在这里找到 https://qnalist.com/questions/698175/does-jmeter-support-sending-arbitrary-binary-data-in-the-body-of-a-post并导致手册http://jmeter.apache.org/usermanual/component_reference.html#HTTP_Request

关于jmeter - 使用 JMETER 向带有二进制主体的 RESTful API 发出 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41862223/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com