gpt4 book ai didi

c# - 如何接受 HTTP 400 和 HTTP 500 作为 Visual Studio 负载测试中的有效响应代码?

转载 作者:行者123 更新时间:2023-11-30 15:28:36 26 4
gpt4 key购买 nike

我正在使用 Visual Studio 2013 网络测试框架对 REST 服务进行压力测试。我想衡量应用程序在 POST 请求中出现病态/格式错误的 JSON 时的执行情况。服务器使用 HTTP 400 或 HTTP 500 进行响应,我想将两者都视为成功响应。

我尝试使用 pass-all 事件处理程序验证响应:

public class MalformedBodyTest : WebTest 
{
private void Validate(object sender, ValidationEventArgs e)
{
e.IsValid = true;
}

public MalformedBodyTest()
{
this.ValidateResponse += Validate;
}

...

}

这似乎没有任何区别,响应仍然显示为失败。使用 WebTestRequestExpectedHttpStatusCode 属性工作正常,但只能让我测试单个 HTTP 状态代码。

我希望在达到超时时将请求视为失败。有什么办法可以实现这个功能吗?

最佳答案

好吧,这其实很简单。我错过了 WebTestRequest 中还有一个属性 IgnoreHttpStatusCode。通过在请求生成器中将其设置为 true

public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
for (var i = 0; i < Iterations; ++i)
{
var request = new WebTestRequest(_url);
request.IgnoreHttpStatusCode = true;

...

yield return request;
}
}

然后我能够在验证处理程序中精确地设置接受和拒绝哪些 HTTP 状态代码:

private void Validate(object sender, ValidationEventArgs e)
{
e.IsValid = (e.Response.StatusCode == HttpStatusCode.BadRequest ||
e.Response.StatusCode == HttpStatusCode.InternalServerError);
}

关于c# - 如何接受 HTTP 400 和 HTTP 500 作为 Visual Studio 负载测试中的有效响应代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25401738/

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