以下是我想要使用JMeter实现的内容:我想向实现OAuth签名的API发出请求。 API使用二进制文件发出POST请求。
我正在尝试使用OAuth Request sampler插件。与HTTP请求采样器不同,此插件没有“使用请求发送文件”选项。
我有什么方法可以实现它吗?
答案 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采样器发送文件。