目录
一、JMeter的关联
1.1.作用
当多个请求之前有依赖关系,后一个请求的参数需要使用前一个请求的相应数据时,需要用到关联
1.2.常用的关联方法
1).正则表达式提取器
2).XPath提取器
3).JSON提取器
1.3.正则表达式提取器
1).添加
线程组-HTTP请求-后置处理器-正则表达式提取器
2).配置
2.1).要检查的响应字段:默认主体
2.2).引用名称:匹配后的数据要存储的变量名
2.3).正则表达式:<title>(.*?)</title>0里是要保存的数据
2.4).模板:$1$
数字1代表上面正则表达式中第几个()
2.5).匹配数字:0代表随机值、1代表第一个结果、-1代表所有结果
2.6).缺省值:当没有匹配上时该值保存到变量里
3).使用
3.1).如果匹配数字为1,则直接使用变量名来使用:${变量名}
3.2).如果匹配数字为-1,则使用变量名+后缀的方式来使用:${变量名}
1.4.XPath提取器
1).添加
线程组--HTTP请求-后置处理器--XPath处理器
2).配置
2.1).引用名称:匹配后的数据要存储的变量名
2.2).Xpath path:xpath匹配规则
2.3).匹配数字:1代表第一个结果,-1代表所有结果,0表示随机
2.4).缺省值:当没有匹配上时该值保存到变量里
1.5.JSON提取器
1).添加
线程组——HTTP请求-—后置处理器——JSON提取器
2).配置
2.1).引用名称匹配后的数据要存储的变量名
2.2).JSONpath:json路径。$.weatherinfo.city
3).引用
直接引用变量名即可
二、JMeter的直连数据库
2.1.前置工作
1).打开数据库,确定数据库的表及对应的字段
2).加载mysql的jdbc驱动
2.1).方法一:将jdbc驱动通过测试计划,浏览的方式添加
2.2).方法二:将jdbc驱动jar包放入到lib\ext目录下,并重启jmeter
3).配置jdbcconnectionconfiguration
3.1).createdpoolname:给连接池命名,用于后续引用
3.2).数据库URL:jdbc:mysql://127.0.0.1:3306/tpshop2.0
3.3).用户名
3.4).密码
2.2.使用
1).添加JDBCRequest:在取样器下添加
2).配置
2.1).配置连接池的名称
2.2).配置SQL语句
2.3).配置保存的变量名
如果SQL语句返回多个参数,输入相同个数的变量名来保存
3).HTTP断言中,就可以引|用变量来进行判断
三、JMeter的逻辑控制器
3.1.作用
逻辑控制器可以按照设定的逻辑控制取样器的执行顺序
3.2.常用的逻辑控制器
1).如果(if)控制器
2).循环控制器
3).ForEach控制器
3.3.IF控制器
1).添加
线程组--逻辑控制器--if控制器
2).配置
2.1).使用js语法:"${name}" =="baidu"
2.2).使用jmeter函数的方式:${jexl3("${name}”=="baidu",)}
2.3).推荐使用函数的方式
3.4.循环控制器
1).作用
指定HTTP请求执行特定的次数
2).添加
线程组--逻辑控制器--循环控制器
3).配置
次数
4).循环控制器中的循环次数配置m与线程组中的循环次数n配置对比:
4.1).关系:如果同时配置,循环控制器下HTTP请求实际的执行次数应该是m*n
4.2).区别:这两个循环次数作用域不同
3.5.ForEach控制器
1).作用
与用户定义的变量或者正则表达式提取器配合使用,循环读取返回的变量中的值,执行一次或者多次
2).添加
线程组--逻辑控制器--ForEach控制器
3).配置
3.1).用户定义的变量
变量名:固定前缀+连续数字
3.2).ForEach控制器
1.变量前缀:用户定义的变量中配置的固定前缀
2.起始数字:连续数字的最小值-1
3.结束数字:连续数字的最大值
4.输出变量名称:依次读取变量值后存储到参数中,供HTTP请求来引用
3.3).HTTP请求
引用输出的变量名称
4).与正则表达式配合使用
4.1).先通过正则表达式提取器,提取出请求中所有满足条件的数据
4.2).添加ForEach控制器,并配置提取所有满足条件的数据,并保存为变量
4.3).在其子节点下,添加HTT正请求并引I用变量,即可循环读取正则表达式中匹配的所有数据