1、什么是性能测试
基于协议模拟用户发出请求(业务的模拟)对服务器形成一定的负载,来测试服务器的性能指标是否满足要求
2、性能测试的分类
负载测试:
通过在被测系统上不断加压,直到性能指标达到极限,例如“响应时间”超过预定指标或某种资源已经达到饱和状态
压力测试:
测试系统在一定饱和状态下,例如CPU、内存在饱和状态下,系统能够处理的会话能力,以及系统是否会出现错误
并发测试:
通过模拟用户并发访问,测试多用户并发访问同一应用、统一模块或者数据记录时是否存在死锁或者其他性能问题
配置测试:
通过对被测系统的软/硬件环境的调整,了解各种不同对系统的性能影响的程度,从而找到系统各种资源的最优分配原则
可靠性测试:
在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定
3、性能测试的指标
响应时间:网络传输时间+服务器处理时间,2-5-8(优秀-良好-较差)
Tps(Transaction Per Second):每秒处理的事务数
吞吐量:服务器的处理能力Throughput
资源利用率:在一定的负载情况下,服务器的资源占用情况
1、CPU利用率:
不允许超过70%-80%
队列长度
2、Memory利用率
80%以下
页交换频率
3、带宽利用率
100Mbps=12.5MB/s
1byte=8bit
并发用户数:
在同一时间向服务器发送请求的用户数量
与每秒的并发请求数不同,一定要确认需求的目的是并发用户数还是并发请求数
4、性能需求分析
测试对象
1、常用的
2、核心的、重要的
3、数据量、并发量
例子:
登录、注册、搜索、添加购物车、下单、支付
确定性能指标
1、吞吐量、Tps
服务器每秒处理的请求数量
2、响应时间
从浏览器发出请求,服务器处理,到收到响应数据所需要的处理时间
3、用户数
4、资源利用率
例子:要求每天完成交易额2亿
1、客单价(200-500)
以300来计算
采用2/8定律换算得出,以24小时算
2、求每秒中最大交易数
2亿/300*0.8/4.8/3600=每秒的交易单量
4.8为一天时间段的20%
3、2/8原则:80%的用户请求,会集中在20%的热点数据上或者时间段
测试场景
单一场景(登录、注册、搜索、添加购物车、下单、支付)
混合场景
1、用户使用场景
2、系统使用场景
5、性能测试计划
1、测试目标
2、测试人员组织
3、压测进度安排
4、压力机(配置、要求、数量)
5、风险
6、性能测试方案
1、测试工具
LoadRunner
Jmeter
2、测试环境
数据库
服务器
架构设计
有条件的情况下尽量和生产环境一致
3、测试策略
单一场景
混合场景
4、监控工具
Linux
nmon:服务器的性能监控
rpc:和LoadRunner结合监控
jvisualVm:主要是监控一些Java程序的
Spotlight:监控数据库方面的信息
Windows
Spotlight
Perfmon.exe(windows自带的监控工具)
7、性能测试执行
1、脚本编写
2、场景监控设计
3、运行场景
4、监控场景
5、测试报告
8、性能分析定位
1、后端:代码、软件(数据库、应用服务器)、硬件
2、前端
3、网络