功能性 Functionality
非功能特性
- 容量 Capacity
- 安全性 Security
- 易用性 Usability
- 可伸缩性 Scalability
- 可靠性 Reliability
- 兼容性 Compatibility
- 可扩展性 Extensibility
性能问题外部表现和内因
外部表现:
启动系统、打开页面越来越慢
查询数据,很长时间才显示列表
网络下载速度很低,如5k/s
内因:
资源泄漏,如内存泄漏 ,最终会导致资源耗尽
资源瓶颈,如线程、GDI、DB连接等资源变得稀缺
取系统性能相关指标而进行的测试。一般在真实环境、特定负载
条件下,通过工具模拟实际软件系统的运行及其操作,同时监控性能各
项指标,最后对测试结果进行分析以确定系统的性能状况。
获取系统性能某些指标数据
为了验证系统是否达到用户提出的性能指标
发现系统中存在的性能瓶颈,优化系统的性能
性能基准测试:在系统标准配置下获得有关的性能指标数
据,作为将来性能改进的基线(Baseline),之后的就是对这个
指标之上;
性能验证测试:验证系统是否达到事先已定义的系统性能
指标、能否满足系统的性能需求
性能规划测试:在多种特定的环境下,获得不同配置的系
统性能指标,从而决定系统部署的软硬件配置选型,可以先
用两台服务器,可以再加两台,来看性能是否提高,确定应该
怎么配置软硬件
容量测试可以看作性能的测试一种,因为系统的容量可以
看作是系统性能指标之一;能支持多少并发用户
要做性能测试,需要知道性能需求,所以需要知道需要关注哪些性能表现?
确定性能需求
1、最终用户的体验,如2-5-10原则
两秒的时候打开一个页面,正常时候也需要5秒内,最慢不超过十秒,用户体验差;
2、商业需求,如“比竞争对手的产品好”
3、技术需求,如CPU使用率不超过70%
内部资源的使用效率不高,那样性能不会好
4、标准要求,如数据通信延时<80ms
用户关注系统的外部表现,如响应时间 业务部门关注系统的容量和数据吞吐量
技术团队关注系统资源占用率、或使用效率
例子:
性能测试的指标
系统/事务平均响应时间(Average System/Transaction Response Time)
事务/交易处理效率(Transactions per second,TPS)
Page View (PV): 用户向Server发送请求,Server处理这样一次真实的请求
连接时间(Connect Time)、发送时间(Sent Time)
处理时间(Process Time)、页面下载时间
吞吐率(Throughput)每秒服务器处理的HTTP申请数
每秒点击次数(Hits per Second) 每秒SSL连接数 (SSLs Per Second)
内存和CPU使用率
负载的组成,三部分:
每次请求发送的数据量 (Request Per Second, RPS)
并发连接数 (Simultaneous Connections, SC)
思考时间(thinking time),用户发出请求之间的间隔时间
RPS + SC + Thinking Time = Concurrent users
负载的模式:
加载的循环次数或持续时间
加载的方式或模式,如均匀加载、峰值交替加载等
关键业务选择(性能测试范围)20%80%
不需要对应用系统的所有功能进行性能测试,而是根据业务
操作和技术分析(资源使用) ,选择关键业务进行性能测试
比如淘宝,用的比较多的就是首页,登录,搜索,排序,订单等功能
测试环境:逼近真实的运行环境
网络及其配置
服务器硬件选型
被测试系统部署
数据库数据量
测试机器池
SUT监控
选择测试工具后 脚本录制 验证回放 脚本参数化 脚本调试 加载模式
测试执行和监控
① Web/应用/数据库服务器资源(CPU、内存)
② 响应时间:请求发送时间、网络传输时间和服务器处理时间
③ 服务器处理时间:web连接、数据库连接、数据库执行时间
④ 数据库执行时间:解析时间,执行时间、读取时间、其时间,如绑定时间
找平均值、最值、拐点等关键的点,找异常数据来分析性能瓶颈