VS 2010 Web负载测试 - 从CSV为每个虚拟用户设置唯一值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS 2010 Web负载测试 - 从CSV为每个虚拟用户设置唯一值相关的知识,希望对你有一定的参考价值。

我在CSV中有50个用户名和密码。我想运行一个Web负载测试,其中为多次迭代的负载测试持续时间(1小时)为每个虚拟用户分配一个唯一值。如何在VS 2010 Ultimate版本中完成。

谢谢

答案

创建并添加一个新的WebTestPlugin,在其PreWebTest事件中调用WebTest对象的MoveDataTableCursor()方法,为其提供$ WebTestUserId上下文参数的值(e.WebTest.Context.WebTestUserId)。还要确保将数据源设置为“不要自动移动光标”。这具有将虚拟用户锁定到数据表中的行的效果。

CAVEAT:这只有在本地运行或使用ONE Agent运行且LoadTest中只有一个Scenario时才有效,因为WebTestUserId在代理或场景中并不是唯一的(与文档相反)。如果您有多代理设置,那么您的插件必须知道如何跨代理分割数据行。在多个场景中完全没有办法解决这个问题 - 你需要一个更聪明的解决方案。

另请注意,WebTestUserId在LoadTest中从0开始,但在独立WebTest中开始为1(谁知道原因?)。

另一答案

@agentnega提到的警告让我感到疑惑所以我找到了这个

单机运行测试

  • 顺序 - 这是默认值,告诉Web测试从第一行开始,然后从数据源按顺序获取行。当它到达数据源的末尾时,循环回到开头并重新开始。继续,直到负载测试完成。在负载测试中,为每个Web测试中的每个数据源保留当前行,而不是为每个用户保留当前行。当任何用户使用给定的Web测试启动迭代时,将为它们提供下一行数据,然后将光标提前。
  • 随机 - 这表示随机选择行。继续,直到负载测试完成。
  • 唯一 - 这表示从第一行开始并按顺序获取行。使用每一行后,停止Web测试。如果这是负载测试中唯一的Web测试,则负载测试将停止。

多台机器作为钻机运行

  • 顺序 - 这与您在一台机器上的工作方式相同。每个代理都会收到数据的完整副本,每个代理都从数据源中的第1行开始。然后,每个代理将遍历数据源中的每一行,并继续循环,直到负载测试完成。
  • 随机 - 这与在一台机器上运行测试的效果相同。每个代理都将收到数据源的完整副本并随机选择行。
  • 独特 - 这个有点不同。数据源中的每一行都将使用一次。因此,如果您有3个代理,数据将分布在3个代理上,并且不会多次使用任何行。与一台机器一样,每使用一行,Web测试将停止执行。

来源http://vsptqrg.codeplex.com/

另一答案

Sean Lumley posted in 2008 a web test plugin that distributes data across agents即使使用多个代理(link here)也会发送唯一值:

<待定代码示例。等一下。>

以上是关于VS 2010 Web负载测试 - 从CSV为每个虚拟用户设置唯一值的主要内容,如果未能解决你的问题,请参考以下文章

VS2010/2012Web负载测试

从 CSV 文件加载数据以进行负载测试并为每个用户保持会话

VS 2010 负载测试计数器集卡住

VS2010 负载测试:如何执行在每次负载测试之前运行一次的自定义操作

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

VS2010 负载测试中的 SQL 跟踪显示不相关的结果