使用Oauth签名在JMeter中发布文件

使用Oauth签名在JMeter中发布文件,oauth,jmeter,jmeter-plugins,Oauth,Jmeter,Jmeter Plugins,下面是我想使用JMeter实现的内容:我想向实现OAuth签名的API发出请求。API使用二进制文件发出POST请求 我正在尝试使用OAuth请求采样器插件。与HTTP请求采样器不同,该插件没有“使用请求发送文件”选项 还有什么方法可以实现它吗?您是否尝试过先使用OAuth采样器进行身份验证,然后使用常规http采样器发送文件。给可能不熟悉jmeter的人。下面是示例代码。 添加beanshell采样器并用Java编写以对请求进行签名,然后将授权头注入http请求采样器 这是beanshell取

下面是我想使用JMeter实现的内容:我想向实现OAuth签名的API发出请求。API使用二进制文件发出POST请求

我正在尝试使用OAuth请求采样器插件。与HTTP请求采样器不同,该插件没有“使用请求发送文件”选项


还有什么方法可以实现它吗?

您是否尝试过先使用OAuth采样器进行身份验证,然后使用常规http采样器发送文件。

给可能不熟悉jmeter的人。下面是示例代码。 添加beanshell采样器并用Java编写以对请求进行签名,然后将授权头注入http请求采样器

这是beanshell取样器的代码

import oauth.signpost.OAuthConsumer;
import oauth.signpost.commonshttp.CommonsHttpOAuthConsumer;
import org.apache.http.client.methods.HttpPost;




log.info("start of signing the request");

String consumerKey = "[consumerKey]";
String consumerSecret ="[consumerSecret]";
String token = "[token]";
String secret = "[secret]"; 

OAuthConsumer consumer;
consumer = new CommonsHttpOAuthConsumer(consumerKey, consumerSecret);
consumer.setTokenWithSecret(token, secret);

HttpPost request = new HttpPost("[url]");
consumer.sign(request);

System.out.println(request.getFirstHeader("Authorization").toString());
String oauth = request.getFirstHeader("Authorization").toString().substring(15);
vars.put("oauth" ,oauth);

return oauth;

我认为您可以编写内容创建脚本,但这当然不是很舒服。OAuth插件似乎有一些问题。它不适用于最新版本的JMeter。然而,我编写了一个BeanShell预处理器,将OAuth签名添加到头中,从而使其工作。一、 然后,使用默认Http请求采样器。