LoadRunner Transactionにリダイレクトの問題が含まれています
2122 ワード
ユーザーが制限されたリソースにログインまたはアクセスすると、リダイレクトされることがよくあります.この場合、LoadRunnerの1つのTransactionには2つ以上のリクエストが含まれます.どのように分割しますか?
以下の構成を使用します(LR 12.5はJSの方式を提供してWeb-HTTP/HTMLのシナリオを書いて、お母さんはもう私がCを見ると吐く病気を心配する必要はありません):
そしてループを書きます
HTTP response codeが302であることを発見したら、response headerを解析し、ジャンプする場所を見つけて保存し、ループすればよいのが原理です.
また、次のAPIを使用すると、前回のHTTPリクエストの返信コードを直接取得することができ、毎回マッチングして解析する必要はありません.
また、LR 12.5対JSコード:web.setOption("MaxRedirectionDepth","0")の解析に問題があり、昨日LR Teamに聞いたばかりで、JSのサポート上の問題で、JSは外の皮だけで、中の実装は実際には呼び出しのCのもので、結局このAPIを実現する時にBUGが現れた.
API実装ではサポートのみ
web.setOption(「MaxRedirectionDepth」,「0」,「LAST」)という方式.
以下の構成を使用します(LR 12.5はJSの方式を提供してWeb-HTTP/HTMLのシナリオを書いて、お母さんはもう私がCを見ると吐く病気を心配する必要はありません):
web.setOption("MaxRedirectionDepth", "0");
そしてループを書きます
lr.saveString('http//redirect.com','location');
var httpResult ="";
var i = 0;
web.setOption("MaxRedirectionDepth", "0", "LAST");
do {
lr.message("Start---->");
web.regSaveParamEx({
paramName : 'httpCode',
lb : 'HTTP/1.1 ',
rb : ' ',
notFound : 'warning',
scope : 'Headers'
});
web.regSaveParamEx({
paramName : 'location',
lb : 'Location: ',
rb : '\r
',
notFound : 'warning',
scope : 'Headers'
});
var transactionName ='tt'+i;
lr.message(transactionName);
lr.startTransaction(transactionName);
lr.message("Visiting URL: " + reqURL);
web.url({
name : 'idm' + i,
url : '{location}',
recContentType : 'text/html'
});
lr.message("Redirect URL is: " + lr.evalString("{location}"));
httpResult = lr.evalString("{httpCode}");
lr.endTransaction(transactionName, lr.AUTO)
i++;
lr.message("END<----");
} while (httpResult == "302");
HTTP response codeが302であることを発見したら、response headerを解析し、ジャンプする場所を見つけて保存し、ループすればよいのが原理です.
また、次のAPIを使用すると、前回のHTTPリクエストの返信コードを直接取得することができ、毎回マッチングして解析する必要はありません.
web.getIntProperty(web.HTTP_INFO_RETURN_CODE);
また、LR 12.5対JSコード:web.setOption("MaxRedirectionDepth","0")の解析に問題があり、昨日LR Teamに聞いたばかりで、JSのサポート上の問題で、JSは外の皮だけで、中の実装は実際には呼び出しのCのもので、結局このAPIを実現する時にBUGが現れた.
API実装ではサポートのみ
web.setOption(「MaxRedirectionDepth」,「0」,「LAST」)という方式.