【问题标题】:Visual Studio Web Performance Test - Can I make a non-coded web test execute requests in parallelVisual Studio Web 性能测试 - 我可以让非编码 Web 测试并行执行请求吗
【发布时间】:2015-12-27 23:18:18
【问题描述】:

使用 Visual Studio 2013 Ultimate 进行负载测试。

我面临的主要问题是网络性能测试按顺序执行所有包含网络请求。这不是浏览器的工作方式(而是使用多个并行线程)。

简化示例

  • 调用页面(1 秒)
  • AJAX 调用 1(1 秒)
  • AJAX 调用 2(1 秒)
  • AJAX 调用 3(1 秒)

浏览器会同时执行所有的 AJAX 调用,并在 2 秒内完成页面。

Web 性能测试按顺序执行它们(一次一个)并报告测试需要 4 秒才能完成。

我知道我可以使用 Coded Web 测试来并行执行这些操作,但如果可能的话,我想坚持使用该工具。

这可能吗?

【问题讨论】:

    标签: performance visual-studio load-testing


    【解决方案1】:

    将请求添加为另一个请求的依赖请求。

    创建一个不加载任何有用内容的顶级请求。我一直在使用“http://localhost/”来做类似的事情。将此请求的“解析相关请求”和“跟随重定向”属性设置为 false。那是为了避免测试套件添加更多请求。将要并行执行的请求作为显式依赖请求添加到此顶级请求。

    浏览器的工作原理是提取一个依赖请求列表,然后同时发送多个请求,以便并行处理它们。当收到对这些请求的响应时,将发送列表中的其他请求。这一直持续到列表为空。并行发出的请求数量取决于浏览器(可能由用户或计算机的配置数据修改)。 Visual Studio 在模拟浏览器时使用的并行性可以在 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\Templates\LoadTest\Browsers 目录中的文件中的 MaxConnections 值中看到(根据您的 Visual Studio 版本和安装目录的需要进行修改)。另请参阅"Visual Studio Performance Testing Quick Reference Guide" (Version 3.6) 第 45 页的顶部,这意味着没有显式 MaxConnections 值的“.browser”文件仅支持两个连接。

    可能并行完成的请求之一作为顶级请求会更好。

    【讨论】:

    • 所以你是在暗示依赖请求是并行执行的?
    • @MartinHatch 答案已更新。您将如何在编码的网络测试中并行执行它们?
    • 谢谢,编码我可能会使用 C# 并行或类似的东西。并没有真正深入思考它,希望有一种 UI 方法。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多