一、什么是性能测试
1,什么是性能?
时间:系统处理用户请求的响应时间 资源:系统运行过程中,系统资源的消耗情况
2,什么是性能测试?
使用自动化工具,模拟不同的场景,对软件各项性能指标进行测试和评估的过程。
3,什么是性能测试的目的?
评估当前系统能力 寻找性能瓶颈,优化性能 评估软件是否能够满足未来的需要
4,功能测试与性能测试
焦点不一样
功能测试:验证软件系统操作功能是否符合产品功能需求规格,主要焦点在功能(正向、逆向) 正向(功能)例如:输入正确的用户名密码,登录成功 逆向(功能)登录失败给出提示,例如:输入错误的用户名密码, 性能测试:验证软件系统是否满足业务需求场景主要焦点是业务场景的满足(时间、资源) 例如:100W人使用正确的用户名密码登录,1s内能登录成功,时间资源同时服务器的CPU使用率低于70%,内存使用率低于60等
二、性能测试的策略
1,基准测试
(1)什么是基准测试?
狭义上讲:就是单用户测试。(单用户循环多次得到的数据)广义上讲:建立基准线,当系统的软硬件环境发生变化之后再进行一次基准测试以确定变化对性能的影响。
(2)基准测试数据的用途?
基准测试不会单独存在 为多用户并发测试和综合场景测试等提供参考依据
2,负载测试
(1)概念
通过逐步增加系统负载,确定在满足系统的性能指标(如响应时间等)情况下,找出系统所能够承受的最大负载量的测试,
(2)作用
系统最大负载量达到用户要求时,系统才能正式上线使用。
3,稳定性测试
(1)概念
在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。
(2)作用
系统在用户要求的业务负载下运行达到规定的时间时,系统才能正式上线使用。
4,压力测试
(1)压力测试的概念
在强负载下的测试,查看系统在峰值情况下是否功能隐患、系统是否具有良好的容错能力和可恢复能力
(2)压力测试
极限负载情况下导致系统崩溃的破坏性压力测试 高负载下的长时间的稳定性压力测试
5,并发测试
(1)定义
并发测试(绝对并发):是指在极短的时间内,发送多个请求,服务器对并发的处理能力。
(2)应用场景
特定活动场景,如:抢红包、秒杀、抢购等。
三、性能测试的指标
1,响应时间和并发用户数
(1)为什么要学习性能测试指标?
对性能测试结果进行量化衡量
(2)什么是响应时间?
指从客户端发起请求开始,到客户端接收到结果的总时间 包括:服务器处理时间网络传输时间十
(3)什么是并发用户数?
某一时刻同时向服务器发送请求的用户数
2,吞吐量
(1)什么是吞吐量
吞吐量(Throughput):指的是单位时间内处理的客户端请求数量直接体现软件系统的性能承载能力。
(2)吞吐量单位有哪些
(3)QPS和TPS有什么关系
事务,即业务。一个事务可以对应一个请求/多个请求 一个事务对应一个请求时: TPS = QPS 一个事务对应n个请求时:QPS =n*TPS
QPS
TPS
3,点击数和错误率
(1)点击数
点击数:指客户端向服务端发送请求时,所有的页面资源元素(如:图片、链接、框架css、js等)的请求总数量。 注意: 只有web项目才有此指标,点击数不是页面上的一次点击
(2)错误率
错误率:指系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数)*100号。 注意: 大多系统都会要求错误率无限接近于0 错误率是一个性能指标,不是功能上的随机bug
4,资源使用率
资源使用率:是指系统各种资源的使用情况,一般用“资源的使用量总的资源可用量x100%“形成资源利用率的数据。。 根据经验,资源指标通常要求: (1)CPU不高于75号-85号 (2)内存不高于80号 (3)磁盘IO不高于90%(3) (4)网络不高于80%
四、性能测试的流程
1,性能测试流程分析
2,性能测试计划和方案
(1)测什么
项目背景 测试目的 测试范围
(2)谁来测
进度与分工 交付清单
(3)怎么测
测试策略
3,性能测试用例
4,性能测试执行
(1)建立测试环境
搭建性能测试环境,包括硬件环境、软件环境、网络环境提示:一般情况下可以要求运维和开发工程师协助完成
(2)编写测试脚本
按照性能测试用例的需要使用性能测试工具进行编写测试脚本提示:脚本可以自己编写也可以使用工具来录制
(3)性能测试监控
在脚本执行前,配置各项性能的监控指标。如:响应时间、TPS、错误率、资源使用率(CPU、内存、磁盘等)
(4)执行测试脚本
设置性能运行场景,执行性能测试,并同步收集各项性能指标提示:执行性能测试脚本前,保证脚本都调试通过
5,性能分析和调优
(1)说明:
性能测试分析人员经过对结果的分析以后,如果不符合性能需求,则会提出性能bug,然后由开发人员进行后续的调优。
(2)提示:
调优 - 开发人员为主导,数据库管理员、系统管理员、网络管理员、性能测试分析人员配合进行 验证 -性能测试人员继续进行第二轮、第三轮.…的测试,与以前的测试结果进行对比从而确定经过调整以后系统的性能是否有提升
6,性能测试报告
测试报告是对性能测试工作的总结,为软件后续验收和交付打下基础。
测试报告的主要内容: 测试工作的经过回顾 缺陷分析和调优 风险评估 性能测试结果 测试工作总结与改进