我想在RestAPI上运行loadtest,我可以通过java
访问它 name = "username";
String password = "password";
String authString = name + ":" + password;
byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes()); //
String authStringEnc = new String(authEncBytes);
URL url = new URL(urlStr);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("Authorization", "Basic " + authStringEnc);
但是在jmeter中我无法添加这个,jmeter的新功能请帮忙。
答案 0 :(得分:1)
自JMeter 3.2以来,Basic Auth使用HttpClient4实现提供Out Of The Box并默认配置,请参阅:
HTTP HC4实现现在提供默认启用的抢先式基本身份验证
只需添加HTTP_Authorization_Manager并填写所需信息。
示例:
此配置将匹配以" http://localhost:8081"
开头的所有请求另见这个问题:
虽然我的答案被低估了,但我不知道是哪个原因,这是设置Basic Auth的最佳方法。自3.2以来,根本不再需要脚本。
答案 1 :(得分:1)
您可以使用相同的代码生成编码凭据:
将以下代码放入"脚本"区域
name = "username";
String password = "password";
String authString = name + ":" + password;
byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes()); //
String authStringEnc = new String(authEncBytes);
sampler.getHeaderManager().add(new org.apache.jmeter.protocol.http.control.Header("Authorization", "Basic " + authStringEnc));
检查Cache compiled script if available
框
JMeter现在应该添加必要的"授权"标题为您的请求。