我需要并行加载从for each循环中提取的动态资产(图像),因为只有一个采样器传递了变量。我无法在此处使用并行控制器,而且我不知道加载到并行采样器中传递的资产的确切数量。
正如你在一个类似的问题中建议的那样,我已经使用了该方法(添加预采样器)下面的脚本,并尝试在中执行它,它可以选择值,但子元素总是只有一个(并行请求不会发生),但我看到URL的传递主请求有多个传递。
使用的预处理器脚本:
String var2 = vars.get("tokens");
String var3 = vars.get("Token");
vars.put("var3", "https://stagingassets.ovid.com"+"/"+var2+"/t/width-150-png?"+var3);
urlsList = vars.get("var3").tokenize(",")
for (int i = 0; i < urlsList.size(); i++) {
def row = new org.apache.jmeter.testelement.property.CollectionProperty()
row.addItem(urlsList[i])
sampler.data.addItem(row)
log.info("ROWS ${row}")
}
变量来自CSV,在CSV中,使用灵活的文件写入器将每个循环的值保存到文件中。
我的要求是在浏览器中并行执行图像。
[JMeter脚本图像][1]
1条答案
按热度按时间6pp0gazn1#
使用并行采样器,可以使用以下代码片段通过JSR 223预处理器动态添加URL:
如果你想模仿类似浏览器的行为,你需要把并行采样器放在循环控制器下,并把循环数设置为你的URL数/ 6