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

时间:2014-07-30 22:58:10

标签: oauth jmeter jmeter-plugins

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

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

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

2 个答案:

答案 0 :(得分:2)

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

以下是beanshell sampler的代码

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;

答案 1 :(得分:0)

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