gpt4 book ai didi

java - 如何随机化 JMETER 中文本之间有空格的数据行

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:04:53 25 4
gpt4 key购买 nike

我是 jmeter 的新手,一直在考虑创建一个测试计划,其中包括将个人信息(虚拟数据)发布到网站。我有一个 CSV 文件,其中包含大约 20,000 条记录,我需要将其加载到 jmeter 中,然后随机化 jmeter 将用于每次迭代的信息顺序。目前我正在使用 Beanshell 采样器加载 CSV 并随机化这些行,然后使用 Beanshell 后处理器将随机化的行加载到一个名为“Line”的变量中,但是在运行脚本并查看我的调试结果后,它显示了部分个人信息行/行中的数据。进一步调查后,我意识到 Varible“Line”正在加载由于 CSV 文件中逗号之间的字符串中有空格而被破坏的信息。

CSV文件中的示例数据如下:

firstname,lastname,housenumber,streetname,area,postcode
john,smith,21,Albert Street,Knotts County,AB3 4DL

我在 beanshell 中使用的代码是第 1 部分加载 csv 文件:

Scanner scanner = new Scanner(new File("c:/file.csv")); 
Map file = new HashMap();
int counter = 0;
while (scanner.hasNext()) {
String line = scanner.next();
file.put(counter, line);
counter++;
}
bsh.shared.fileMap = file;
bsh.shared.linesnumber = counter;

后处理器中 beanshell 脚本的第二部分从文件中获取随机行并添加到变量“line”:

int counter = bsh.shared.linesnumber; 
Map file = bsh.shared.fileMap;

Random r = new Random();
String line = file.get(r.nextInt(counter));
vars.put("line", line);

运行此命令时,调试后处理器中的结果如下所示:

line=john,smith,21,Albert

似乎“Albert and Street”这两个词之间的空格打破了界限。因此,逗号之间包含空格的任何字符串值都会换行,例如。街道名称、邮政编码等。我的问题是,有没有一种方法可以将整行加载到包括空格的变量中。

最佳答案

首先,我认为测试需要可重复,因此如果测试显示错误,您可以重新运行测试以确认它或验证潜在问题是否已修复。所以我建议保持 CSV 数据的“正常”顺序。行为良好的测试会自行清理,因此您不应遇到数据无法重用的情况。

如果您仍在寻找随机化数据的方法,您可以尝试 HTTP Simple Table Server具有返回行的“随机”模式的插件。

如果您仍然想要 Beanshell,请记住 JMeter 构建在其他库之上,您可以从 Beanshell 脚本调用它们的方法。特别是在你的情况下,我相信FileUtils.readLines()将非常有帮助,例如:

  1. 第一个 Beanshell 脚本:

    import org.apache.commons.io.FileUtils;

    List lines = FileUtils.readLines(new File("c:/file.csv"));
    bsh.shared.lines = lines;
  2. 第二个 Beanshell 脚本:

    import java.util.concurrent.ThreadLocalRandom;

    List lines = bsh.shared.lines;
    String line = lines.get(ThreadLocalRandom.current().nextInt(0, lines.size()));
    vars.put("line", line);

更多信息:How to Use BeanShell: JMeter's Favorite Built-in Component

关于java - 如何随机化 JMETER 中文本之间有空格的数据行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40155059/

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