性能测试
# 性能测试
# 认知
# 分类
- 压力测试
- 负载测试
- 并发测试
- 稳定性测试
压力测试和负载测试的区别在于前提不同,压力测试的前提是系统即将崩溃,负载测试的前提是要在满足系统指标要求下
# 使用场景
- 考试学习考试
- 直播在线会议
- 电商
- 新闻热点
- 视频网站
- 网络游戏运营
# 一些指标
# 并发用户量
同一单位进行同一操作的用户量
# 响应时间
客户端发起请求到服务端响应请求的时间
# TPS
Transaction Per Second, 每秒钟系统能够处理的事务的数量
# QPS
Queries Per Second, 每秒钟系统能够处理的查询的数量
# 吞吐量
单位时间内系统成功传输的数据量,单位通常是MB, GB
# 吞吐率
又叫Throughput, 单位时间内系统成功处理的请求数量,通常单位为(请求数量/每秒,req/s)
# JMeter入门
# 基本认知
- 测试计划
- Thread Group,线程组
- 取样器(Sampler), http 请求
- 监听器(Listener),查看结果树(View Results Tree)
- 元件-http信息头管理器,(Config Element-> Http Header Manager)
- if 控制器,
${__jexl3(表达式)}
,表达式里变量用${}
表示,${__jexl3(${userid} == 1)}
判断userid
是否等于1,这里的变量可以是测试计划,也可以是线程组的
# 注意点
# 请求地址前不加/
常见的http请求,get
,post
前的地址的ip
前不加/
, 路径第一个也不加 /
# 提交 json 数据
加个http头,值得一提的是,如果同时存在表单提交和json提交,记得分成两个线程组,或者表单选用 use multipart/form-data
https://www.cnblogs.com/liunaixu/p/12991110.html
# User Defined Variables
用户定义的变量,User Defined Variables,假设定义了一个ip
变量,那么在request中使用就是${ip}
# 连接 数据库 mysql
- 下载jar,
mysql-connector-java-xx.jar
,maven 仓库https://mvnrepository.com/ (opens new window) - 测试计划 添加jar包
- 新建 JDBC 配置,
Database URL
值是jdbc:mysql://ip:port/database_name
,JDBC Driver class
值选com/mysql/cj/jdbc/Driver
,配置数据库用户名和密码, 配置Variable Name for created pool
名可用来验证 - 新建 JDBC request, 用来验证数据配置是否正确
# 模拟多用户
线程组->县城属性(线程数,Ramp-Up,循环次数) Thread Group->Thread Properties