性能测试之基础篇
一、灵魂八问!!!
- 什么是软件性能?
- 两个方面:响应时间,及时处理能力
- 什么叫性能测试?
- 指被测系统,在一定的负载下运行,监控系统的各项指标,是否符合需求(指标,指的CPU,内存,事务响应时间,等)
- 什么样的系统需要做性能测试?
- 用户多,存在大并发场景系统
- 如何做性能测试?
- 项目性能调研、业务需求分析、性能测试方案,脚本编写,场景覆盖、负载、压力、测试结果分析、报告产出
- 如何定位性能根源,性能的瓶颈究竟在哪里?
- 服务器:在日志里打印代码的处理时间,
- 数据库:打开慢查询,设置时间阈值,打印处理时间超过阈值的sql。
- 最直接的表现:用户态的CPU会很高
- 性能测试目的
- 验证系统的处理能力、识别系统的性能瓶颈、保证系统的可靠性及稳定性(一定并发数12小时左右
- 如何提升性能?
-业务策略优化、根据监控提升硬件短板、优化架构、优化代码逻辑、优化sql语句 - 性能测试需要做哪些准备?
- 千兆交换
- 8G 16C
- 造数据-单表20-40W起步
二、软件性能关注是多层面的.
2.1、用户角度:系统的响应时间
- 响应时间==网络时间+服务器处理时间
2.2 管理人员的性能关注点
- 应用服务器、数据库服务器:资源利用率
- 支撑多少用户、最大并发数:系统容量
- 是否更换硬件、优化代码、优化sql:已经测试现有的支撑用户数
- 7*24小时持续处理业务(9999):稳定性、可靠性
2.3 开发人员的性能关注点
- 架构是否合理
- 数据库设计
- 代码逻辑
- 线程、死锁,资源释放
2.4 测试人员呢?
三、性能测试的方式
3.1、负载测试
定义:50-100-200系统上不断增加压力,直到响应时间或TPS达到一个拐点
特点:
- 找系统处理处理能力的极限
- 该方法需要在指定测试环境下运行,通常需要考虑被测系统的业务压力量和典型的业务场景
- 一般来了解系统的性能容量、配合调优
3.2、压力测试
负载一定的压力(比如100并发)持续运行一段时间比如(7*24小时)验证系统的稳定性
3.3 性能测试的工具选择:jmeter ,LR,PTS
四、性能测试的术语
4.1、并发
并发分为狭义和广义两类
- 狭义:用户在同一时间内做同一事情
- 广义:用户在同一时间做不同事情
灵魂一问:实际项目的性能测试如何并发场景设计?
- 先狭义(单接口)在广义(混合场景)
灵魂在问:为什么要先单场景接口测试?
- 更好的定位问题,发现问题
灵魂追问:为什么要混合场景测试?
- 贴合用户场景,验证系统的稳定性,多各关联接口时会不会出现新的问题?
4.2、并发用户数
- 系统用户数:注册用户数,存在一定的僵尸用户
- 在线用户数:登录系统的户数,状态时在线,但不一定对服务器产生压力
- 并发用户数:对服务器产生压力的用户
惊魂一问:如何获取并发用户数?
老系统:可选取高峰时刻,在一定时间内使用系统的人数,这些人数可认为是在线用户数,并发用户数可以取10%
新系统:业务部门探讨,竞品,经验。
4.3 事物
- 事物是性能脚本中的一个重要特性,要度量服务器的性能,需要定义事物,每个事物都需要事物开始,事物结束标志,事物用来衡量脚本中一行代码或多行代码执行所需要的时间
- 例如:访问一个网站,可以把首页当成一个事物,可以把登录当初一个事物,也可以把登录+首页当成个事物。
4.4 响应时间
发出请求的时间、网络传输的时间、服务器处理时间的和
问一问:响应时间==用户感受时间么?
4.5 TPS
定义:单位时间内系统处理事物的数据。衡量系统处理能力的,非常非常重大的指标
惊魂再问:如何获取系统TPS峰值
- 已有系统:可选取高峰时刻,在一定时间内(如3-10分钟),获取系统总业务量,计算单位时间(秒)内完成的笔数,乘以2-5倍作为峰值的TPS, 例如:峰值3分钟内处理订单18万笔,平均TPS是1000,峰值TPS可以是2000-5000。
- 新系统:与业务部门商讨,竞品、经验
灵魂再问:QPS、RPS呢?
4.6 吞吐量
不严格意义来说就是TPS,跟TPS和并发数密切相关
TPS = 并发数/平均响应时间
4.7 点击率
- 客户端单位时间发起的请求数
- 衡量客户端性能的
点击率==并发数??
4.8 资源利用率
定义:指系统资源的使用程度,比如服务器的cpu、内存、磁盘、贷款等利用率
- CPU:主要进行判断和处理,能够反映系统的繁忙程度、一般分为系统CPU(%sys)、用户CPU(%user)、系统CPU是指系统本身使用的资源、用户cpu是指应用程序所使用的资源,对象不同
- Load Average:指一段时间内cpu正在处理或等待cpu处理的任务,也就是cpu使用队列的长度的统计信息。
- Memory:储存数据,从内存中读取必从磁盘上读取快
- 队列:可以理解位地铁战的排队情况
- 网络:重点关注网络的流量,看是否存在带宽瓶颈