【发布时间】:2016-10-10 10:57:03
【问题描述】:
我正在使用 Visual Studio Ultimate 2013 并且有一个负载测试,它使用带有许多请求和 Web 测试插件的 Web 测试。
在我的 PostRequest 插件中,当返回超过 400 的 hhtp 代码时,我正在检查响应的 http 状态代码并在 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);
}
谢谢
【问题讨论】:
标签: visual-studio testing error-handling load