什么是参数化呢?
参数化是用来实现逻辑相同数据不同的效果。
对于性能测试和功能测试而言,参数化的实现目的是不一样的。
功能测试:参数化是为了通过一个脚本去覆盖足够多的测试用例。
性能测试:参数化是为了更准确地获取到性能测试结果。
JMeter参数化格式
在JMeter中,任何鼠标点击可以输入的地方都可以进行参数化处理。不论采用的是变量、参数还是函数,调用的格式是统一的:
${变量名}
${参数名}
${函数名}
JMeter参数化实现的类型
在JMeter中,参数化实现的方式本质上有两种:
- 函数方式:通过JMeter所提供的内置函数、第三方插件或者自定义函数来实现特定函数值的生成。
比如说:Random函数,RandomString、time函数等等。
对于函数方式,建议大家通过函数助手对话框来生成函数的调用字符串。
- 文件方式:是指用户自己将参数值维护在参数文件中,然后通过JMeter所提供的组件去读取和使用。
- 多用于需要从数据库中获取,有合法性校验的值。比如说登录业务的用户名和密码等。
CSV Data Set Config组件:
该组件是JMeter提供的用来读取参数文件的值实现参数化的组件。

属性详解:
- 文件名:该处用来指定参数文件所在的路径,该处可以使用绝对路径或者相对路径。
如果是相对路径,则当前路径一般是指脚本文件所在的目录。
- 文件编码: 该处是用来指定参数文件本身在操作系统中存储时所采用的编码,建议留空即可。
- 一定不能在文件使用ansi编码的时候填写utf-8。
- 变量名可以有很多个,使用逗号进行分隔。
- 一个变量名对应读取参数文件中的一列值,按照顺序一一对应,即第一个变量读取参数文件中的第一列值,第N个变量读取参数文件中的第N列值。
- 忽略首行:默认是false,表示参数文件中的第一行值将会被读取。
- 但是有时候我们的参数文件中为了说明参数值,第一行往往是列名、属性名,而不是参数值。这种情况下我们就需要设置该选项为true。
- 分隔符是JMeter用来读取参数文件时用到的,要求该处填写的分隔符和参数文件中实际的列的分隔符保持一致,否则就会导致第一个变量读取整行值,后面的变量都没有值的情况出现。
- 是否允许带引号:该选项是指是否允许在参数文件中通过双引号来定义块数据(单元格)。
- 一般来说,该选项是用于当我们的参数值本身包含分隔符时,通过双引号将包含分隔符的参数值括起来,定义为一个整体,即块数据。
- PS:对于参数值中包含逗号这样的情况,也可以考虑更换参数文件中的分隔符来解决。
- 遇到结束符循环:是指当参数值不够用时是否循环使用参数值。默认是true,即循环取值。
- 遇到结束符停止:是指当参数值不够用时是否停止线程。默认是false。
- 只有当循环取值设置为false时,该选项设置为true才有意义。
- 线程共享模式:该选项是用来设置参数的取值方式的。总计有三种可选模式:
- 所有线程:是指测试计划下的所有线程组中的所有线程共用一个参数文件的拷贝,采用先到先拿,顺序取值的方式。
- 当前线程组:是指一个线程组中的所有线程共用一个参数文件的拷贝,如果测试计划下有多个线程组,则同一个参数文件将复制N份,不同线程组相互不冲突。同一个线程组中的所有线程采用先到先拿,顺序取值的方式。
- 当前线程:是指每一个线程都拥有一个独立的参数文件的拷贝,采用顺序取值的方式。
- PS:该方式下,每一个线程每一次用到的值都会一样。相当于LR中的默认的参数取值方式。
希望本文对你有所帮助~~如果对软件测试、接口测试、自动化测试、性能测试、面试经验交流感兴趣可以私聊我或关注公众号“特斯汀软件测试”。免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。