我正在使用Visual Studio 2015负载测试并运行已连接数据源的Web性能测试。数据源包含250个用户的用户登录信息。
在单个代理上按顺序运行此工作正常。但是,我试图添加10个测试代理来分担负载。按照设计,负载测试将数据源复制到每个代理,然后运行测试。最终发生的是所有10个代理使用数据源中的第1行用户开始测试。我希望设置负载测试以在所有代理之间顺序运行(例如:代理1使用第1行,代理2使用第2行,代理3使用第3行等等)
我怀疑没有选择设置它,但是想知道是否有人遇到过这个问题并提供了解决方法。我确实通过http://vsptqrg.codeplex.com
找到了此信息作为装备运行的多台机器
顺序 - 这与您在一台计算机上的工作方式相同。每个代理都会收到数据的完整副本,每个代理都从数据源中的第1行开始。然后,每个代理将遍历数据源中的每一行,并继续循环,直到负载测试完成。
随机 - 这也与在一台机器上运行测试的效果相同。每个代理都将收到数据源的完整副本并随机选择行。
独特 - 这个有点不同。数据源中的每一行都将使用一次。因此,如果您有3个代理,数据将分布在3个代理上,并且不会多次使用任何行。与一台机器一样,每使用一行,Web测试将停止执行。
答案 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。