JMeter参数化(6)

作用:
通过参数化来集中管理配置和测试数据
通过参数化实现数据驱动测试

一、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次,查看结果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、总结

  1. 通过用户定义的变量,让配置变得层次清晰
  2. 通过用户参数,能够解决3个线程进行并发测试时,每个线程使用不同数据请求的场景
  3. 通过CSV配置元件,能够进行数据驱动测试

猜你喜欢

转载自blog.csdn.net/YZL40514131/article/details/131353734