Microsoft Visual Studio Web性能测试 - 第一次测试的测试结果总是花费最长的?

时间:2014-08-19 06:53:57

标签: vb.net visual-studio-2012 performance-testing web-testing webtest

我每天都在运行网络性能测试(创建发票),我注意到一种趋势,即每次测试都进行了多次迭代,第一个结果将始终是异常值(需要的是异常值)请求时间和总时间方面的最长时间。 有没有办法防止这种情况发生?

如果要考虑浏览器缓存。哪个是最好的解决方案?

  • 运行测试一次,但一次后,记录结果。然后清洁 缓存,再次重新运行测试并记录结果。运行多个 根据要求的时间。
  • 忽略第一个测试结果,只需要剩下的。

2 个答案:

答案 0 :(得分:1)

听起来这可能是服务器端缓存。我已经在加载测试的系统上看到了很多这种行为,并认为它是一个有效但不太可能的结果。

隔夜维护作业或应用程序更新可能会清空后端数据库缓存。第二天早上登录的第一个用户将遇到这种情况,系统需要通过数据库表进行全面搜索,以检索所请求的信息,而不是从缓存中检索。

在我看来,这是一个有效的衡量标准。请注意你的呈现方式。我喜欢将它与平均值分开。我会给出冷启动时间和平均时间的预热。

答案 1 :(得分:0)

Web性能测试应考虑浏览器缓存。第一次使用普通浏览器加载页面时,还必须从服务器请求所有相关请求(即图像,CSS,JavaScript等)。当重新加载页面时,浏览器会发现许多依赖请求都可以在缓存中找到。

在Visual Studio Web性能测试中,每个虚拟用户(VU)的行为就像它有自己的浏览器一样。当VU启动时,它有一个空的缓存,因此加载了所有页面和相关请求。在同一个VU的第二次和以后的执行中,不会重新加载缓存中的任何内容。场景属性"新用户的百分比"控制何时创建新的VU,有效地,当缓存被清空时。

可以禁用缓存。首先在请求上设置Cache control属性。此外,还可以通过将其Cache属性设置为false来禁用相关请求的缓存。请参阅Visual Studio Performance Testing Quick Reference Guide的第186页。关于文档中的缓存控制还有许多其他有用的部分。

处理缓存的问题中的任何建议都不适用于Visual Studio负载测试。一种方法是设置"百分比"新用户"在负载测试场景中达到100%。这样每个模拟用户都以空缓存开始。