gpt4 book ai didi

visual-studio - visual studio web 测试错误处理

转载 作者:行者123 更新时间:2023-11-28 20:52:39 24 4
gpt4 key购买 nike

我正在使用 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);
}

谢谢

最佳答案

Web 性能测试 (WPT) 将在检测到错误后继续执行,除非测试的 Stop on error 属性为 true。有可能在错误后未执行请求处理的某些方面,但我没有看到任何此类情况。

注意术语。 WPT 使用“事务”作为对多个请求进行分组的方式。请求的上下文(右键单击)菜单有一个“添加事务”条目,用于选择要包含在该事务中的测试中的一系列项目。也许您应该使用 PostRequestPostPage 插件而不是 PostTransaction

我建议您使用简单的两个或三个请求 WPT 加上一些简单的插件来做一些实验,这些插件只是宣布它们已被调用。例如

public override void PostRequest(object sender, PostRequestEventArgs e)
{
e.WebTest.AddCommentToResult("PostRequest called for url " + e.Request.Url);
}

此外,在 Visual Studio Performance Testing Quick Reference Guide 的第 32 至 44 页中对如何以及何时调用插件有很好的解释。来自 Codeplex。

声明 statusCode = e.Response.StatusCode.GetHashCode(); 很奇怪。 e.Response.StatusCode的值是一个enum,它的整数值可以通过强制转换获得。 GetHashCode 方法不是为了获取 enum 的数值。该语句会更好,如 statusCode = (int)e.Response.StatusCode; 或分配和测试(注意 if 用于 C# 中的条件,而不是 如果) 可能会更好

statusCode = e.Response.StatusCode;
if ( e.Response.StatusCode >= System.Net.HttpStatusCode.BadRequest ) { ... }

关于visual-studio - visual studio web 测试错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39956707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com