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());
}
}
我刚刚正在探索 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());
}
}