性能测试之测试方法

一、性能测试的方法与流程
1、 性能测试
性能测试属于软件测试的一种,旨在测试特定的环境和配置的一定负荷下,系统的适合性、易用性、响应时间、吞吐量、成功性、恢复性、稳定性的等特性满足特定干系人需求的能力。系统性能关注的是用户体验,属于非功能属性 ··
2、 性能测试的目的
基本目的:验证性能指标是否满足用户的需求,同时发现系统是否存在性能瓶颈并优化
评估系统的能力:测试中得到负荷和性能指标,用于验证计划的能力,并为下一次计划做出决策
识别系统的弱点:受到负荷的系统可以增加到极端,并突破它,然后进行修复系统的瓶颈和薄弱的地方
系统调优:重复运行,验证体系的活动是否达到预期的结果,改进性能
稳定性:在一定的负荷下长时间的运行评估系统的稳定性和可靠性
3、 性能测试常见的误区
性能测试 != 测试工具的使用
性能测试 != 功能测试+并发测试
性能测试 != 性能脚本的运行
测试环境的 性能测试 != 实际环境上的 性能测试
采用功能测试的思维 测试 性能测试 != 实际上的性能 测试
4、 性能测试的注意事项
性能测试要保持与不同干系人的期望一致
测试需要可重复
测试必须产生可理解的结果以便与干系人期望有关
测试可以代表产生系统的的完整部分或者子部分
测试必须在特定的时间和特定的环境内运行
5、 性能测试的子特征(多块省)
时间:评估系统的响应时间
资源利用率:占用资源少并且运行时间小
容量:

性能测试之测试方法

二、测试的技术的分类
1、 静态测试
1.1、 关注性能以及性能风险的需求评审
1.2、 数据库架构、数据库设计、存储过程、语句执行效率的评审
1.3、 系统和网络架构的评审
1.4、 系统关键部位的代码评审
2、 动态测试
2.1、单元测试
2.2、集成测试
2.3、系统测试
2.4、验收测试
三、测试的分类
1、 验收性能测试:就是满足用户的需求就行(用户已经给出性能的指标)
2、 压力测试:就是系统出现问题后系统能否恢复(是否可恢复)
3、 并发测试:就是多个用户同时进行的测试
4、 负载测试:也等于容量测试,验证系统在一定负载下的性能测试(最大的容量)
负载生成的方法:使用用户界面生成负载,(小用户量)
使用众测生成负载(大用户量)
使用api生成负载(
使用通信协议生成负载()
5、 配置测试:也就是基准测试,当前系统下进行的压力测试与后期修改后的压力测试进行对比
6、 可靠性测试:
7、 恢复性测试;与压力测试并行进行的,压力测试过后系统是否能恢复恢复
8、 稳定性测试;在一定的环境下长时间运行,发现系统的资源问题(一般出现内存泄露等问题)
性能测试中的经典曲线:
性能测试之测试方法

绿色表示资源利用率、紫线表示吞吐量、蓝线表示响应时间、横轴表示并发用户数
当系统的负载等于最佳并发用户数时,整体效率最高,也没有资源被浪费,用户也不需要等待;当系统负载处于最佳并发用户数和最大用户并发数之间时,系统可以继续工作但用户的等待时间延长;当系统负载大于最大并发用户数时,用户满意度基本为零,甚至放弃访问。
四、测试应用领域
1、 能力验证:达到指标满足需求
2、 能力评估:负载、压力、恢复等
3、 缺陷发现
4、 性能调优
5、 性能基准比较
五、的应用的性能测试
1、 app 性能测试
2、 web性能测试
3、 数据库性能测试
4、 中间件性能测试
5、 服务器性能测试
备注:存泄露和内存溢出的区别和联系:
区别:
内存泄露(memory leak)指的的占用的资源不释放,属于性能问题
内存溢(out of memoruy)出指的是没有资源可以申请,主要是功能问题
联系:一次的内存泄露影响不是很大,但是内存泄露堆积后的后果就是内存溢出

六、性能测试的规划
1、性能测试度量及其意义、
1.1、性能度量:不知道性能指标就不要进行测试
1.2、收集度量:业务、环境、目标(响应时间、吞吐量、资源利用率、错误率)
1.3、选择度量的方法:
1.4、度量信息汇总
2、性能关键指标
2.1、并发用户数:模拟真实的用户同时访问,主要是服务器的决定
在线用户数:用户使用系统(运行内存)
系统用户数:注册用户数(看磁盘)
平均并发用户数的计算:
(1)、C=nL/T ,
含义: C是平均的并发用户数,n是平均每天访问用户数,L是一天内用户从登录到退出的平均时间(操作平均时间),T是考察时间长度(一天内多长时间有用户使用系统)
适用场景:网站系统
(2)、C’ ≈ C+3根号C,
含义:C’指并发用户数的峰值,C即是平均并发用户数。
2.2、吞吐量(系统在单位时间内处理的请求)
当单位是秒时,是TPS
吞吐量计算为:F = Vu * R / T 单位为个/s
含义:F为事务吞吐量,Vu为虚拟用户数个数,R为每个虚拟用户发出的请求数,T为处理这些请求所花费的时间
适用场景:网站系统
2.3、点击数(并不等于TPS)
2.4、响应时间
(1)、响应时间的过程:
响应时间=客户端呈现时间+网络传输(请求)时间+服务器处理(一层或多层)时间+网络传输(响应)时间+页面前端解析渲染时间。
(2)、响应时间的过长:
在客户端ping 应用服务器,查看平均响应时间
在应用服务器ping数据库服务器,查看平均响应时间
(3)、网站的响应时间2、5、8s
2.5、资源使用率(内存、磁盘、CPU、网络)
2.6、思考时间:模拟用户的真实操作