Scripting Jmeter将响应数据值保存到变量中,并用CSV文件中的其他值覆盖它
在Jmeter中是否可以使用变量(例如,Scripting Jmeter将响应数据值保存到变量中,并用CSV文件中的其他值覆盖它,scripting,jmeter,beanshell,Scripting,Jmeter,Beanshell,在Jmeter中是否可以使用变量(例如,${variable_1},我在regex的帮助下从HTTP请求的响应体接收到该变量的值,读取一些.csv文件,并找到与${variable_1}值完全相同的行(假设所有行都有不同的值),然后读取此行中的下一个单元格(几乎.csv文件只包含2列),无论其中有什么值,都将其覆盖到${variable\u 1}?有人告诉我,在BeanShell的帮助下,这是可能的,但我对其中的脚本编写不太熟悉。非常感谢您的任何建议。给您: import org.apache.
${variable_1}
,我在regex的帮助下从HTTP请求的响应体接收到该变量的值,读取一些.csv
文件,并找到与${variable_1}值完全相同的行(假设所有行都有不同的值)
,然后读取此行中的下一个单元格(几乎.csv
文件只包含2列),无论其中有什么值,都将其覆盖到${variable\u 1}
?有人告诉我,在BeanShell的帮助下,这是可能的,但我对其中的脚本编写不太熟悉。非常感谢您的任何建议。给您:
import org.apache.commons.io.FileUtils;
import java.nio.charset.StandardCharsets;
log.info("Previous value of variable_1 = " + vars.get("variable_1"));
List csvLines = FileUtils.readLines(new File("test.csv"), StandardCharsets.UTF_8);
for (String csvLine : csvLines) {
if (csvLine.startsWith(vars.get("variable_1"))) {
vars.put("variable_1", csvLine.split(",")[1]);
break;
}
}
log.info("New value of variable_1 = " + vars.get("variable_1"));
演示:
有关在JMeter测试中使用脚本的更多详细信息,请参阅本文
还要注意的是,Beanshell存在一些严重的性能缺陷,与用Java 7+语法编写的代码(泛型、LabMDA、多捕获等)不兼容如果在安装线程组中使用一个线程来改变变量——这是很好的,但是如果线程的数量是高的和/或CSV文件是大的,最好考虑一下。德米特里,请告知您是否熟悉。在使用BeS壳代码之前,什么是最合适的方法来测试BeSide?Eclipse IDE?