如何在Jmeter中参数化Bearer令牌授权

dha*_*rya 2 jmeter

我有一个jmeter登录脚本,用户可以在其中登录和注销。详细的屏幕截图如下。

请求数据如附件所示请求数据内容

在响应日期中,将生成授权令牌

在此处输入图片说明

和正则表达式如下 在此处输入图片说明

我在55个/用户中将值作为参数传递

在此处输入图片说明

当我运行脚本时,它失败了 在此处输入图片说明

这是响应数据

在此处输入图片说明

Tom*_*Tom 7

JMeter 设置更简单(登录/获取):

线程组

  • HTTP 请求,正文数据:{ "Login":"some", "Password":"credentials" }

    • HTTP 标头管理器:内容类型 application/json
    • JSON Extractor - 创建的变量名称:Token;JSON 路径表达式:tokenName(在我的例子中为根级别)
  • HTTP请求

    • HTTP 标头管理器:内容类型 -> application/json;授权 -> 持有者 ${Token}
    • 响应断言:要测试的字段 = 响应代码;模式匹配规则=等于、不;测试模式 401
  • 查看结果树以检查结果

本地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>
Run Code Online (Sandbox Code Playgroud)


UBI*_*ACK 5

使用标头管理器将令牌作为标头传递,这样您就可以:

标头经理

请参阅以获取更多详细信息:

/sf/answers/3029859031/