Gatling 读取csv文件变量

时间:2024-03-14 22:42:22

在使用gatling做测试的时候,有时候希望变量的值是随机变化的,可以使用gatling读取csv文件。
假如csv文件的内容如下:

searchCriterion,searchComputerName
Macbook,MacBook Pro
eee,ASUS Eee PC 1005PE

这个文件有两列,分别为searchCriterion和searchComputerName。
读取该文件的方法是:

val feeder = csv("search.csv").random 

csv()函数是读取以","逗号分割的csv文件,如果csv文件采用别的分隔符分割,需要使用别的函数。每次随机从csv文件中读取一行数据使用。

val tsvFeeder = tsv("foo.tsv") // 使用TAB作为分隔符
val ssvFeeder = ssv("foo.ssv") // 使用";"分号作为分隔符
val customSeparatorFeeder = separatedValues("foo.txt", '#') // 使用自定义的分隔符

这些函数默认将csv文件里的所有数据加载到内存中,因此gatling在模拟运行时,不会有磁盘访问。
使用${变量名},即可使用读取到的csv的数据,如下图所示:
Gatling 读取csv文件变量
如果csv文件非常大,很难一次将所有数据读取到内存中,可以使用batch模式。

val csvFeeder = csv("foo.csv").batch.random
val csvFeeder2 = csv("foo.csv").batch(200).random // 将缓存数据修改为200

在batch模式,random & shuffle都只能操作内部缓存中的数据。默认会缓存2000条数据。