一、简介
- 2-5-10原则
一般情况下,当用户能够在2秒以内得到响应时,会感觉系统的响应很快;
当用户在2-5秒之间 得到响应时,会感觉系统的响应速度还可以;
当用户在5-10秒以内得到响应时,会感觉系统的 响应速度很慢,但是还可以接受;
而当用户在超过10秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。
二、性能测试的目的和关键
检查系统是否满足需求文档中规定的性能;性能测试常常需要和强度测试结合起来,并常常要求进行软件和硬件的检测。
性能测试的主要关注对象是响应时间、吞吐量、占用内存大小(辅助存储区)、处理精度等。
三、服务端性能分析都从哪些角度来进行
从维度上划分,性能指标主要分为两大类,分别是业务性能指标和系统资源性能指标。
-
业务性能指标可以直观地反映被测系统的实际性能状况,常用的指标项有:
1.并发用户数
2.事务吞吐率(TPS/RPS)
3.事务平均响应时间
4.事务成功率 -
系统资源性能指标,主要是反映整个系统环境的硬件资源使用情况,常用的指标包括:
1.服务器:CPU 利用率、处理器队列长度、内存利用率、内存交换页面数、磁盘 IO 状态、网卡带宽使用
情况等;
2.数据库:数据库连接数、数据库读写响应时长、数据库读写吞吐量等;
3.网络:网络吞吐量、网络带宽、网络缓冲池大小;
4.缓存(Redis):静态资源缓存命中率、动态数据缓存命中率、缓存吞吐量等;
5.测试设备(压力发生器):CPU 利用率、处理器队列长度、内存利用率、内存交换页面数、磁盘 IO 状态、网卡带宽使用情况等
四、性能测试常识
1、并发测试时服务日志级别需调整为error级别;
2、通常请求由一个线程负责执行,占用一个逻辑CPU;
3、性能测试脚本,最好不要有耗时的检查操作,会导致实际并发压力下降;
4、CPU负荷、内存负荷集中在应用服务器和数据库服务器上 (CPU:负责运算和处理,内存:交换数据);
5、磁盘负荷集中在数据库/文件服务器上;
6、对外网络流量集中在负载均衡器上;
五、线程组配置详解
- Number of Threads(users):线程数(即并发数);一个用户占一个线程,200个线程就是模拟200个用户;
- Ramp-Up Period(in seconds):设置线程需要多长时间全部启动;如果线程数为200,准备时长为10,那么需要1秒钟启动20个线程;也就是每秒钟启动20个线程;
- Loop Count:并发执行次数,一次场景下来,请求的数量=线程数 * 循环次数;如果线程数为200,循环次数为10 ,那么每个线程发送10次请求;总请求数为200*10=2000 ;如果勾选了“永远”,那么所有线程会一直发送请求,直到选择停止运行脚本;
六、JMeter报告
- Label:每个JMeter的element的Name值,例如HTTP Request的Name;
- Samples(样本):发出请求数量;模拟20个用户,循环100次,所以显示了2000;
- Average(平均值):平均响应时间(单位:ms);默认是单个Request的平均响应时间,当使用了Transaction Controller时,也可以以 Transaction为单位显示平均响应时间;
- Median(中位数):50%的用户响应时间小于这个值;
- 90%Line(90%百分位):90%的用户响应时间小于这个值;
- 95%LIne(95%百分位):95%的用户响应时间小于这个值;
- 99%LIne(99%百分位):99%的用户响应时间小于这个值;
- Min(最小值):用户响应时间最小值;
- Max(最大值):用户响应时间最大值;
- Eorror%(异常%):测试出现的错误请求数量百分比;请求的错误率 = 错误请求的数量/请求的总数;若出现错误就要看服务端的日志查找定位原因;
- Throughput(吞吐量):简称TPS,吞吐量,默认情况下表示每秒处理的请求数,也就是指服务器处理能力,TPS越高说明服务器处理能力越好;
- 接收KB/sec:每秒从服务器端接收到的数据量;
- 发送KB/sec:每秒发送的数据量;
-
Sample#:编号类似id
-
Start Time:开始时间
-
Thread Name:线程名称
-
Label:请求名称
-
Sample Time:取样时间ms
-
Status:状态
-
Bytes:接受字节数
-
Sent Bytes:发送字节数
-
Latency:等待时间
-
Connect Time:链接时间
七、性能测试结果分析(依据第三章)
1、Eorror%(异常%)分析:确认错误率是否在允许的范围内;
2、Throughput(吞吐量)分析–最佳的并发数:如果吞吐量>并发数,则并发数可继续增加;若在压测的机器性能很好的情况下,出现吞吐量<并发数,说明并发数不能再增加,可往下减,找到最佳的并发数;
3、最大的并发数分析:不断增加并发数,达到一个值后,服务器出现请求超时,则可认为该值为最大的并发数;
4、最大的TPS分析:不断的增加并发数,加到TPS达到一定值开始出现下降,那个值就是最大的TPS;
5、系统资源分析:压测时要时刻关注服务器CPU、内存、网络、数据库等使用情况;
6、性能瓶颈分析:
CPU、TPS存在明显波动则存在性能瓶颈;
若并发量增加而CPU使用率未增加则存在瓶颈;