abdstime 2020-01-14
性能测试
软件系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言,包括执行效率、资源占用、系统稳定性、安全性、兼容性、可靠性、可扩展性等。性能测试是为描述测试对象与性能相关的特征并对其进行评价而实施和执行的一类测试。它主要通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。通常大家把负载测试、压力测试等统称为性能测试。
负载测试
通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足系统的性能指标情况下,系统所能够承受的最大负载量。简而言之,负载测试是通过逐步加压的方式来确定系统的处理能力,确定系统能够承受的各项阀值。例如,逐步加压,从而得到“响应时间不超过10秒”, “服务器平均CPU利用率低于85%”等指标的阈值。
压力测试
通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并获得系统能提供的最大服务级别。压力测试是逐步增加负载,使系统某些资源达到饱和甚至失效的测试。
其他的性能测试分类为:
配置测试
主要是通过对被测试软件的软硬件配置的测试,找到系统各项资源的最优分配原则。
并发测试
测试多个用户同时访问同一个应用、同一个模块或者数据记录时是否存在死锁或者其他性能问题,几乎所有的性能测试都会涉及一些并发测试。
容量测试
测试系统能够处理的最大会话能力,确定系统可处理同时在线的最大用户数,通常和数据库有关。
可靠性测试
通过给系统加载一定的业务压力(如CPU资源在70%~90%的使用率)的情况下,运行一段时间,检查系统是否稳定。因为运行时间较长,通常可以测试出系统是否有内存泄漏等问题。
失败测试
对于有冗余备份和负载均衡的系统,通过这样的测试来检验如果系统局部发生故障,用户是否能够继续使用系统,用户受到多大的影响。如几台机器做均衡负载,测试一台或几台机器垮掉后,系统能够承受的压力。
并发用户
并发用户数是指现实系统中操作业务的用户,在性能测试工具中,一般称为虚拟用户数(Virutal User)。并发用户数和注册用户数、在线用户数的概念不同,并发用户数是一定会对服务器产生压力的,而在线用户数只是 ”挂” 在系统上,对服务器不产生压力,注册用户数一般指的是数据库中存在的用户数。
一种是严格意义上的并发,即所有的用户在同一时间点做同一件事或操作,这种操作一般指做同一类型的业务。比如,所有用户同一时刻做并发登陆,同一时刻做表单提交。
另外一种并发是广义范围的并发,这种并发与前一种并发的区别是,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或都操作可以是相同的,也可以是不同的。比如,在同一时刻有用户在登录,有用户在提交表单。
前面的两种解释都是从用户业务的角度来解释并发的,因为我们平时所做的性能测试也是从用户端对业务层的操作来进行并发测试的。
如果考虑整个系统运行过程中服务器所承受的压力是这样的:在该系统的运行过程中,把整个运行过程划分为离散的时间点,在每个点上都有一个“同时向服务端发送请求的用户数”,这个就是所谓的服务器所承受的并发访问数。
从性能测试工具的角度来看,虽然,性能测试工具可以1秒模拟成千上万个请求,那么这些请求的产生同样分前后顺序。就算这些请求被真正的“同时”生产出来,通过网络传输到过服务器时,因为受网络带宽、延迟等影响,也无法真正的对服务器构成“同时”请求。
从服务器角度,当它接收到并发请求,在处理这些请求时同样需要分前后顺序,因为它处理每个请求的时间极短;每秒可以处理几千几万次请求;所以,我们说它的并发能力是每秒/次。
吞吐量
指在一次性能测试过程中网络上传输的数据量的总和。
对于交互式应用来说,吞吐量指标反映的是服务器承受的压力,在容量规划的测试中,吞吐量是一个重点关注的指标,因为它能够说明系统级别的负载能力,另外,在性能调优过程中,吞吐量指标也有重要的价值。
关于吞吐量,据悉:
1. 约发现的80%系统的性能瓶颈都由吞吐量制约;
2. 并发用户数和吞吐量瓶颈之间存在一定的关联;
3. 采用吞吐量测试可以更快速定位问题。
通过不断增加并发用户数和吞吐量观察系统的性能瓶颈。然后,从网络、数据库、应用服务器和代码本身4个环节确定系统的的性能瓶颈。
吞吐率
单位时间内网络上传输的数据量,也可以指单位时间内处理客户请求数量。它是衡量网络性能的重要指标,通常情况下,吞吐率用“字节数/秒”来衡量,当然,你可以用“请求数/秒”和“页面数/秒”来衡量。其实,不管是一个请求还是一个页面,它的本质都是在网络上传输的数据,那么来表示数据的单位就是字节数。
事务
就是用户某一步或几步操作的集合。不过,我们要保证它有一个完整意义。比如用户对某一个页面的一次请求,对某系统的一次登录,对商品的一次确认支付过程。这些我们都可以看作一个事务
TPS
每秒钟系统能够处理事务或交易的数量,它是衡量系统处理能力的重要指标。
点击率
每秒钟用户向Web服务器提交的HTTP请求数。这个指标是Web 应用特有的一个指标;Web应用是“请求---响应”模式,用户发一个申请,服务器就要处理一次,所以点击是Web应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大。对服务器的压力也越大,点击率只是一个性能参考指标,重要的是分析点击时产生的影响。
需要注意的是,这里的点击不能简单的看作鼠标的一次“单击”操作,也许一次“单击”操作中,客户端可能向服务器发现多个HTTP请求。
点击率可以看做是TPS的一种特定情况。点击率更能体现用户端对服务器的压力。TPS更能体现服务器对客户请求的处理能力。