我有一个 jmeter 登录脚本,用户可以在其中登录和注销。下面附上详细的截图。
在响应日期,生成授权令牌:
我将值作为参数传递给 55/users:
这是响应数据:
使用标头管理器将令牌作为标头传递,这样您将拥有:
更多详情请参阅:
https://stackoverflow.com/a/43283700/460802
如果您想正确学习 jmeter,这本书将会帮助您。
线程组
查看结果树检查结果
IE Ajax 版本以防万一...
<SCRIPT>
var baseUri = 'https://localhost:port';
var tokenUri = '/something';
var getUri = '/restrictedData';
var token;
var form = { "Login":"some", "Password":"credentials" };
postRequest(baseUri + tokenUri, form, gotToken)
function gotToken(progress) {
var response = progress.srcElement;
if (response.status != 200) {
document.body.innerText = "Error:\n" + response.response;
return;
}
token = JSON.parse(response.response);
console.log(JSON.stringify(token));
var restricted = getRequest(baseUri + getUri, token.tokenName, gotRestricted);
}
function gotRestricted(progress) {
var jsonStr = progress.srcElement.response;
var jsonObj = JSON.parse(jsonStr);
document.body.innerText = JSON.stringify(token,null,2) + '\n\n' + JSON.stringify(jsonObj,null,2);
}
function getRequest(url, token, callback) {
var xhr = new XMLHttpRequest();
xhr.onloadend = callback;
xhr.open('GET', url);
xhr.setRequestHeader('contentType', 'application/json')
if (token) xhr.setRequestHeader("Authorization", "Bearer " + token);
xhr.send();
return xhr;
}
function postRequest(url, body, callback) {
var xhr = new XMLHttpRequest();
xhr.onloadend = callback;
xhr.open('POST', url);
xhr.setRequestHeader('Content-Type', 'application/json')
xhr.send(JSON.stringify(body));
return xhr;
}
</SCRIPT>
Name: Authorization
Value: Bearer "add your actual token without quotes"
${token}
。
Header Name: Header Value Authorization: Bearer ${generated_token}
其中“ generated_token”是包含提取的令牌的变量。