私はVisual Studio Ultimate 2013を使用しており、多数のリクエストとWebテストプラグインでWebテストを使用する負荷テストを行っています。ビジュアルスタジオWebテストのエラー処理
私のPostRequestプラグインでは、レスポンスのhttpステータスコードをチェックしています.htpコードが400を超えると、WebTest.Contextパラメータにエラーが記録されます。私がやりたいことは、PostTransaction WebTestプラグインでこれを選択し、データベーステーブルを更新することです。問題は、フレームワークがエラーを検出し、PostTransactionプラグインが呼び出されていないときにテストが中止されることです。
私はPostWebTestプラグインを追加しました。これは、テストの反復が中止されたときに呼び出されると思っていましたが、要求が失敗したときにこれを打つことは決してありません。テストが成功するとヒットします。私は何が欠けていますか?試験のStop on error
性がtrue
でなければ、エラーが検出された後
public override void PostRequest(object sender, PostRequestEventArgs e)
{
...
statusCode = e.Response.StatusCode.GetHashCode();
If (statusCode > 400)
{
e.WebTest.Context["TransactionFailCount"] = 1;
}
}
public override void PostTransaction(object sender, PostTransactionEventArgs e)
{
int transactionFailCount = Convert.ToInt32(e.WebTest.Context["TransactionFailCount"]);
if (transactionFailCount > 0)
failCount = 1;
else
passCount = 1;
...
base.PostTransaction(sender, e);
}
public override void PostWebTest(object sender, PostWebTestEventArgs e)
{
base.PostWebTest(sender, e);
}
おかげ
ありがとうございました。 "If"は単に投稿のタイプミスで、私はステータスコードを取得するコードを継承しました。私はあなたが正しく指摘されている今、それを修正しました。私は確かに "エラーで停止"をオフにし、私のコードでそれを処理します。 –
回答が受け入れられたら、[ヘルプ]ページを読んでください。http://stackoverflow.com/help/accepted-answerを参照してください。あなたの質問に答えられていない場合は、それを編集して不足している詳細を説明してください。 – AdrianHHH