一、Jmeter目录文件讲解
bin:核心可执行文件,包含配置
jmeter.bat: windows启动文件:
jmeter: mac或者linux启动文件:
jmeter-server:mac或者Liunx分布式压测使用的启动文件
jmeter-server.bat:mac或者Liunx分布式压测使用的启动文件
jmeter.properties: 核心配置文件
extras:插件拓展的包
lib:核心的依赖包
ext:核心包
junit:单元测试包
二、Jmeter语言版本中英文切换
1、控制台修改
menu -> options -> choose language
2、配置文件修改
bin目录 -> jmeter.properties
默认 #language=en
改为 language=zh_CN
三、Jmeter基础功能组件介绍线程组和Sampler
1、添加->threads->线程组(控制总体并发)
线程数:虚拟用户数。一个虚拟用户占用一个进程或线程
准备时长(Ramp-Up Period(in seconds)):全部线程启动的时长,比如100个线程,20秒,则表示20秒内100个线程都要启动完成,每秒启动5个线程
循环次数:每个线程发送的次数,假如值为5,100个线程,则会发送500次请求,可以勾选永远循环
2、线程组->添加-> Sampler(采样器) -> Http (一个线程组下面可以增加几个Sampler)
名称:采样器名称
注释:对这个采样器的描述
web服务器:
默认协议是http
默认端口是80
服务器名称或IP :请求的目标服务器名称或IP地址
路径:服务器URL
Use multipart/from-data for HTTP POST :当发送POST请求时,使用Use multipart/from-data方法发送,默认不选中。
3、查看测试结果
线程组->添加->监听器->察看结果树
用于查看执行结果
四、Jmeter的断言基本使用
1、增加断言: 线程组 -> 添加 -> 断言 -> 响应断言
apply to(应用范围):
Main sample only: 仅当前父取样器 进行断言,一般一个请求,如果发一个请求会触发多个,则就有sub sample(比较少用)
要测试的响应字段:
响应文本:即响应的数据,比如json等文本
响应代码:http的响应状态码,比如200,302,404这些
响应信息:http响应代码对应的响应信息,例如:OK, Found
Response Header: 响应头
模式匹配规则:
包括:包含在里面就成功
匹配:响应内容完全匹配,不区分大小写
equals:完全匹配,区分大小写
2、断言结果监听器: 线程组-> 添加 -> 监听器 -> 断言结果
里面的内容是sampler采样器的名称
断言失败,查看结果树任务结果颜色标红(通过结果数里面双击不通过的记录,可以看到错误信息)
3、每个sample下面可以加单独的结果树,然后同时加多个断言,最外层可以加个结果树进行汇总
五、Jmeter实战之压测结果聚合报告分析
新增聚合报告:线程组->添加->监听器->聚合报告(Aggregate Report)
lable: sampler的名称
Samples: 一共发出去多少请求,例如10个用户,循环10次,则是 100
Average: 平均响应时间
Median: 中位数,也就是 50% 用户的响应时间
90% Line : 90% 用户的响应不会超过该时间 (90% of the samples took no more than this time. The remaining samples at least as long as this)
95% Line : 95% 用户的响应不会超过该时间
99% Line : 99% 用户的响应不会超过该时间
min : 最小响应时间
max : 最大响应时间
Error%:错误的请求的数量/请求的总数
Throughput: 吞吐量——默认情况下表示每秒完成的请求数(Request per Second) 可类比为qps
Received KB/Sec: 每秒接收数据量
Send KB/Sec: 每秒发送数据量
六、自定义变量和CSV可变参数实操
1、Jmeter用户自定义变量实战
线程组->add -> Config Element(配置原件)-> User Definde Variable(用户定义的变量)
引用方式${XXX},在接口中变量中使用
2、Jmeter实战之CSV可变参数压测
实战操作jmeter读取CSV和Txt文本文件里面的参数进行压测
线程组->add -> Config Element(配置原件)-> CSV data set config (CSV数据文件设置)
3、CSV文件多参数使用
在读取的配置文件里面,同时使用多个自定义参数
如果是多个参数需要同时引用,则在CSV数据文件里面设置加多个字段
Variabled names(comma-delitited): csv_name,csv_pwd
七、Mysql数据库压测实操作
1、Jmeter压测实战之JDBC request压测Mysql讲解
简介:讲解jdbc压测mysql相关准备工作,jar包添加,配置讲解
Thread Group -> add -> sampler -> jdbc request
jar包添加 mysql-connector-java-5.1.30.jar
JDBC connection Configuration 配置
JDBC request->add -> config element -> JDBC connection configuration 核心配置
Max Number of connections : 最大连接数
MAX wait :最大等待时间
Auto Commit: 是否自动提交事务
DataBase URL : 数据库连接地址 jdbc:mysql://127.0.0.1:3306/blog
JDBC Driver Class : 数据库驱动,选择对应的mysql
username:数据库用户名
password:数据库密码
2、Jmeter压测实战之JDBC request压测Mysql, select语句
使用jmeter压测mysql,select,insert语句
Debug Sampler使用(结果树中查看)
Thread Group -> add -> sampler -> debug sampler:用户查看调试结果
参数讲解:(sql结尾不要加";")
variable name of pool declared in JDBC connection configuration(和配置文件同名)
Query Type 查询类型
parameter values 参数值
parameter types 参数类型
variable names sql执行结果变量名
result variable names 所有结果当做一个对象存储
query timeouts 查询超时时间
handle results 处理结果集
1.Query Type = Select Statement 简单的查询语句
select userid from t_userinfo where mobilenum='13500000001'
2.Query Type =Prepared Select Statement 预编译
select userid from t_userinfo where mobilenum=?
这时parameter values需要传入对应的参数值,parameter types传入参数的数据类型
3.Query Type = Update Statement 更新语句
update t_userinfo set name='张三' where mobilenum='13500000001'
(insert语句同理)
4.Query Type = Prepared Update Statement 预编译更新语句
update t_userinfo set name=? where mobilenum='13500000001'
(insert语句同理)
八、正则表达式
"data":"1112222333","msg":""OK
正则表达式提取1112222333,结果:"data":"(.*?\d)","msg"
左边界"data":
右边界,"msg"
"(.*?\d)"括号里\d+为正则表达式
正则表达式:
():括起来的部分就是要提取的。
*:匹配0次或更多次
.:匹配任何字符串。
+:一次或多次。
?:匹配0次或者1次
九、逻辑控制器