一、性能测试
1.1 性能测试基础
1.1.1 性能测试本质
基于协议模拟用户发出请求(业务的模拟),对服务器形成一定的负载,来测试服务器的性能指标是否满足要求
- 关注时间性能(响应时间)、空间性能(CPU、内存、磁盘等)
- 与界面无关
界面是浏览器解析形成的
注意:
- 性能测试基于协议,而自动化基于用户行为
1.1.2 性能测试分类
➢ 性能测试(狭义)
对系统性能已经有了了解的前提,并对需求有明确的目标,并在已经确定的环境下进行的
➢ 负载测试
对一个系统持续不断的加压,看你什么时候已经超出“我的要求”或系统崩溃
➢ 压力测试(强度测试)
让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题
➢ 容量测试
➢ 配置测试
关注点是“微调”,通过不断对软硬件的调整,找出他们的最佳状态,使系统达到一个最强的状态
➢ 并发测试
多个用户同时(并发)对一个模块或操作进行加压
➢ 可靠性测试
一般3x24h
关注点是“稳定”,不需要给系统太大的压力,只要系统能够长期处于一个稳定的状态
1.1.3 理发店模型与性能指标
平台 | 下载地址 |
---|---|
文档 |
https://www.lanzous.com/i63vtaj云
|
扩展服务器(硬件层面)
优化服务
优化程序(代码)
1. 用户数
并发用户数:在同一时间向服务器发送请求的用户数量
提示:
- 并发请求数不是并发用户数,注意需求,一般看并发请求数
2. 响应时间
-
公式
==>网络传输时间+服务器处理时间
- 发出请求->服务器处理请求->返回响应数据的时间
不包括到前端页面渲染的时间,到浏览器收到请求后响应数据截至 - 原则
2-5-8(2s、5s、8s)
优秀、良好、较差
tuitu
3. tps、hps、吞吐量
名称 | 说明 |
---|---|
tps | 单位时间事务数(transaction per second) |
hps | 单位时间请求数(hits per second) |
吞吐量 | 描述服务器的处理能力 |
4. 资源利用率
在一定负载情况下,服务器资源占用情况
资源利用率太小,也会造成资源浪费问题
名称 | 说明 |
---|---|
CPU利用率 | 不允许超过70%-80% 队列长度 |
Mem利用率 | 80%以下 虚拟内存(页交换频率) |
带宽利用率 | 100Mbps=12.5MB/s 1Byte=8bit 1字节=8比特 |
1.2 性能测试流程
1.2.1 需求分析
1. 测试对象
- 常用的
- 核心的、重要的
- 数据量、并发量
eg:
登录、注册、购物车、下订单
2. 确定性能指标
- 吞吐量、tps
- 响应时间
- 用户数
- 资源利用率
eg:
-
[(200000000/300)*0.8/(24*0.2)]/3600=30个/秒左右
平均:200000000/300/24/3600=7个/秒左右 -
平均负载:5000000/8/3600=174左右
2-8原则:[5000000*0.8/(8*0.2)]/3600=694左右
2-8原则的结果是平均负载的4倍(0.8/0.2=4)
提示:
- 2-8原则
80%的用户请求集中在20%的热点数据上或时间段
3. 测试场景
- 单一场景
eg:
登录、注册等
- 混合场景
用户使用场景
系统使用场景
1.2.2 测试计划
- 测试目标
- 测试人员组织
- 压测进度安排
- 压力机(负载机、测试机)
配置、要求、数量
只有测试工具软件,没有其他软件在里面
- 风险
1.2.3 测试方案
1. 测试工具
LoadRunner、Jmeter
2. 测试环境
- 数据库
- 服务器
- 架构设计
有条件的情况下尽量和生产环境一致
2. 测试策略
- 单一场景
- 混合场景
2. 监控工具
- Linux
nmon、rpc、jvisual Vm、Spotlight - Windows
Spotlight、perfmon.exe(自带)
1.2.4 用例设计
- 测试脚本:基于脚本的用例
eg:
- 场景设计:基于场景的用例
eg:
1.2.5 测试执行
1. 脚本编写
2. 场景监控设计
3. 运行场景
4. 监控场景
5. 测试报告
1.2.6 定位分析问题
1. 后端
服务器端
- 代码
- 软件(数据库、应用服务器)
- 硬件
2. 前端
3. 网络
1.3 工具介绍——LoadRunner
1.3.1 说明
- LoadRunner需要管理员权限,而家庭版windows无管理员权限,所以操作系统必须是专业版、旗舰版等有管理员权限的Windows,家庭版的不可以使用
- LoadRunner是商业版软件,高版本完全破解很困难,所以学习使用的话选择11破解版本就可以了
- LoadRunner只能安装在Windows中,但只有其中的Load Generator(压力机——只能运行脚本)可以装在Linux下
- LoadRunner安装时需要关闭杀毒软件和防火墙
平台 | 说明 |
---|---|
云 |
https://pan.baidu.com/s/1iW5ghOOilEMnJ_jrftSwCQlgsc
|
许可证 | 支持65000个并发用户数AEACFSJI-YJKJKJJKEJIJD-BCLBR
|
参阅:
网友评论