第五单元、性能测试
1.什么是性能测试
通过自动化的测试工具模拟系统正常、异常、峰值的场景对系统的各项性能指标测试
2.什么是性能
时间:系统处理用户请求的响应时间
资源:系统运行过程中,系统资源的消耗情况
3.为什么进行性能测试
1.评估当前系统的能力
2.评估软件是否满足未来的需要
3.寻找性能瓶颈,优化系统性能
4.招聘需要
4.性能测试的分类
1.基准测试
单用户测试/建立基准线,当系统软硬件环境发生变化之后
再进行一次基准测试以确定变化对性能的影响。
2.负载测试
增加系统负载,在满足性能指标的情况下,找出系统所能承受最大负载量的测试
3.稳定性测试
服务器稳定运行的情况下进行长时间测试并最终保证服务器能满足线上业务需求
4.压力测试
在强压下,查看系统是否具有良好的容错能力和修复能力
5.并发测试
在极短时间内,发送多个请求,验证服务器对并发的处理能力
5.性能测试的指标
1.响应时间 2s 5s 8s
客户端发送请求开始,到客户端接收到结果的总时间
服务器处理时间+网络传输时间
2.并发用户数
某一时刻同时向服务器发送请求的用户数
3.吞吐量
单位时间内处理客户端的请求数量,直接体现软件系统的承载能力。
4.QPS
每秒查询数,即控制服务器每秒处理的指定请求的数量
5.TPS
每秒事务数,即控制服务数每秒处理事务请求的数量
6.点击数
所有页面元素的请求总数量
7.错误率
系统在负载情况下,失败业务的概率
8.资源利用率
系统各种资源的使用情况 率=资源使用率/总资源可用率*100%
常见资源指标:
CPU使用率:不高于75%-85%
内存大小使用率:不高于80%
磁盘IO(速率):不高于90%
网路(速率):不高于80%
9.业务成功率
多用户对某一业务发送操作的成功率
Jmeter
6.jmeter的作用
1.接口测试 面试说postman,因为方便好用。
2.性能测试 jmeter,也可以用postman(runner),但是没有性能指标
3.数据库测试
7..线程组是什么?
概念:性质相同的线程放在一个组内
线程组包含线程数、准备时长、循环次数
1.线程数:虚拟用户数
2.准备时长:启动所有用户的时间
3.循环次数:每个线程发送请求的次数
8.jmeter主要组件
1.测试计划
2.线程组:性质相同的一组线程(线程数、准备时间、循环次数)
3.采样器:HTTP
协议、主机地址、端口号(选填)、请求方法、路径、编码格式(选填)、参数
4.监听器:采集测试结构
察看结果树、用表格查看、聚合报告
5.循环控制器
6.事务控制器
事务:多个操作组合
作用:
7.固定定时器
作用:控制两个采样器的间隔
8.断言
1.Json断言:判断某个key对应某个value
2.响应断言:响应中包含某个串
9.前置处理器和后置处理器
9.参数化
1.用户自定义变量:
作用:提供全局变量,方便修改
使用:配置元件 → 用户定义的变量 → key value → ${key}
2.CSV data set config
配置文件:
添加元件:CSV data set config → 选中文件 → 编码 → 字段1,字段2
在采样器界面:添加参数 → 调用${字段名称}
3.CSV函数小助手
工具 → 函数小助手 → 选择CSV Read → 复制文件路径 → 字段编号 → 生成 → 自动复制,过去粘贴
10.接口依赖
正则语法:* + ? . ()
实现:
①添加HTTP请求,使用正则提取一个需要字段
②在第一个HTTP请求里边调用字段${字段}
第六单元 jmeter脚本录制和压测
1.什么是脚本录制
在进行测试的时候,可能有好多脚本或者界面需要操作测试,并且有些测试链接需要重复多线程高并发进行测试,我们一般会针对这一些操作,进行一个脚本录制,录制好之后,之后测试就可以在这个基础上进行测试。
2.脚本录制方式
web端:badboy脚本录制
app端:使用Jmeter自带的代理服务器进行脚本录制
3.Android手机端脚本录制
1.同网
2.添加http代理服务器
3.在线程中添加录制控制器
4.在http代理服务器中指定录制脚本的路径,默认端口8888
5.查看本地的ip
6.设置移动端代理,IP和端口号
7.启动
8.打开手机app,抓取接口
4.web端脚本录制
安装badboy脚本软件→打开badboy软件→使用
第七单元 Jmeter压测
一.数据库压测
1.为什么要紧行数据库压测
不断给数据库施加压力,验证数据库处理的性能
2.如何进行数据库压测
1.jdbc配置:创建线程组→添加配置元件JDBC Connection Configuration→对数据库连接的配置进行设置→添加jdbc Request请求→运行
select statement:只支持单条查询,只支持第一条数据查询
updata statement:修改数据
Callable Statement:支持查询、修改、支持多个查询
Prepared Select Statement:类型必须为varchar**结合csv配置数据
二.1.jmeter对服务器压测(windows)
资源准备: JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目录下
操作:打开server的监听→添加监听器-jp@gc - PerfMon Metrics Collector→添加性能指标,线程组设置线程数和时间
2.jmeter对服务器压测(linux)
同上