我正在尝试以随机行顺序从 CSV 文件(使用 beanshell 预处理器)读取数据,因为它执行随机 CSV 数据集配置

I am trying to read data from CSV file (using beanshell pre-processor) in random row sequence as it does Random CSV dataset Config

提问人:user3627319 提问时间:11/9/2023 最后编辑:user3627319 更新时间:11/9/2023 访问量:16

问:

我正在尝试以随机行顺序从 CSV 文件(使用 beanshell 预处理器)读取数据,因为它确实是随机 CSV 数据集配置插件,因为防火墙不允许 Blazemeter 插件。

CSV 内容-2 列(用户名,密码) 不。行数-100 我尝试了下面的 beanshell 脚本来读取随机行。

导入 org.apache.commons.io.FileUtils;必要的导入

int 行 = FileUtils.readLines(new File(“C:/Users/smaharana008/PT_Work/UARS/Docs/01_CUser_subset.csv”)).size(); log.info(“CSV 文件中的行数为 : ” + 行); vars.put(“行”, String.valueOf(lines));

HTTP RequestCSV File Content

jmeter filereader beanshell 读取-csv

评论


答:

0赞 Dmitri T 11/9/2023 #1

最好的方法是在 setUp Thread Group 中的某个位置“随机播放”原始 CSV 文件

您可以使用 JSR223 Sampler 和类似代码来执行此操作:

def original = new File('original.csv')
def random = new File('random.csv')

def credentials = original.readLines().tail()
credentials.shuffle()

random.withWriter { writer ->
    writer.writeLine('uname,pwd')
    credentials.each { line ->
        writer.writeLine(line)
    }
}

然后在“正常”线程组中,将 CSV 数据集配置指向此文件。random.csv

另请注意,从 JMeter 3.1 开始,您应该使用 JSR223 测试元素和 Groovy 语言进行脚本编写,因此请考虑迁移。