Visual Studio负载测试 - 将数据源与多个代理一起使用

时间:2017-02-01 18:37:10

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

我正在使用Visual Studio 2015负载测试并运行已连接数据源的Web性能测试。数据源包含250个用户的用户登录信息。

在单个代理上按顺序运行此工作正常。但是,我试图添加10个测试代理来分担负载。按照设计,负载测试将数据源复制到每个代理,然后运行测试。最终发生的是所有10个代理使用数据源中的第1行用户开始测试。我希望设置负载测试以在所有代理之间顺序运行(例如:代理1使用第1行,代理2使用第2行,代理3使用第3行等等)

我怀疑没有选择设置它,但是想知道是否有人遇到过这个问题并提供了解决方法。我确实通过http://vsptqrg.codeplex.com

找到了此信息
  

作为装备运行的多台机器

     

顺序 - 这与您在一台计算机上的工作方式相同。每个代理都会收到数据的完整副本,每个代理都从数据源中的第1行开始。然后,每个代理将遍历数据源中的每一行,并继续循环,直到负载测试完成。

     

随机 - 这也与在一台机器上运行测试的效果相同。每个代理都将收到数据源的完整副本并随机选择行。

     

独特 - 这个有点不同。数据源中的每一行都将使用一次。因此,如果您有3个代理,数据将分布在3个代理上,并且不会多次使用任何行。与一台机器一样,每使用一行,Web测试将停止执行。

2 个答案:

答案 0 :(得分:0)

您可以使用unique设置离您最近的所需内容。但是,每个数据源行仅使用一次,然后测试将停止。对于包含250行的数据源,将仅执行250次测试执行。在指定unique时,我不知道代理的数据源行的确切分布。

如果需要每个数据源行执行多次,则另一种方法是每个代理具有一个数据源列。使用agent_id选择列。使用sequential数据源访问权限。一种变体是在数据源中只有一组数据,但将agent_id附加到数据源中的某些值。 This answer对这些想法和一些代码有一些变化。

另一种可能性是使用MoveDataTableCursor方法为每个测试执行设置特定行。这可以在PreWebTest的{​​{1}}方法中调用。代码将使用上下文参数WebTestPlugin$AgentId。电话会议将基于以下内容:

$WebTestIteration

注意:

  • 上下文中MoveDataTableCursor(..., ..., $AgentId * NumberOfAgents + $WebTestIteration); $AgentId的值是字符串,需要将它们转换为数字才能进行乘法和加法。
  • 还需要检查这两个值是从零开始还是从一开始。
  • $WebTestIteration的{​​{3}}信息量不大

答案 1 :(得分:0)

您可以拆分数据集/ CSV并分发给每个代理,即在您的情况下" 25数据集" /代理并执行测试。

每个代理都可以使用自己的数据集/ CSV。

CSV拆分:http://monchito.com/blog/autosplit-csv