JMeter参数化
- 一、JMeter用户参数
- 1、作用
- 2、案例1:百度搜索接口:使用用户参数模拟不同线程操作时,搜索不同的数据
- 二、用户自定义变量
- 案例1:演示用户定义的变量具有全局性
- 案例2:使用用户定义的变量,分组管理配置
- 三、JMeter CSV配置元件
- 1、作用:
- 2、配置说明
- 案例一:加载CSV数据文件入门案例
- 案例二:多列CSV数据,指定多个变量
- 案例三:分隔符对读取数据的影响
- 案例四:忽略首行对读取数据的影响
- 案例五:是否允许双引号演示
- 案例六:线程共享模式的区别演示
- 案例七:使用CSV配置文件准备20个用户,实现注册20个用户
- 三、JMeter CSV配置文件准备测试数据,实现数据驱动测试
- 四、总结
作用:
通过参数化来集中管理配置和测试数据
通过参数化实现数据驱动测试
一、JMeter用户参数
在jmeter中用户就是线程
添加方式:测试计划或者线程组右键->添加->前置处理器->用户参数
1、作用
设置多个用户同一个参数的不同参数值,用户参数的结构类似于数据库的表。
用户参数提取每行数据的方法:通过线程来读取
第1个线程读取:用户_1的数据
第2个线程读取:用户_2的数据
…
第N个线程读取:用户_N的数据
2、案例1:百度搜索接口:使用用户参数模拟不同线程操作时,搜索不同的数据
设置3个线程
添加用户参数
查看结果
二、用户自定义变量
全局生效,可以跨线程组使用
整个界面配置和测试计划中的用户定义的变量一样,区别是可以挪动它的位置
案例1:演示用户定义的变量具有全局性
第一步:实现msb搜索接口
第二步:在msb搜索接口的子集中,添加用户自定义的变量
第三步:新增一个线程,在新增的线程中添加调试取样器
第四步:运行,查看结果
如果用户定义的变量组件放在取样器的子集中,那么它也会最先运行
它不会受到作用域的影响,它是全局生效的
案例2:使用用户定义的变量,分组管理配置
JDBC配置
环境配置
注册/登录用户配置
其他配置
三、JMeter CSV配置元件
1、作用:
a、可以利用CSV文件快速构造测试数据
b、可以进行数据驱动测试
添加方式:线程组右键->添加->配置元件->CSV数据文件设置
2、配置说明
创建CSV文件:windows系统可以直接新建一个后缀名为txt的文本文件,然后修改后缀名为csv
文件名:要加载的CSV文件
文件编码:加载CSV文件时,JMeter用的编码;
变量名称(西文逗号间隔): 指按列保存CSV数据到JMeter的变量,如果只设置一个变量,那么会保存CSV所有数据到这一个变量中
忽略首行:如果设置了,那么第一行不会读取
分隔符:拆分CSV数据的分隔符,默认是制表符"\t"
是否允许带引号:如果设置为True,那么双引号会被传递进入JMeter,否则会自动去掉双引号
遇到文件结束符再次循环:当文件的所有数据读取完毕后,是否继续重复读取的意思
遇到文件结束符停止线程:当文件的所有数据读取完毕后,是否停止线程的意思
线程共享模式:指线程与线程之间的通信模式,主要有3种
所有线程:所有线程共享CSV读取出来的数据
当前线程组:只有当前线程组共享CSV读取出来的数据
当前线程:每个线程独立获取CSV读取出来的数据
案例一:加载CSV数据文件入门案例
把CSV配置文件的数据加载到JMeter中,并保存变量为username,使用调试取样器验证结果
第一步:先定义一个txt文件
第二步:修改txt文件的后缀名为.csv
第三步:编辑.csv文件,增加一列username,username下面第二行、第三行等填写数据
第四步:使用JMeter CSV加载这个文件,设置变量为username
第五步:添加调试取样器,查看结果树,并运行查看调试取样器中的边拉你个,有没有CSV设置的变量
案例二:多列CSV数据,指定多个变量
把有多列CSV配置文件的数据加载到JMeter中,并保存变量为username,password,age,使用调试取样器验证结果
案例三:分隔符对读取数据的影响
jmeter读取外部文件的数据时,会按照分隔符切分数据,
切分的第一列,给变量名称中的第一个变量
切分的第二列,给变量名称中的第二个变量
切分的第三列,给变量名称中的第三个变量
依次类推
如果分割符指定错误,那么会导致JMeter把所有数据都放在第1个变量名称当中
案例四:忽略首行对读取数据的影响
没有忽略首行
忽略首行
案例五:是否允许双引号演示
CSV配置文件中,有多行数据,有的有双引号,有的没有,查看允许/不允许双引号带来的结果
设置为True:会自动去除双引号
设置为False:不会自动去除双引号
如果要读取多行数据:可以通过循环或者线程数来读取:
第一次循环读取第一行数据
第二次循环读取第二行数据
在循环次数为1时,第1个线程读取第1个数据
在循环次数为1时,第2个线程读取第2个数据
不推荐循环次数和线程数都设置更大的数据,要么线程数为1,要么循环次数为1,因为如果循环次数为3,线程数为3,很难区分数据是在线程中读的,还是循环中读取的。
案例六:线程共享模式的区别演示
JMeter CSV配置元件本质上只能通过循环来读取每一行数据:
第1次循环读取第一行数据
第2次循环读取第二行数据
…
第n次循环读取第N行数据
为什么用线程,也能达到同样的效果,这是因为我们选用了所有线程的共享模式
所有线程的效果: CSV加载的数据,对所有线程都生效,那么如果第一个线程读取了1个数据,第2个线程就能从第2个数据开始读,依次类推
当前线程组的效果:当前线程组当中的,所有线程,能够依次读取数据
当前线程的效果:使用线程无法依次读取数据,只能通过循环读取CSV文件中的数据。
案例七:使用CSV配置文件准备20个用户,实现注册20个用户
该案例主要用来演示构造测试数据
第一步:新增txt文本文档
第二步:把文本文档改成csv
第三步:使用wps打开它
第四步:构造20个用户
第五步:使用JMeter完成测试平台注册接口,并参数化
第六步:单线程循环20次,查看结果
三、JMeter CSV配置文件准备测试数据,实现数据驱动测试
第一步:新增txt文本文档
第二步:把文本文档改成csv
第三步:构造测试数据
第四步:使用JMeter完成测试平台登录接口,并参数化
第五步:单线程循环N次,查看结果
四、总结
- 通过用户定义的变量,让配置变得层次清晰
- 通过用户参数,能够解决3个线程进行并发测试时,每个线程使用不同数据请求的场景
- 通过CSV配置元件,能够进行数据驱动测试