JMeter函数可以很方便实现一些小功能,几乎可以用于测试计划中的任何元件。一个函数的调用如下:${_functionName(var1,var2,var3)},_functionName匹配函数名,圆括号内设置函数的参数,例如${_CSVRead(var1,var2)}实际参数因函数而不同。不需要参数的函数圆括号内为空,例如${_theadNum}。
JMeter函数有两种函数:自定义静态值(或者变量)和内置函数。
注意:如果使用的自定义变量与内置函数名字相同时,自定义静态变量会覆盖内置函数,但不建议名字相同。
_csvRead 函数
操作步骤:
1、首先新建一个CSV文件,内容如下
内容为使用的用户名和密码,用逗号隔开,每一列表示一类参数,每一行则表示一组参数
2、在jmeter中的【选项】中选择【函数助手对话框】,弹出如下对话框:
说明:
CSV file to get values from | *alias:读取的文件路径,需要绝对路径
CSV文件列号| next| *alias:从第几列开始读取,注意第一列是0,第二列是1
如上图所示,读取的是userbak.csv文件的第一列用户名(如果要读取第二列的密码,只需将0改成1即可),点击【生成】按钮即可生成函数,使用时即拷贝生成的函数字符串:${__CSVRead(C:UsersadminDesktopuserbak.csv,0)}
3、使用如下图所示:
其中的值即为生成的函数(${__CSVRead(C:UsersadminDesktopuserbak.csv,0)},${__CSVRead(C:UsersadminDesktopuserbak.csv,1)}),jmeter执行时,如果是多线程,则从userbak.csv中第一行开始读取,如果设置的线程数大于csv文件中的行数,将会循环读取数据,如果csv文件中间有空行,则将视为文件的末尾,不会读取空行以下的内容。
总结:
- _csvRead 函数读取CSV文件,返回一个字符串,可以支持多文件;
- 如果csv文件中间有空行,则将视为文件的末尾,不会读取空行以下的内容;
- 每个线程都有指向文件数组中当前行的内部指针。当线程使用文件时,它将在数组中分配下一个空指针,所以每个线程将访问与所有其他线程不同的行(除非数组中的线程多于行)。