我已经完成了site:stackoverflow.com jmeter read csv line by index
的网络搜索,发现:
JMeter: CSV Data Set Config "Lines are read at the start of each test iteration." - how exactly should it work?
我想通过JMeter中的csv文件模拟简单的关系数据库,即我有一个表,很高兴用标准Random CSV
元素来读取,但是在该表中,行号(索引)我要通过它查找另一个csv
文件中的条目并进行读取。
上面的链接显示了可以通过设置属性来完成的操作-属性的数量等于秒csv
中的行数。我的文件长数千行,并且搜索完成了很多次(预处理器)。这是唯一有效的方法吗?
也许我可以制作一些Groovy类以供阅读并稍后使用?
添加:关系结构的原因在于效率:
假设主表有100万行,第二个有10万行。
包括从第二到第一的所有信息将使每行的长度增加大约两倍,因此大约增加两倍的数据总数。
关系结构是否具有更高的内存/ CPU效率?
如果我从csv
转向说PostgreSQL
,它将带来什么净效果?
答案 0 :(得分:1)
您可以在setUp Thread Group中的某个位置将文件读入内存一次,例如:
将以下代码放入“脚本”区域:
SampleResult.setIgnore()
props.put('file', new File('/path/to/your/file.csv').readLines())
就是这样,现在您可以使用__groovy() function这样的方式从内存中读取此行或该行:
${__groovy(props.get('file').get(0),)}
-阅读第一行${__groovy(props.get('file').get(1),)}
-阅读第二行