Web性能测试的简介

时间:2023-03-08 21:38:40

一、术语

1、并发用户:并发一般分两种。1)严格意义上的并发,即所有的用户在同一时刻做同一件事情或操作,这种操作一般指做同一类型的业务;2)广义范围的并发,与前者主要区别,尽管多个用户对系统发出了请求或者进行了操作,但是这些请求或者操作可以是相同的,也可以是不同的。对整个系统而言,仍然是有很多用户同时对系统进行操作,因此也属于并发的范畴。

2、用户并发数量:两种常见理解错误 1)认为并发用户数量为使用系统的全部用户的数量;2)接近正确。认为在线用户数量为并发用户数量。

正确理解:在同一时刻与服务器进行交互的在线用户数量。(可为单向传送数据包\双向传送数据包)

3、请求响应时间(TTLB):客户端发出请求到得到响应的整个过程的时间。

4、事务响应时间:事务可能由一系列的请求组成,事务的响应时间主要针对用户而言,属于宏观上的概念,为了向用户说明业务响应时间而提出的。

5、吞吐量:在一次性能测试过程中网络上传输的数据量的总和。

6、吞吐率:(Throughput)单位时间内网络上传输的数据量,也指单位时间内处理的客户端请求数量。吞吐率 = 吞吐量 / 传输时间 (请求数/秒 或 页面数/秒;业务角度:业务数/小时或天 访问人数/天 页面访问量/天 等)。

7、TPS(Transport Per Second):每秒钟系统能够处理的交易或者事务的数量。

8、点击率:每秒钟用户向Web服务器提交的HTTP请求数。

9、资源利用率:对不同系统资源的使用程度。(CPU利用率、磁盘利用率等)

二、测试种类

压力测试:对系统不断施加压力的测试,通过确定一个系统的瓶颈或者不能接收用户请求的性能点,来获得系统能提供的最大服务级别的测试。

负载测试:通过在被测系统上不断增加压力,直到性能指标达到极限。找到系统的处理极限。

强度测试:为了检查程序对异常情况的抵抗能力,强度测试总是迫使系统在异常的资源配置下运行。(系统测试稳定性和系统未来的扩展空间)

并发测试:测试多个用户同时访问同一个应用程序、同一个模块或者数据记录时是否存在死锁或者其他性能问题。

大数据测试:两种。1)针对某些系统存储、传输、统计查询等业务进行大数据量的测试;2)与并发测试相结合的极限状态下的综合数据测试。

配置测试:通过测试找到系统各项资源的最优分配原则。

可靠性测试:在给系统加载一定业务压力的情况下,使系统运行一段时间,以此检测系统是否稳定。

狭义性能测试:用于描述常规的性能测试,通过模拟生产运行的业务压力和使用场景组合来测试系统的性能是否满足生产要求。

三、Web全面性能测试模型

1、Web性能测试策略制定原则:一种类型的性能测试可以在某些条件下转化成为另外一种类型的性能测试。

2、八个性能测试类别

1)预期指标的性能测试:针对预先确定的一些性能指标(需求分析和设计阶段提出的指标)

2)独立业务性能测试:核心业务模块对应的业务进行测试,主要使用用户并发测试来进行。

3)组合业务性能测试:通常不会所有的用户只使用一个或几个核心业务模块,一个应用系统的每个功能模块都可以被使用到。该测试是最接近用户实际使用情况的测试,通常按照用户的实际人数比例来模拟各个模块的组合并发情况。

4)疲劳强度性能测试:在系统稳定运行的情况下,以一定的负载压力来长时间运行系统的测试,目的为确定系统在长时间处理较大业务量时的性能。(判断系统运行一段时间后是否稳定)

5)大数据量测试:三种。1)针对某些系统存储、传输、统计查询等业务进行大数据量测试,测试运行时数据量较大时的性能情况。针对某些特殊的核心业务或者一些日常比较常用的组合业务的测试。

2)极限状态下的数据测试,指系统数量达到一定程度时,通过性能测试来评估系统的响应情况。评估系统性能走向。

3)结合前两种的大数据量测试,测试在极限状态下,两种测试同时运行产生较大数据量时的系统性能。

6)网络性能测试:为了准确展示带宽、延时、负载和端口的变化是如何影响用户的响应时间的。在实际的软件项目中,主要是测试应用系统的用户数目与网络带宽的关系。

7)服务器(操作系统、Web服务器、数据库服务器)性能测试:初级:在业务系统工作或者进行前面其他种类性能测试时,监控服务器的一些计数器信息,通过这些计数器对服务器进行综合性能分析,找出系统瓶颈,为调优或者提高性能提高依据。

8)一些特殊测试:主要指配置测试、内存泄漏测试等一些特殊的Web性能测试。

3、五类测试用例:1)预期指标的性能测试:主要参考需求和设计文档,把里面十分明确的性能要求提取出来。通常以单用户为主。

2)并发用户的性能测试:主要通过逐渐增加用户数量来加重系统负担,并通过测试工具对应用系统、各种服务器资源进行监控,最后通过其测试结果来分析系统性能。通过调整用户数量以及相关的测试场景不断深入,逐步发现系统各种类型的瓶颈。

3)疲劳强度和大数据量的性能测试:通过工具模拟用户的一些核心或者典型的业务,然后长时间地运行系统,以检测系统是否稳定。

4)服务器性能测试。

5)网络性能测试。