我正在使用Visual Studio Ultimate 2013,并有一个负载测试,使用Web测试与一些请求和Web测试插件。视觉工作室网络测试错误处理
在我的PostRequest插件中,我检查了响应的http状态码,并在返回超过400的hhtp代码时在WebTest.Context参数中标记错误。我想要做的是在PostTransaction WebTest插件中选择并更新数据库表。问题是,当框架检测到错误并且未调用PostTransaction插件时,测试会中止。
我已经添加了一个PostWebTest插件,我认为在测试迭代中止时会调用它,但是当请求失败时它从来没有打过。如果测试成功,它确实会击中它。我错过了什么?
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);
}
感谢
谢谢阿德里安。 “如果”只是一个错误的帖子,我继承了获取状态码的代码。我已经纠正了它,现在你正确地指出了它。我一定会关闭“Stop on Error”并在我的代码中处理它。 –
有关接受答案时的含义,请阅读[帮助]页面,请参阅http://stackoverflow.com/help/accepted-answer。如果您的问题没有得到解答,请编辑它以解释缺失的细节。 – AdrianHHH