【问题标题】:Why is VS2013 load testing only running 7 requests per second?为什么 VS2013 负载测试每秒只运行 7 个请求?
【发布时间】:2014-05-14 03:27:19
【问题描述】:

我正在运行一些负载测试,由于某种原因,VS 显示为 7 req/sec,这正常吗?

我有一个阶梯式配置文件,从 10 开始,到 100 结束,我原以为它会为每个用户运行测试。

即 10 个用户,每秒 10 个请求?

【问题讨论】:

  • 如果您从负载测试中得到一个令人失望的结果,那么您所做的第一个假设没有会导致测试工具有问题。接下来使用分析器。
  • 负载测试会产生大量的值。一起查看它们以确定正在发生的事情。我认为当你只给出一个总结值时,我们无法给出有用的建议。鉴于只执行了 243 次测试,但您说用户负载是阶梯式的,我想知道发生了什么。

标签: visual-studio visual-studio-2012 load-testing performance-testing


【解决方案1】:

首先,您正在本地机器上运行负载测试(Controller = Local Run)。您可以从开发人员机器上运行负载测试,但通常无法生成足够的流量来真正了解应用程序的响应方式。要模拟大量用户,您需要一个负载测试台。 (在本地,或使用 Windows Azure 云测试)。如果您正在测试托管在同一台计算机上的网站,这可能会成为一个问题。 运行负载测试时检查机器上的 CPU(在图中):如果超过 70%,则结果有偏差。

其次,你如何记录网络测试?当使用 web 测试记录器(在 IE 中)时,它会为每个请求添加一个思考时间。思考时间用于模拟导致人们在与网站交互之间等待的人类行为:真实用户永远不会在同一秒内打开 4 个页面。您可以在每个请求属性中检查思考时间。如果 CPU 仍然很低,较高的值可以解释为什么您每秒只有几个请求。

我有一个阶梯式配置文件,从 10 开始,到 100 结束,我会 以为它会为每个用户运行测试。

在运行设置中,您可以选择配置最大迭代次数:这将运行 N 个场景,没有任何时间限制。默认不开启。

您必须了解虚拟用户的概念:基本上,虚拟用户同时仅同时执行一个测试用例,取自已配置的 Web 测试,根据测试组合/百分比/sceanrios...所以 10 个并发虚拟用户,将最多同时执行 10 个测试。 Step 目标通常用于增加负载,直到服务器达到性能显着下降的点。 所有负载模式的完整描述都可用here

最后,如果每秒请求数仍然很低,并且不是因为负载测试配置,那么您的网站可能有问题 ;-)

【讨论】:

    【解决方案2】:

    这完全取决于您的测试配置,但如果您的测试设置为对一个用户执行 ~1 req/s,它应该在 10 个用户时交付 ~10 req/s。

    我会说这可能是因为您的服务器无法处理超过 7 个请求/秒的响应。要找出瓶颈在哪里尝试运行较小的步骤并查看断点在哪里,您可以同时对服务器进行一些监控,以找出哪些资源正在耗尽以及在哪个服务器上(CPU、内存、体重等)。就像在 cmets 分析中提到的那样,这是一种很好的方法来找出代码的哪些部分以及哪些查询是资源消耗。

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:

      吞吐量低的原因有多种。 检查您的“思考测试迭代之间的时间”设置,步骤加载模式 - 步骤持续时间是您可以修改的另一个设置。 请记住保持测试的进行,以便查看每个请求的思考时间,并确保您不会花费太长时间来端到端地执行每个测试。 我已经看到这些设置可以将总时间延长到几分钟以上,从而减少每分钟的事务。 如果独立于负载测试运行,请检查每个 webtest 的端到端运行时间,以确保您知道整个测试需要多少时间。 希望这可以帮助。 - 吉姆·奈

      【讨论】:

        猜你喜欢
        • 2019-10-23
        • 1970-01-01
        • 2018-06-01
        • 2011-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-06
        • 1970-01-01
        相关资源
        最近更新 更多