性能测试之初相识

背景

随着SDK测试工作的开展,性能测试已成为下半年的重要工作目标之一。性能测试的理论和相关工具已经相当成熟和完善。本文将主要介绍性能测试相关理论、指标、工具,以方便从中选取、使用在SDK性能测试工作中。

 

 

一、性能测试的概念

通过模拟生产环境运行的业务压力量和使用场景组合,测试系统的性能是否满足生产性能要求。

二、性能测试的分类

软件的性能包括很多方面,主要有时间性能和空间性能两种。时间性能指软件的一个具体事务的响应时间。空间性能指软件运行时所消耗的系统资源。

软件性能测试分为一般性能测试、稳定性测试、负载测试、压力测试。

l 一般性能测试:被测系统在正常的软硬件环境下运行,不向其施加任何压力的性能测试。

稳定性测试:亦称为可靠性测试,指连续运行被测系统,检查系统运行时的稳定程度。通常使用MTBFMean Time Between Failure,错误发生的平均时间间隔来衡量系统的稳定性。MTBF越大,系统的稳定性越强。一般采用24*7的方式让系统不间断运行,至于具体运行时间,视项目具体情况而定。

l 负载测试:指让被测系统在其能忍受的压力极限范围之内连续运行,来测试系统的稳定性。该测试为测试系统在临界状态下运行是否稳定提供了一种解决方案。系统组成部分的相应输出项,例如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。

l 压力测试:指持续不断地给被测系统增加压力,直到将被测系统压垮为止,用来测试系统所能承受的最大压力。

三、性能测试应用场景

1、性能测试应用场景主要有:能力验证、规划能力、性能调优、缺陷发现、性能基准比较,下表简单介绍和对比了这几个场景的各自用途和特点: 

 

主要用途

典型场景

特点

常用性能

测试方法

能力验证

关注在给定的软硬件条件下,系统能否具有预期的能力表现

在要求平均响应时间小于2秒的前提下,如何判断系统是否能够支持50万用户/天的访问量?

a)要求在已确定的环境下运行
b)需要根据典型场景设计测试方案和用例,包括操作序列和并发用户量,需要明确的性能目标。

a)负载测试
b)压力测试
c)稳定性能测试

规划能力

关注如何使系统具有我们要求的性能能力

某某系统计划在一年内获客量在到xxx万,系统到时候是否能支持这么多用户量?如果不能需要如何调整系统的配置?

a) 它是一种探索性的测试
b) 常用于了解系统性能和获得扩展性能的方法

a) 负载测试
b) 压力测试
c) 配置测试

性能调优

主要用于对系统性能进行调优

某某系统上线运行一段时间后响应速度越来越慢,此时应该如何办?

每次只改变一个配置,切忌无 休止的调优

a) 并发测试
b) 压力测试
c) 配置测试

缺陷发现

发现缺陷或问题重现、定位手段

某些缺陷只有在高负载的情况下才能暴露出来,如线程锁、资源竞争或内存泄露。

做为系统测试的补充,用来发现并发问题,或是对系统已经出现的问题进行重现和定位

a) 并发测试
b) 压力测试

性能基准比较

   常用于敏捷开发过程中,敏捷开发流程的特点是小步快走,快速试错,迭代周期短,需求变化频繁。很难定义完善的性能测试目标,也没有时间在每个迭代开展详细的性能测试,可以通过建立性能基线,通过比较每次迭代中的性能表现变化,判断迭代是否达到了目标。

2、通常在某个性能场景中需要联合使用多种性能测试方法一起进行性能测试,下表为性能测试应用领域与测试方法关联:

 

能力验证

规划能力

性能调优

缺陷发现

性能基准比较

一般性能测试

 

 √

 

 

稳定性测试

 

 

 

 

负载测试

 √

 

 

压力测试

 

四、性能测试指标

1、响应时间

a)定义:从用户发送一个请求到用户接收到服务器返回的响应数据这段时间就是响应时间

b) 关键路径:下图为一次http请求经过的路径,请求会经过网络发送到web服务器进行处理,如果需要操作DB,再由网络转发到数据库进行处理,然后返回值给web服务器,web服务器最后把结果数据通过网络返回给客户端。

c) 计算方法:Response time = (N1+N2+N3+N4)+ (A1+A2+a3),即:(网络时间 + 应用程序处理时间)

d) 响应时间-负载对应关系:

    

     图中拐点说明:

1、响应时间突然增加

2、意味着系统的一种或多种资源利用达到的极限

3、通常可以利用拐点来进行性能测试分析与定位

2、吞吐量

a)定义:单位时间内系统处理的客户端请求的数量

b)计算单位:一般使用请求数/秒做为吞吐量的单位,出可以使用 页面数/秒表表示。

      另外,从业务角度来说也可以使用 访问人数 /天 或 页面访问量/天 做为单位。

c)计算方法:Throughput = (number of requests) / (total time).

d吞吐量-负载对应关系:

     图中拐点说明:

1、吞吐量逐渐达到饱和

2、意味着系统的一种或多种资源利用达到的极限

3、通常可以利用拐点来进行性能测试分析与定位 

3、并发数:

    并发用户数:某一物理时刻同时向系统提交请求的用户数,提交的请求可能是同一个场景或功能,也可以是不同场景或功能。

在线用户数:某段时间内访问系统的用户数,这些用户并不一定同时向系统提交请求

系统用户数:系统注册的总用户数据

    三者之间的关系:系统用户数 >= 在线用户数 >= 并发用户数

4、资源利用率

a) 定义:指的是对不同系统资源的使用程度,通常以占用最大值的百分比来衡量

b) 通常需要关注的服务器资源如下:

l CPU:就像人的大脑,主要负责相关事情的判断以及实际处理的机制

内存:大脑中的记忆块区,将眼睛,皮肤等收集到的信息记录起来的地方,以供cpu进行判断,但是是临时的,访问速度快,如果关机或断电这里的数据会消失。

磁盘IO:大脑中的记忆区块,将重要的数据保存起来(永久保存,关机或断电不会丢失,速度慢),以便将来再次使用这些数据。

网络:

c)资源利用-负载对应关系:

     图中拐点说明:

1、服务器某荐资源使用逐渐达到饱和

2、通常可以利用拐点来进行性能测试分析与定位

5、其它常用概念:

a) TPSTransactions Per Second,每秒事务数

b) 思考时间:用户每个操作后的暂停时间,或者叫操作之间的间隔时间,此时间内是不对服务器产生压力的

c) 点击数:每秒钟用户向WEB服务器提交的HTTP请求数。这个指标是WEB应用特有的一个指标:WEB应用是"请求-响应"模式,用户发出一次申请,服务器就要处理一次,所以点击是WEB应用能够处理的交易的最小单位。如果把每次点击定义为一个交易,点击率和TPS就是一个概念。容易看出,点击率越大,对服务器的压力越大。点击率只是一个性能参考指标,重要的是分析点击时产生的影响。需要注意的是,这里的点击并非指鼠标的一次单击操作,因为在一次单击操作中,客户端可能向服务器发出多个HTTP请求.

dPV:访问一个URL,产生一个PVPage View,页面访问量),每日每个网站的总PV量是形容一个 网站规模的重要指标。

UV:作为一个独立的用户,访问站点的所有页面均算作一个UVUnique Visitor,用户访问)。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值