Telerik Fiddler API 测试脚本 - 设置不记名令牌

Telerik Fiddler API Test Script - set Bearer Token

我刚刚正在探索 Fiddler 中的 API 测试功能。真是福音!我有这个问题:

当运行一系列调用时,第一个调用是LOGIN。此调用的结果包含一个访问令牌。在所有后续调用中,HEADER 需要具有以下形式的此令牌:

Authorization: Bearer eyJ0eXAiOiJKV1QiLC......

如何编写脚本以便为以下测试分配新令牌?

弄明白了:

static function BeforeTestList(arrSess: Session[]): boolean
{
    // In this method, you can do any setup you need for the test,
    // e.g. adding an Authorization: token OAUTH value that you
    // obtained programmatically...
    var sOAUTHToken = obtainToken();
    if (String.IsNullOrEmpty(sOAUTHToken)) return false;

    for (var i: int=0; i<arrSess.Length; i++)
    {
        arrSess[i].oRequest["Authorization"] =  sOAUTHToken;
    }

    MessageBox.Show("Token Set. Running " + arrSess.Length.ToString() + " tests.", "BeforeTestList");

    return true; // Test should proceed; return false to cancel
}

static function obtainToken()
{
    try
    {
        var Content: byte[] = System.Text.Encoding.UTF8.GetBytes("{\"UserName\":\"username\",\"Password\":\"password\"}");
        var oRQH: HTTPRequestHeaders = new HTTPRequestHeaders("/auth/login", ['Host: localhost:58960','Content-Length: ' + Content.length.ToString(), 'Content-Type: application/json']);
        oRQH.HTTPMethod = "POST";
        var oSD = new System.Collections.Specialized.StringDictionary();
        var newSession = FiddlerApplication.oProxy.SendRequestAndWait(oRQH, Content, oSD, null);

        if(newSession.responseCode == 200)
        {
            var bodyStr = newSession.GetResponseBodyAsString();
            var bodyJson=Fiddler.WebFormats.JSON.JsonDecode(bodyStr);
            var token = bodyJson.JSONObject["accessToken"];
            //MessageBox.Show("Authorization: Bearer " + token);
            return "Bearer " + token;
        }
    }
    catch(e)
    {
        MessageBox.Show("send failed" + e.ToString());
    }
}