5.1参数化是什么?
动态的获取并设置数据
5.2为什么使用参数化
1.执行批量操作,批量添加批量删除,人工效率太低
2.运用程序代替人工获取并设置数据,安全高效
3.比如:对被检测系统的用户名和密码进行参数化,来模拟多个用户同时登录系统
5.3参数化实现之用户自定义变量
通过这个功能,能实现多接口共享数据,修改一条即可全部修改。
Filename:所需数据文件的路径。如何脚本同一路径,可直接填写文件名
File encoding:编码和文件保持一致即可,默认为ANSI。如果有中文,建议修改为utf-8
Variable Names:引用变量时的变量名,对应数据文件中的每一列,以逗号分隔。如不填写,文件的第一行数据将被读取为变量名
Delimiter:在.txt、.dat文件中,可以用逗号(,)或者Tab键(\t)来区分列与列
Allow quote data:选项选为“true”的时候对全角字符的处理出现乱码
Recycle on EOF:到数据文件结尾时是否循环读取。设置为True时,线程数过多,数据文件读取到最后一行时,会再次从第一行开始读取。设置为False,到达文件结尾时如果继续读取,则值会默认为<EOF>,可以通过设置jmeter属性csvdataset.eofstring来改变该值。
Stop thread on EOF:Recycle on EOF设置为False,Stop thread on EOF设置为True,则读取数据文件最后一行,停止测试,不管还有多少线程组未执行。
Sharing mode:共享模式。默认在所有线程组中使用,可选择每个线程组单独打开
相同的部分使用用户自定义变量
只需要修改一次接口
效果展示
5.4参数化实现之CSV Data Set Config
添加CSV Data Set Config:
聚合数据--添加--配置元件--CSV Data Set Config
5.5使用jmeter函数助手(文件中不要出现中文)
1.点击 选项-->函数助手 调出函数助手对话框
2.选择 _CSVRead 函数
3.函数参数:
1)第一个参数:填写文件路径。
2)第二个参数:文件列号是从0开始的,第一列0,第二列1,第三列2,以此类推,然后点击【生成】按钮,则会自动生成我们需要的参数化函数。
3)复制生成的参数化函数,copy过程需要使用的地方即可。
4)_Random函数是从某数据段随机读取数据替换参数,当需要添加多条数据记录并且某些字段需要唯一性时使用。
六、Jmeter正则表达式提取
6.1使用正则提取
运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联。关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据
正则表达式(regular expression) 描述了一种字符串匹配的模式(pattern),可以用来检查一个字符串是否含有某种子串 、将匹配的字符串替换或者从某个串中提取符合某个条件的子串等。
字符:
* :匹配前面的子表达式零次或多次。例如:zo*能匹配到“z”以及“zoo”。*等价于{0,}。
+ :匹配前面的子表达式一次或多次。例如:'zo+'能匹配到"zo"以及“zoo”,但不能匹配到“z”。+等价于{1,}。
? :匹配前面的子表达式零次或多次。例如:“do(es)?”可以匹配到“do”、“does”中的“does”、“doxy”中的“do”。?等价于{0,1}。
() :标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。
. :匹配除换行符\n之外的任何单字符。要匹配 . , 请使用 . 。
构造正则表达式的方法和创建数学表达式的方法一样。也就是用多种元字符与运行服可以将小的表达式结合在一起来创建更大的表达式。正则表达式的组件可以是单个的字符、字符集合、字符范围、字符间的选择或者所有这些组件的任意组合。