性能测试概述和性能指标
性能测试概述和性能指标
1、性能测试
定义:测试系统在一定的负荷压力下,系统的响应时间、吞吐量、稳定性、可扩展性等性能指标
职责:结合架构和实现细节找出问题,并最终确认问题得到解决的过程
2、性能测试的目的
根据目的进行性能测试
瓶颈(性能) = 问题 = 缺陷 = bug = 弱点(安全)
基本目的:
验证是否达到客户的性能指标
发现软件中的瓶颈并优化
评估系统的能力:
测试中得到的负荷和响应时间数据,用于验证所计划的能力
帮助做出决策
识别体系中的弱点:
受控的负荷可以被增加到一个极端水平,并突破它
修复体系的瓶颈或者薄弱的地方
系统调优:
重复运行测试,验证调整系统的活动是否得到了预期的结果
改进性能。如:长时间的测试执行可能导致内存泄漏
验证稳定性:
在一定生产负荷下执行测试一定时间,评估系统稳定性和可靠性能否满足需求
3、不同角度的性能测试
用户:
响应时间、稳定性
管理员:
资源利用率、可扩展性、系统容量、稳定性
开发:
架构、数据库、代码、算法
测试:
性能应该全面
包括用户、并发、管理员等各个视角的性能
关注本质
3、性能测试前提
功能:OK。如果有验证码,需要把验证码去掉。
数据量:与真实环境相当
性能测试计划评审通过
4、性能测试的注意事项
评估系统的可行性
评估系统的性能指标(有时候没有明确指标,把自己想法和领导沟通)
比较多个不同系统或是不同系统配置时的性能特征
找出系统性能问题并确定问题根源
做系统性能优化
找出系统吞吐量的不同等级
5、项目验收的时候不需要找性能瓶颈,只需要满足客户需求
6、性能测试与项目
项目的总体愿景或者目的是什么
性能测试的目的是什么
性能测试的成功标准是什么
产品开发的生命周期
项目进度规划
项目预算
项目中可用的工具和环境
测试人员和团队的技能
对性能方面,担心的一些点的优先级
部署性能差的系统带来的商业影响
7、性能测试指标概念
响应时间:
对请求做出响应需要的时间,是用户感知软件性能的主要指标
apdex指标
响应时间包括:
客户端呈现时间 —- 浏览器有关 –性能测试过程中,这部分时间不用管。如果是开发浏览器或者浏览器产品,则需要关注
请求\响应数据网络传输时间 —- 网络条件
应用服务器处理时间
数据库系统处理时间
响应时间多少合理
2S(非常好),5S(可以接受),8S(客户能接受的响应上限)
用户数:
系统用户:软件系统注册的用户总数
在线用户:某段时间内访问的用户数,这些用户只是在线,不一定同时做某一件事情。在线不干事,也会消耗资源(内存)
并发用户:某段时间内同时向系统提交请求的用户数。场景不一定是同一个。网络、CPU….
并发:用于从业务角度模拟真实用户同时访问
并发数:同时访问系统的用户数。 通常在工作中说的并发就是等同于并发数
在C/S和B/S的应用,系统的性能主要由服务器决定。服务器在大量用户同时访问时,压力最大
并发分为:严格并发、广义并发:在线用户数
在确定并发用户数之前,必须先对用户的业务进行分解,分析出其中典型的业务场景(最常用、最关注的业务操作),然后基于场景获得并发用户数
常见场景:访问网站首页、登录功能、核心业务、个人中心
并发数确认满足二八原理
吞吐量:TPS
单位时间内系统处理的业务请求数。可以用:请求数/秒、页面数/秒、人数/天、处理业务数/小时、字节/秒…来衡量
对交互式应用来说,吞吐量指标反映的是服务器承受的压力,体现系统的负载能力
TPS:每秒事务数
相应时间越短,吞吐量越大
吞吐量计算:F=UV*R/T F:吞吐量,UV:虚拟用户数(并发数),R:每个虚拟用户发出的请求数,T:性能测试使用的时间
性能计数器:
描述服务器或操作系统性能的一些数据。如:内存、CPU、磁盘等资源使用率
思考时间:每个请求之间的时间间隔
Q:如何对项目进行测试
1、项目流程
2、软件测试维度:功能、性能、易用性、稳定性、可维护性、移植性