在我的应用程序中,我有两个场景。
所以我创建了两个线程组。一个用于创建我正在调用create API的创建API,使用Regular Expression Extractor&amp ;;将事务ID保存在CSV文件中。 Bean Shell后处理器。另一个线程是取消,我使用CSV数据集配置&选择交易ID。调用取消API。
问题是我想在调用取消API后从CSV文件中删除该事务ID。我认为Bean Shell Post Processor可以完成这项工作。这是我的CSV数据集配置:
这是我的Bean Shell后处理器代码:
File inputFile = new File("/home/demo/LocalFolder/CSV/result.csv");
File tempFile = new File("/home/demo/LocalFolder/CSV/myTempFile.csv");
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader(inputFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
String lineToRemove = vars.get("transactionId");
//String lineToRemove = "${transactionId}";
String currentLine;
while((currentLine = reader.readLine()) != null) {
// trim newline when comparing with lineToRemove
String trimmedLine = currentLine.trim();
if(trimmedLine.equals(lineToRemove)) continue;
writer.write(currentLine + System.getProperty("line.separator"));
}
writer.close();
reader.close();
boolean successful = tempFile.renameTo(inputFile);
System.out.println("Completed");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
但是事务ID不会从文件中删除。我认为vars.get("transactionId")
没有返回任何内容或返回错误的值。如果我硬编码转换ID,那么代码工作正常。任何人都可以帮助我吗?
答案 0 :(得分:0)
JMeter变量仅本地到当前线程组,为了在线程组之间传递数据,您需要使用JMeter属性(props
而不是vars
) 。有关更详细的说明和用法示例,请参阅Knit One Pearl Two: How to Use Variables in Different Thread Groups文章。
P.S。也许更容易使用HTTP Simple Table Server?