我在CSV中有50个用户名和密码。我想运行一个Web负载测试,其中为多次迭代的负载测试持续时间(1小时)为每个虚拟用户分配一个唯一值。如何在VS 2010 Ultimate版本中完成。
由于
答案 0 :(得分:6)
创建并添加一个新的 WebTestPlugin ,在其 PreWebTest 事件中调用WebTest对象的 MoveDataTableCursor ()方法,为其赋值$ WebTestUserId上下文参数(e.WebTest.Context.WebTestUserId)。还要确保将数据源设置为不要自动移动光标。这具有将虚拟用户锁定到数据表中的行的效果。
CAVEAT:仅当您在本地或使用ONE Agent运行且LoadTest中只有一个Scenario时才会起作用,因为WebTestUserId在代理或方案中并不是唯一的(与文档相反)。如果您有多代理设置,那么您的插件必须知道如何跨代理分割数据行。在多个场景中完全没有办法解决这个问题 - 你需要一个更聪明的解决方案。
另请注意,WebTestUserId在LoadTest中从0开始,但在独立的WebTest中开始为1(谁知道原因?)。
答案 1 :(得分:6)
@agentnega提到的警告让我感到疑惑所以我找到了这个
单机运行测试
顺序 - 这是默认设置,告诉Web测试开始 第一行然后从数据源按顺序获取行。当它 到达数据源的末尾,循环回到开头和 重新开始。继续,直到负载测试完成。在负载测试中, 每个Web测试中的每个数据源都保留当前行,而不是 为每个用户。当任何用户使用给定的Web启动迭代时 测试时,它们被赋予下一行数据,然后是光标 先进。
随机 - 这表示随机选择行。继续,直到 负载测试完成。
唯一 - 这表示从第一个开始 按顺序排行和获取行。使用每一行后,停止网络 测试。如果这是负载测试中唯一的Web测试,那么负载 测试将停止。
多台计算机作为装备运行
顺序 - 这与您在一台计算机上的工作方式相同。每个代理都会收到数据的完整副本,每个代理都从数据源中的第1行开始。然后,每个代理将遍历数据源中的每一行,并继续循环,直到负载测试完成。
随机 - 这与在一台计算机上运行测试的效果相同。每个代理都将收到数据源的完整副本并随机选择行。
独特 - 这个有点不同。数据源中的每一行都将使用一次。因此,如果您有3个代理,数据将分布在3个代理上,并且不会多次使用任何行。与一台机器一样,每使用一行,Web测试将停止执行。
答案 2 :(得分:-1)
Sean Lumley posted in 2008 a web test plugin that distributes data across agents即使使用多个代理(link here)也会发送唯一值:
<待定代码示例。等一下。>