性能测试的含义
主要是针对系统的性能指标制定性能测试方案,执行测试用例,得出测试结果来验证系统的性能指标是否满足既定值。
什么是性能测试
观察系统在一个特定条件下,是否能够满足预期性能目标(当前指标、未来业务增长量),是否存在性能缺陷(并发问题、Crash、宕机。。。),并且根据测试结果对系统进行瓶颈定位与调优(软件、硬件、网络?),使系统的性能不断完善的一个过程
影响性能的因素
网络、硬件(cpu、硬盘、网卡等)、软件、数据量、用户数量、客户端。
性能测试目的
验证软件系统是否达到用户提出的性能指标,同时发现软件系统中存在的瓶颈,以优化为目的。包括:
1) 评估系统的能力
2) 识别系统中的弱点
3) 系统调优
4) 检测软件中的问题
5) 验证稳定性和可靠性
性能测试术语
并发用户数(LR:Vuser;JMeter:线程Thread)
响应时间 Responsetime
每秒处理事务数TPS :
吞吐量:对事务的处理能力
硬件占用资源
性能测试模型与测试类型
负载测试:不断对系统增加并发用户,在系统的可承受范围内
压力测试:不断加压,直至系统崩溃
说明: a点:性能期望值
b点:高于期望,系统资源处于临界点
c点:高于期望,性能处于拐点
》性能测试
以上模型图为准则,在a点与b点之间的系统性能,表示以性能目标预期为前提,对系统进行施压,验证系统在资源可用范围内,是否能达到性能预期的目标。
》负载测试/基准测试
b点的系统性能,表示在系统在一定的压力下持续一段时间,直到系统的某项或多项指标达到极限,比如系统资源CPU、Memory或者IO等达到饱和状态。
》压力测试b点到C点的系统性能,表示在超过安全负载的条件下,不断对系统进行加压,直到系统不能再接受请求,并可以确定一个系统瓶颈的情况下,目的是为了找出系统的瓶颈,需要对系统进行调优。
》稳定性测试a点到b点的系统性能,表示被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检测系统是否稳定(是否有内存溢出),一般稳定性测试时间为n*12小时
性能测试原理
1. 用户行为模拟
l 不同用户使用不同的数据(LR通过参数化实现)
l 多用户并发操作(LR通过集合点实现)
l 用户请求间的依赖关系(LR通过关联实现)
l 请求间的演示时间(LR通过思考时间实现)
LR 用户行为模拟实现:录制脚本—>修改脚本(参数化、关联、事务)—>常见场景—>执行场景
2. 性能指标监控
l 请求响应时间监控
l 服务器处理能力监控
l 服务器资源利用率监控
3. 性能调优
LR性能指标监控实现:
配置服务器端监控环境—>添加服务器地址和计算器—>监控结果数据统计实现
性能测试要求
1.测试基础理论
2.测试常用方法
3.一门编程语言
4.一种数据库(侧重系统配置,硬件环境搭建,语句调优)
5.web服务器(安装配置,搭建,性能分析调优)
6.常见网络协议(协议下的常见数据包格式和工作原理)
7.性能测试工具