jmeter笔记
jmeter组件的执行顺序
同一组件不同层级的作用域不同
http cookie manager 能自动将请求响应中的cookie带入到下次请求中
user define varible 组件无论层级如何,所有组件都能拿到定义的变量
组件:
http request defaults :可以配置默认请求的hostname等参数
多个http request defaults 且hostname不同时,one请求以one下面的http request defaults配置的为准
固定定时器:
作用的同级请求都会延时5秒后在请求
请求组件中:勾选改选项后,可以自动解析当前请求返回结果中的其他子请求
配置原件中以manager 结尾的原件和以defaults结尾的组件区别:
同级中manager结尾的不能放多个,否则会出现错误;以defaults结尾的可以用多个
JMeter中获取属性值:
JMeter属性在测试脚本的任何地方都是可见的(全局)
JMeter中变量:参数化文件或者用户自定义变量组件等方式,均可以设置变量
User Defined Variables组件是线程共享的组件,没有层级关系和作用域的限制
JMeter中属性和变量均是大小写敏感的
Jmeter逻辑控制器:
1、simple Controller:仅提供一个组织结构控制的功能,无其他功能
2、Loop Controller: 循环控制器
3、Once only Controller:整个脚本过程中至执行一次,不管线程组上循环几次(不存在逻辑控制器嵌套的情况下)
4、For each Controller:可以和User Defined Variables组件一起使用,每次循环找一个变量,可以指定循环的起始和结束值但无法指定循环的步长。
name:输入变量前缀;1:是循环小标从1开始(不包含);3:循环结束的下标(包含);vname:输出变量名称
5、Transaction Controller:事物逻辑控制器,统计控制器下所有采样器的响应时间
6、If Controller: 判断控制器下的采样器是否需要执行(判断表达式值是否为true)
选项1:表示只判断一次,如果为true则控制器下的所有组件都执行;
选项2:表示if controller控制器下的每个控件执行的时候都去判断一遍表达式的结果是true还是false
采样器:
可以添加请求参数和上传文件
这个Listener可以测试下载文件时,将文件保存到本地
该选项可以更加真实的模拟浏览器上的请求,会吧请求css,图片等的子请求一起请求
过滤自请求中不匹配指定网址的其他请求
ip欺骗(作为ip欺骗的机子不能使用动态分配ip地址)
参数化
出自定义变量组件外,CSV Data Set Config是常用的参数化组件
csv参数为空时,默认使用<EOF>,可以修改默认值(jmeter.properties文件中修改下图属性值)
关联:
1、正则表达式提取
1、表示匹配到值后存储到改变量中
2、需要匹配的正则表达式
3、正则中匹配数据的个数,上图中2位置匹配了两个值,所以$1$表示匹配的第一个值,$2$表示匹配的第一个值;aaa表示$1$和$2$拼接的字符串
4、表示取第几个值,如果正则表达式匹配出多个满足条件的值,1表示取匹配到的第一个值。
(?s)(^.*) ——该正则表达式可以获取响应的全部内容
使用cookie Manager自动关联cookie
Jmeter函数:
BeanShell:
1、BeanShell中的一些内置变量
bsh.args[0]的值为123
Parameters的值为123 456 789
props.get("jmeter.version")表示获取jmeter.properties文件中jmeter.version的属性值
log是jmeter内置的日志对象,可以用来打印日志
BeanShell中直接引用java文件(也可以导入jar包后使用java对象)
引用.class文件
监听器:
读取excel中的文本内容,并解析为字符串时,可以使用jmeter中提供的Document工具类
jdbc connection configuration 配置数据库连接驱动
参考:https://www.cnblogs.com/istart/p/11226270.html
- Variable Name:数据库连接池的名称,我们可以有多个jdbc connection configuration,每个可以起个不同的名称,在jdbc request中可以通过这个名称选择合适的连接池进行使用。
- Database URL:数据库url,jdbc:mysql://主机ip或者机器名称:mysql监听的端口号/数据库名称, 如:jdbc:mysql://localhost:3306/test
- JDBC Driver class:JDBC驱动
- username:数据库登陆的用户名
- passwrod:数据库登陆的密码
JDBC Request
可执行sql和存储过程。
JAVA Request:
参考:https://www.jianshu.com/p/4f3290da6dc2
Tomcat监控工具:https://blog.51cto.com/xqtesting/2074513
mock请求和响应的sample
流量控制:
权重控制器:Weight Switch Controller
吞吐量控制器:
jmeter分布式:
master机上运行:Jmeter.bat
master机器上需要配置slave机器信息:
slave机上:jmeter-server.bat
对于csv Data这种参数化文件,远程机上必须要有对应的参数化文件,远程机上才可以运行
NO GUI运行Jmeter常用参数: