我在一个负载测试场景中包含了3个网络测试(在测试组合中的百分比不同)。我的场景中的3个测试中的每一个都调用另一个webtest来完成流程的登录部分。被调用的登录webtest对于所有3个主要测试都是相同的。
登录webtest包含一个数据源。它是一个csv,数据访问方法是顺序的。我在单个AWS代理上运行负载测试。
当我运行负载测试时,我期望代理获取数据文件的单个副本,并将该副本用于负载测试场景中的所有3个was测试。然而,我看到两个测试使用相同的数据行,只有2分钟的间隔,并且其他错误似乎表明同一数据行正在被两个测试同时使用。我没有运行高v-user负载,并且认为时间是内置在测试中的,所以负载测试不可能在2分钟内遍历整个数据文件。
我知道当涉及多个代理时,数据源行为是不同的,但是,当数据源包含在由多个其他测试调用的测试中时,您是否了解如何管理数据源?
发布于 2016-07-14 10:08:54
据我的实验所知,每个顶级测试,即在负载测试中命名的每个测试,都有自己的称为测试的数据源副本。因此,即使数据源被附加到被调用(即登录)测试,每个调用测试也将使用它的所有值。
我的实验:一个非常简单的名为Called
的web测试有一个CSV数据源,它有100行,一列包含行号。此web测试仅访问http://localhost/
,并期望得到404响应。WebTestPlugin
有一个PostWebTest
方法,该方法将数据源的行号字段以及上下文参数$WebTestIteration
和WebTestUserId
写入日志文件。第二个测试的唯一动作是(1)调用Called
和(2)调用插件。复制第二个测试,并将它们命名为Caller1
、Caller2
和Caller3
。这三个测试用于6个虚拟用户的负载测试,持续时间为2分钟。日志文件清楚地显示了三个顶级测试中的每一个都使用了CSV行。
https://stackoverflow.com/questions/38361848
复制相似问题