LoaderRunner 第一天
1.1 性能测试基础
服务器端性能测试
1.1 什么是性能测试的本质
- 基于协议模拟用户发出请求(业务的模拟), 对服务器形成一定的负载,来测试服务器的性能指标是否满足要求.
- 时间性能
- 空间性能
- 与界面无关
1.2 性能测试分类
性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求.通俗的说就是要在特定的运行条件下验证系统的能力状态
特点:
- 这种方法的主要目的是验证系统是否有系统宣称具有的能力
- 这种方法要事先了解被测试系统经典场景,并具有确定的性能目标
- 这种方法要求在已经确定的环境下运行
1.2.1 负载测试
通过在被测系统上不断加压,直到性能指标达到极限,例如"响应时间"超过预定指标或某种资源已经达到饱和状态
特点:
- 这种性能测试方法的主要目的是找到系统处理能力的极限
- 这种性能测试方法需要在给定的测试环境下进行,通常也需要考虑被测是系统的业务压力量和典型场景,使得测试结果具有业务上的意义
- 这种性能测试方法一般用来了解系统的性能容量,或是配合性能调优来使用
也就是说,这种方法是对一个系统持续不断的加压,看在什么时候已经超出"我的要求或系统崩溃"
1.2.2 压力测试(强度测试)
压力测试方法测试系统在一定饱和状态下,例如 cpu,内存在饱和使用情况下,系统能够处理的会话能力,以及系统是否会出现错误
特点:
1.这种性能测试方法的主要目的是检查系统处于压力性能下时,应用的表现.
2.这种性能测试一般通过负载等方法,使得系统的资源使用达到较高的水平
3.这种性能测试方法一般用于测试系统的稳定性
也就是说,这种测试是让系统处在很大强度的压力之下,看系统是否稳定,哪里会出问题
1.2.3 并发测试
并发测试方法通过模拟用户并发访问,测试多用户并发访问同一个应用,同一个模块或者数据记录时是否存在死锁或者其他性能问题;
特点:
- 这种性能测试方法的主要目的是发现系统中可能隐藏的并发访问时的问题
- 这种性能测试方法主要关注系统可能存在的并发问题,例如系统中的内存泄露,现成和资源争用方面的问题
- 这种性能测试方法可以在开发的各个阶段使用需要相关的测试工具的配合和支持
1.2.4 配置测试
配置测试方法通过对被测系统的软\硬件环境的调整,了解各种不同对系统的性能赢下给的程度,从而找到系统各项资源的最优分配原则
特点:
- 了解各种不同因素对系统性影响的程度,从而判断出最值得进行的调优操作
- 对系统性能状况有初步了解后进行
- 用于性能调优和规划能力
1.2.5 可靠性测试
在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定
特点:
- 检验是否支持长期稳定运行
- 在压力下持续一段时间的运行(2~3天)
- 测试过程中需要关注系统的运行状况
1.3 性能测试指标
1.3.1 响应时间
WT: Web Server Time
AT: App Server Time
DT: Database Time
公式:网络传输时间+服务器处理时间
N1+N2+N3+N4+N5+N6+WT+AT+DT
不包含前端页面渲染时间,到浏览器受到请求后响应数据截止
1.3.2 tps
tps: 每秒处理的事务数 (transaction per second)
hps: hits per second
吞吐量:描述的时服务器的处理嫩里 Throughput
1.3.3 资源利用率
- 在一定的负载情况下,服务器资源占用情况
- CPU 利用率
- 不允许超过70-80%
- 队列长度
- Mem (内存)利用率
- 80%以下
- 页交换频率-物理内存和虚拟内存之间交换的频繁程度
- 带宽利用率
- 100 Mbps=12.5 MB/s
- 1 Byte(字节) = 8 bit(比特)
- 100 Mbps
- 如果资源利用率太小,造成资源浪费
1.3.4 用户数
并发用户数:
- 在同一时间向服务器发送请求的用户数量
- 与每秒的并发请求数不同,一定要确认需求的目的时并发用户数还是并发请求数.
理发案例: 同时进店理发顾客数-> 并发用户数
从进店到完成理发时间-> 响应时间
- 总结: 理发店类似服务器运行的程序
- 顾客: 从客户端发来的请求
- 由多个浏览器同时发送到服务器的任务:并发用户
- 服务程序处理一个浏览器请求的时间:平均事务响应时间,特点:随着并发用户的增加而增加
- 单位时间内服务程序完成客户端请求的数量->单位事务数
- 随着并发用户的增加而增大,当并发用户数量达到一定量后不再增加
2 性能测试流程
2.1 需求分析
2.1.1测试对象
- 常用的
- 核心的,重要的
- 数据量,并发量
2.1.2 确定性能指标
2.1.2.1 吞吐量,TPS-服务器每秒处理请求数量
2.1.2.2响应时间
- 从浏览器发出请求,服务器处理,受到响应所需要的处理时间
2.1.2.3 用户数
2.1.2.4 资源利用率
2.1.2.5 例子1:要求每天完成交易额2亿
- 客单价:
- 200-500-以300计算
- 采用28定律换算得出,以24小时计算
- 求每秒钟最大交易数-大概每秒最大交易数30个(如使用平均会小很多)
- 2/8原则:80%的用户请求,集中在20%的热点数据上,或时间段;
2.1.2.6 例子2: 每天8小时系统支持500万用户访问
- 先分析流量分布,再根据2/8定律估算每秒请求: 5000.8(80%用户访问量)/1.6小时(8小时20%)/3600秒=694次. (计算得出服务器需要支持694次,每小时的平均负载4)
- 500万再8小时内完成,500万/8*3600,(一般