一,基础概念
JMeter参数化:
- 参数化就是动态的设置并获取数据
- 参数化就是程序替代人工获取并设置数据,更加高效和安全
JMeter中可以参数化的组件:
CSV Data Set Config
:功能强大、适应各种迭代及多参数复杂场景用户参数
:适应传递少量参数时使用用户定义的变量
:和用户参数使用场景相似,不同在于一般做全局变量使用函数
:功能强大,函数类型多,灵活度大,适应各种应用场景
最常用的是CSV + 函数
- CSV和用户参数使用思想一样,用户参数流程更简单,但是数据量大的话,CSV更方便
- 用户定义的变量一般用来存储全局的变量,使用较少
- 函数实现更灵活,内置很多实现
二,组件简介
1、CSV Data Set Config(最常用)
执行一次,将多条数据插入
CSV的思想:
CSV的实现流程:
举个栗子
新建一个CSV Data Set Config:
配置一下:
新建一个数据文件:
新建一个请求提取器:
在JMeter中变量的引用方式:${变量名}
也可以把参数化变量填写在:
设置一下线程的循环数,下图选择的永久运行:
最后添加一个查看结果树,点击运行:
注
这两个的逻辑关系:
1,Recycle on EOF? :是否循环读取,默认值True
2,Stop thread on EOF?:数据读完是否停止线程
1,Recycle on EOF? 选择为True时,Stop thread on EOF?不管选择 T 还是 F 都没用,线程还是一直循环,这时候控制什么时候结束的是其他方面设置的循环次数和时间
2,Recycle on EOF? 选择为False时,Stop thread on EOF?选True时,设置的循环次数为6时,实验参数就5组,那么只会请求5次。(设置线程数为6也一样,大于参数了)
3,Recycle on EOF? 选择为False时,Stop thread on EOF?选False时,设置的循环次数或者线程次数大于参数时,线程数6,参数5,超过部分参数读取错误:
2、用户参数
实现思想(和CSV类似)
1)将数据设置进第三方,然后循环读取数据
2)和CSV区别是将数据设置进外部的文本文档,而用户参数是将数据设置进Jmeter内置组件
3)几个用户循环几次,填的是线程数,用户数
举个栗子:
新增一个用户参数:
新增一个请求:
设置一下线程数:
执行结果:
3、用户变量
执行结果:
4、函数
需求:循环N次查询,给每次查询标上顺序数字
函数是程序中最基本的封装单元,封装一些常用功能
打开函数弹框:
函数的选择:
1,第一个空行填的TRUE和FALSE的作用:T两个线程数(用户)一个人一个计算器,F两个人共一个计算器
2,第二个空行不用填
3,点击下图生成按钮,需要的函数就生成了
直接负责生成的函数就可使用:
设置循环数为3,执行结果为:
设置线程数为3,执行结果为:
因为选择的是TRUE,一个用户(线程)用一个计数器,所以3个请求都是1