【发布时间】:2017-12-23 05:48:14
【问题描述】:
我在 CSV 中有 50 个用户名和密码。我想运行一个 Web 负载测试,其中为每个虚拟用户分配一个唯一值,用于多次迭代的负载测试持续时间(1 小时)。这在 VS 2010 Ultimate 版本中是如何完成的。
谢谢
【问题讨论】:
标签: visual-studio-2010 load-testing
我在 CSV 中有 50 个用户名和密码。我想运行一个 Web 负载测试,其中为每个虚拟用户分配一个唯一值,用于多次迭代的负载测试持续时间(1 小时)。这在 VS 2010 Ultimate 版本中是如何完成的。
谢谢
【问题讨论】:
标签: visual-studio-2010 load-testing
创建并添加一个新的 WebTestPlugin,在其 PreWebTest 事件中调用 WebTest 对象的 MoveDataTableCursor() 方法,并为其赋予值$WebTestUserId 上下文参数 (e.WebTest.Context.WebTestUserId)。还要确保将数据源设置为不要自动移动光标。这具有将虚拟用户锁定到数据表中的一行的效果。
CAVEAT:这仅在您在本地运行或使用 ONE Agent 并且 LoadTest 中只有一个场景时才有效,因为 WebTestUserId 在代理或场景中不是唯一的(与文档相反)。如果您有一个多代理设置,那么您的插件将必须知道如何跨代理拆分数据行。根本没有办法跨多个场景来解决这个问题——你需要一个更聪明的解决方案。
还要注意 WebTestUserId 在 LoadTest 中从 0 开始,但在独立 WebTest 中从 1 开始(谁知道为什么?)。
【讨论】:
@agentnega 提到的警告有点让我好奇,所以我找到了这个
单机运行测试
Sequential – 这是默认设置,告诉 Web 测试从 然后第一行从数据源中按顺序获取行。当它 到达数据源的末尾,循环回到开头并 重新开始。继续直到负载测试完成。在负载测试中, 为每个 Web 测试中的每个数据源保留当前行,而不是 对于每个用户。当任何用户使用给定的 Web 开始迭代时 测试,他们被赋予下一行数据,然后光标是 高级。
Random – 这表示随机选择行。继续直到 负载测试完成。
唯一 - 这表示从第一个开始 行并按顺序获取行。使用每一行后,停止网络 测试。如果这是负载测试中唯一的 web 测试,那么负载 测试将停止。
多台机器作为一个钻机运行
Sequential – 这与您在一台计算机上的工作方式相同。每个代理都会收到数据的完整副本,并且每个代理都从数据源中的第 1 行开始。然后每个代理将遍历数据源中的每一行并继续循环,直到负载测试完成。
随机 - 这也与在一台机器上运行测试相同。每个代理都会收到数据源的完整副本并随机选择行。
独特 - 这个有点不同。数据源中的每一行将被使用一次。因此,如果您有 3 个代理,则数据将分布在 3 个代理中,并且不会多次使用任何行。与一台机器一样,一旦使用了每一行,web 测试将停止执行。
【讨论】:
【讨论】: