我有3个网络测试包含在负载测试场景中(测试组合的百分比不同)。我的场景中的3个测试中的每一个都调用另一个webtest来完成流的登录部分。所有3个主要测试都会调用登录webtest。
登录webtest包含数据源。它是一个csv,数据访问方法是顺序的。我正在一个AWS代理上运行我的负载测试。
当我运行负载测试时,我期望代理获取数据文件的单个副本,并在负载测试场景中使用该单个副本用于所有3个Web测试。但是,我看到2个测试使用相同的数据行,只有2分钟的分离,其他错误似乎表明同一个数据行正在被2个测试同时使用。我没有运行高v用户负载,并且考虑将时间考虑在内,因此负载测试无法在2分钟内遍历整个数据文件。
我知道当涉及多个代理时,数据源行为是不同的,但是当数据源包含在多个其他测试调用的测试中时,对数据源的管理方式有任何了解吗?
答案 0 :(得分:0)
据我的实验而言,每个顶级测试,即负载测试中命名的每个测试,都会获得自己的被测试数据源副本。因此,即使数据源附加到被调用(即登录)测试,每个调用测试都将使用其所有值。
我的实验:名为Called
的非常简单的网络测试包含一个包含100行的CSV数据源和一个包含行号的列。此网络测试只访问http://localhost/
并预计会有404响应。 WebTestPlugin
具有PostWebTest
方法,该方法将数据源的行号字段加上上下文参数$WebTestIteration
和WebTestUserId
写入日志文件。第二个测试的唯一动作是(1)调用Called
和(2)调用插件。制作了第二个测试的副本,并为其指定了Caller1
,Caller2
和Caller3
。这三个测试用于6个虚拟用户的负载测试,持续2分钟。日志文件清楚地显示每个CSV行由三个顶级测试中的每一个使用。