【发布时间】:2021-08-18 16:13:50
【问题描述】:
我有一个包含两个线程组的 jmeter 测试计划。一个线程组依赖于从另一个线程组写入的数据。
这种设计似乎可行,除了我面临的竞争条件。在依赖线程组中,我添加了一个检查以查看公共文件是否存在,然后再尝试读取它。
目前我在 while 控制器中使用以下表达式,执行睡眠动作。
${__groovy(!((new File(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() + "/someFileName")).exists()))}
我面临的异常来自我的依赖线程组,尝试从文件读取时出现 IllegalArgumentException,错误消息指出文件需要存在或可读。我认为正在发生的事情是我的检查通过了,因为文件已创建但第一行尚不存在。
是否有解决此类问题的方法?
我从 js223 预处理器尝试了以下方法,但运气不佳..
def boolean isFileReadable() {
try {
File file = new File(org.apache.jmeter.services.FileServer.getFileServer().getBaseDir() +"/sampleData/temp/vbinformation.csv");
FileReader fileReader = new FileReader(file.getAbsolutePath());
fileReader.read();
fileReader.close();
} catch (Exception e) {
return false;
print(false)
}
print(true)
return true;
}
while (!isFileReadable()) {
sleep(2000)
}
【问题讨论】: