我为远程服务器上托管的 Web 服务设置了两个测试来测量负载测试:一个使用 Web 工具(带有 StresStimulus 的 Fiddler)创建对服务器的多个请求测试,结果实际上令人惊讶,因为没有失败的尝试。 第二个是在 visual studio 中,我在那里设置了 20 个线程,以 0.5 秒的间隔向服务器发出 200000 个简单的 GET httpweb 请求。我记录了失败的请求,大约有 3001 个错误的网关错误 (502)。
谁能解释一下,或者这两个测试完全不同吗?
url = "http://192.xxxxxxx"
webrequest = TryCast(System.Net.WebRequest.Create(url), HttpWebRequest)
webrequest.Method = "GET"
webrequest.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 GTB7.1 ( .NET CLR 3.5.30729; .NET4.0E)"
webrequest.Timeout = 60000
webrequest.ContentType = "application/x-www-form-urlencoded"
responseStream = webrequest.GetResponse().GetResponseStream()
Dim reader As New StreamReader(responseStream)
responseData = reader.ReadToEnd()
最佳答案
您应该能够比较两者。以下是步骤:
在 StresStimulus 中选择 200 个用户和 999 次迭代来创建与 VS 负载相同的大约 200000 个请求。将迭代之间的思考时间设置为 1 秒并运行测试。仔细检查没有错误。
将 StresStimulus 测试导入 Visual Studio。在 Fiddler 将测试导出到 Visual Studio Web 测试文件中,将其添加到您的 VS 测试项目,并像在 StresStimulus 中一样使用负载参数运行测试。查看您是否收到任何错误。
将此测试转换为编码测试并再次运行。如果没有错误,请将代码与您现有的代码进行比较,并检查它们有何不同。
最后,您可以通过 setting proxy 127.0.0.1:8888 通过 Fiddler 路由 VS 负载流量,然后将请求与 StresStimulus 重播的请求进行比较。
这应该为您提供足够的信息来弄清楚为什么 serve 在一种情况下为请求提供 502 而在另一种情况下却没有。
关于visual-studio-2010 - 错误的网关错误 - fiddler 负载测试/visual studio 2010,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5913660/