gpt4 book ai didi

testing - 如何在 Jmeter 的 Bean Shell 后处理器中使用 CSV Dataset Config 的变量

转载 作者:行者123 更新时间:2023-11-28 20:52:53 25 4
gpt4 key购买 nike

在我的应用程序中,我有两种情况。

  • 1.创建: 在这里我们预订酒店房间。预订应用程序返回交易 ID 后。
  • 2.取消:我们需要将交易 ID 传递给应用程序以取消预订。
  • 我想用 jmeter 进行测试,以便在创建调用后,使用生成的事务 ID 自动调用相应创建的取消调用。

所以我创建了两个线程组。一个用于在我调用创建 API 的地方创建,使用正则表达式提取器和 Bean Shell 后处理器将事务 ID 保存在 CSV 文件中。另一个线程用于取消,我在其中使用 CSV 数据集配置并调用取消 API 选择事务 ID。

问题是我想在调用取消 API 后从 CSV 文件中删除该交易 ID。我认为 Bean Shell 后处理器可以胜任这项工作。这是我的 CSV 数据集配置:

enter image description here

这是我的 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 进行硬编码,则代码可以正常工作。谁能帮帮我?

最佳答案

JMeter 变量只是当前线程组的本地,为了在线程组之间传递数据,您需要使用 JMeter 属性(props 而不是 变量)。参见 Knit One Pearl Two: How to Use Variables in Different Thread Groups文章以获得更详细的解释和用法示例。

附言也许使用 HTTP Simple Table Server 会更容易相反?

关于testing - 如何在 Jmeter 的 Bean Shell 后处理器中使用 CSV Dataset Config 的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38744687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com