性能测试
1、学习目标
-
掌握jmetter工具的使用
-
学会给接口进行压测
2、为什么要学习性能测试
-
业务需求
-
大量用户下能否稳定运行
-
用于硬件服务器的选型
-
用于软件技术的选型
-
-
招聘需求
3、性能的概念
-
性能:是软件质量属性中的"效率"特性
-
效率特性
-
时间特性:系统处理用户请求响应时间
-
资源特性:系统在运行过程中,系统资源的消耗情况
-
CPU
-
内存
-
磁盘IO
-
-
4、目的
-
评估当前系统能力
-
寻找性能瓶颈
-
评估 软件是否能够满足未来的需要
5、性能测试和功能测试
-
区别
-
焦点不同
-
-
关系
-
相辅相成
-
先功能测试后性能测试
-
6、性能测试策略
-
基准测试
-
把某一个状态做为基准(一种测量和评估软件性能的活动)
-
把测试结果用来衡量其他测试的好坏
-
-
负载测试
-
不断增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能承受的最大负载量的测试
-
-
稳定性测试
-
在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试,并最终服务器能满足业务需求。时长一般为1天、一周等
-
-
其他:并发测试(极短的时间内发送多个请求)、压力测试(稳定性压力测试和破坏性压力测试)、容量测试(关注软件极限压力下的各个极限参数值)等
7、性能指标
-
指标:在性能测试的过程中,记录的一系列的数据值。用这些实际记录的数据值与需求中的性能要求做对比,达成需求要求则无问题;未达到需求要求则说明是性能bug
-
响应时间:
用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的结果,整个过程所耗费的时间
组成:响应时间 = 网络时间 + 应用处理程序
-
并发数(请求):
并发测试的用户数
并发用户数:在一个时刻同时向系统发送请求的用户数
-
吞吐量:
说明:单位时间内处理的客户端请求数量,直接体现软件系统的性能承载能力
不同维度:
-
业务维度:业务数/时间
-
网络维度:字节数/时间
-
技术维度:TPS(每秒事物数) = 并发数 / 平均响应时间、QPS(每秒请求数“不是单个接口而是全部接口”)
-
-
点击数
说明:衡量Web服务器处理能力的一个重要指标
指的是页面加载时,向服务器发送的请求数量
-
错误率
说明:系统在负载情况下,失败业务的概率。错误率=(失败业务数/业务总数) * 100%
-
资源利用率
说明:系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据
提示:
-
cpu(中央处理器)
-
内存(存储程序运行的数据)
-
磁盘(存储本地的数据)
-
网络(影响数据在网络中的传输数据)
-
-
8、性能测试流程
-
性能测试需求分析
-
熟悉被测系统
-
熟悉被测系统的业务功能
-
熟悉被测系统的技术架构
-
-
明确性能测试内容
-
从业务角度明确测试内容
-
确定关键业务
-
-
从技术角度明确测试内容
如:业务复杂度大的地方以及数据量大的内容
-
-
明确性能测试策略
-
负载测试
-
稳定性测试
-
并发测试
-
-
明确性能测试的指标
-
无明确需求指标
-
有明确需求指标
-
-
-
性能测试计划及方案
-
性能测试实施第一份文档,最重要的文档
-
主要内容
-
项目背景
-
测试目的
-
测试范围
-
测试策略
-
风险控制
-
交付清单
-
进度与分工
-
-
-
性能测试用例
-
用例名称
-
用例编号
-
用例描述
-
前置条件
-
用例步骤
-
并发用户数与事物响应
-
-
测试脚本编写/录制
-
建立测试环境(尽可能的与用户环境一致)
-
执行测试脚本
-
性能测试监控
-
性能分析和调优
-
性能测试报告总结
-
性能测试过程记录
-
性能测试过程中的风险
-
给出性能测试结论
-