性能测试基础知识
1、什么是性能测试?
性能测试是指被测系统,在一定的负载下运行,监控系统的各项指标,是否符合需求(指标,指的CPU,内存,事务响应时间,等)如果不符合,就发现了系统的性能瓶颈。目的是识别系统的弱点,评估系统能力,发现系统性能瓶颈,提高系统可靠性能和稳定性。
2、不同的角色对性能测试的关注点
3、什么是压力测试,什么是负载测试,并区分他们的区别
负载测试:在一定的工作负荷下,给系统造成的负荷及系统响应的时间。
系统上不断增加压力,直到响应时间或tps达到一个拐点。
特点:
1)、主要目的是找到系统处理能力的极限
2)、该方法在给定的测试环境下进行,通常需要考虑被测系统的业务压力量和典型成绩
3)、该方法一般用来了解系统的性能容量,或者是配合性能调优来使用
压力测试:在一定的负荷条件下,长时间连续运行系统给系统性能造成的影响。
负载一定(比如100),持续运行一段时间,比如7*24小时来验证系统的稳定性
4、性能测试的常用术语:
并发:
分为狭义和广义两类。
狭义的并发:用户在同一时间内做同一件事情
广义的并发:有很多用户在同时操作不同的功能,混合场景
并发用户数:
系统用户数:系统的注册用户数,也可能是僵尸用户。
在线用户数:登录系统的用户,他的状态是在线,但不一定对服务器产生压力
并发用户数:对服务器产生压力的用户,可能在线用户有N个,只有20%用户不断的提交订单或者获取订单列表,产生了压力。
事务:
性能脚本中一个重要特性,要度量服务器的性能,需要定义事务。每个事务都包含事务开始和事务结束标记。
事务是用来衡量脚本中一行或多行代码的执行所消耗的时间
响应时间:
指从客户端发出请求到得到响应的整个过程的时间。这个过程从客户端发送一个请求开始计时,到客户端接收到服务器端返回的响应结果计时结束。
TPS:
服务器每秒能够处理的事务数,用来衡量服务器处理能力。
吞吐量:
不严格意义上来说就是TPS
点击率:
从客户端发起请求服务器的数量,衡量客户端性能
资源利用率:
资源利用率是指系统资源的使用程度,比如服务器(网络及数据库)的CPU使用率,内存利用率,网络带宽利用率等.
CPU:它就像是人的大脑,主要是进行判断和出来,能反应出系统的繁忙程度,一般分为系统CPU(%system)和用户CPU(%use),其中系统CPU是处理系统本身所用的资源,用户CPU则是处理程序所占用的资源。
LoadAverage:指一段时间内CPU正在处理和等待CPU处理的任务。
对当前CPU工作量的度量,简单的说是进程队列的长度。
0.7 < load < 1: 此时是不错的状态,如果进来更多的汽车,你的马路仍然可以应付。
load = 1: 你的马路即将拥堵,而且没有更多的资源额外的任务,赶紧看看发生了什么吧。
load > 5: 非常严重拥堵,我们的马路非常繁忙,每辆车都无法很快的运行
通常我们先看15分钟load,如果load很高,再看1分钟和5分钟负载,查看是否有下降趋势。
1分钟负载值 > 1,那么我们不用担心,但是如果15分钟负载都超过1,我们要赶紧看看发生了什么事情。所以我们要根据实际情况查看这三个值。
Memory:注意内存泄漏和内存溢出的现象。
队列:可以理解成地铁进站的排队现象,如果非常拥挤,说明处理能力达到了极限或者遇到了阻塞。
网络:重点关注网络的流量,看是否存在网络带宽的瓶颈。