以前は正常に動作していた Web パフォーマンス テストを作成しました。開発者は、CSRF トークン検証を追加しました (Web サイトでの CSRF 攻撃を防ぐため)。この後、テストは失敗し始めました (エラー、不正な要求)。私はそれを掘り下げて、サーバーがログイン要求で XSRF-TOKEN を生成していることを発見しました。これは、その後のすべての要求で渡す必要があります。トークンを抽出するには、ログイン リクエストへのレスポンスを解析する必要があります。どうすればそれができますか?
コード化されたテストは次のようになります。
WebTestRequest request4 = new WebTestRequest("https://servertest:8080/WebConsole/Account/Login");
request4.Method = "POST";
request4.Headers.Add(new WebTestRequestHeader("Accept", "application/json, text/plain, */*"));
request4.Headers.Add(new WebTestRequestHeader("Referer", "https://servertest:8080/WebConsole/index.html#/"));
StringHttpBody request4Body = new StringHttpBody();
request4Body.ContentType = "application/json;charset=utf-8";
request4Body.InsertByteOrderMark = false;
request4Body.BodyString = "{\"UserName\":\"pkdomain\\\\administrator\",\"Password\":\"sqa@123\"}";
request4.Body = request4Body;
yield return request4;
request4 = null;
WebTestRequest request5 = new WebTestRequest("https://servertest:8080/WebConsole/scripts/home/Pages/home-view.html");
request5.ThinkTime = 4;
request5.Headers.Add(new WebTestRequestHeader("Accept", "text/html"));
request5.Headers.Add(new WebTestRequestHeader("Referer", "https://servertest:8080/WebConsole/index.html#/"));
yield return request5;
request5 = null;