Visual Studio 2012 负载测试忽略步数

Posted

技术标签:

【中文标题】Visual Studio 2012 负载测试忽略步数【英文标题】:Visual Studio 2012 Load Test is ignoring Step Count 【发布时间】:2014-12-16 16:58:27 【问题描述】:

我正在 Visual Studio 2012 中运行基于 Web 测试的负载测试。 Web 测试运行良好,但是当我执行负载测试时,它似乎忽略了步进负载模式。我目前的设置如下:

初始用户数:3 最大用户数:200 模式:步骤 步长(秒):10 步进斜坡时间(秒):0 步用户数:1

我正在使用“基于测试总数”的测试组合类型

负载测试总共运行了 2 分钟,这意味着它应该运行总共 14 个测试,而不是从一次运行到下一次运行变化很大。

第一个加载时间总共有 45 个测试,第二个运行 42 个,第三个运行 34 个。

有人知道这里发生了什么吗?如何正确执行步数?

【问题讨论】:

【参考方案1】:

对于负载测试来说,两分钟的持续时间非常短。在两分钟内有 12 批 10 秒,因此完成时的最大用户数将为 initial+步数*步用户数 = 3+12*1 = 37,即远小于 200指定的最大值。

测试通常以随机思考时间运行,测试本身也会做不同的事情,因此可能需要不同的时间。在任何给定时间选择“下一个”运行哪个测试是随机的,但会受到测试组合类型的影响。因此,可以执行的测试数量是非常可变的。

前 10 秒执行了 3 个测试。 在第二个 10 秒内,正在执行 4 个测试。 在第 3 个 10 秒内,正在执行 5 个测试。 等等。 如果测试持续时间已知,则可以估计将执行多少测试。 鉴于在结束时有 37 个活跃用户,并且考虑到各种运行的测试数量分别为 34、42 和 45,因此单个测试持续时间似乎平均不到 2 分钟。

要检查是否遵循了步骤模式,请查看图表。您会期望“关键指标”中的“用户”(红线)随着测试运行而增加。另一种方法是查看“详细信息”结果页面,您应该可以看到对应于每个虚拟用户的水平线。

【讨论】:

我同意阿德里安的观点。关于在某些模型中使用阶梯模式的另一件事是;用户负载代表可用于测试的虚拟用户,不一定代表他们正在积极执行测试。您可以看到这一点的另一种方法是将“通过的测试”添加到您的关键指标(用于您的初始化测试)。social.msdn.microsoft.com/Forums/vstudio/en-US/…

以上是关于Visual Studio 2012 负载测试忽略步数的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 负载测试不断发送请求

如何在 Visual Studio 负载测试中关闭请求缓存

使用 powershell 安排 Visual Studio 负载测试给我 BSOD

从 SQL 表中查询 Visual Studio 2010 负载测试数据

为 WCF 负载测试加载 UI Vs Visual Studio 2010 [关闭]

从 Visual Studio 负载测试中获取“第一个字节的时间”指标