首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用RESTful向具有二进制体的JMETER API发出POST请求

使用RESTful向具有二进制体的JMETER API发出POST请求
EN

Stack Overflow用户
提问于 2017-01-26 05:46:26
回答 1查看 1.9K关注 0票数 1

我用RESTful应用程序接口测试了一个服务,这些方法接收包含二进制数据的POST请求。我使用JMeter进行测试。但是我在使用这个工具发出这样的请求时遇到了麻烦。

我使用BeanShell采样器生成二进制数据并将其放入变量中

代码语言:javascript
运行
复制
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 cannot be cast to java.lang.String",这意味着在正文数据中,给定的变量bytes被转换为string。非常类似的问题是Sending HTTP requests with binary body using JMeter,但在评论中也有关于字符串类型转换的相同结论。也许可以通过请求发送一个文件来完成?

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-27 18:56:35

我设法使用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

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41862223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档