行业资讯
分享专栏文章,携手打造高质量产品
当前位置:首页 > 行业资讯 > 性能测试流程思考
性能测试流程思考
发布时间:2022-11-04 浏览数:0

性能测试定义和作用


定义:性能测试是通过测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。验证被测系统是否能够达到期望的性能指标,发现被测系统存在的性能瓶颈,进而加以优化。

作用:

❑ 验证系统在给定的条件下处理性能是否达到设计目标与用户要求

❑ 探测系统在给定的条件下极限处理能力

❑ 通过对系统各参数的调整,测试系统的最优性能配置

❑ 通过性能测试发现功能测试难以发现的缺陷

jmeter分布式压测:指将需要模拟的大量并发用户数分发到多台压力机,使jmeter拥有更大的负载量,满足真实业务场景(高并发场景)。可以理解为通过一个Jmeter控制台来远程控制多个Jmeter引擎(压力机、负载机、执行机)完成测试。 



性能测试分类


基准测试:

也是单用户测试,测试环境确定以后,对业务模型中的重要业务做单独的测试,获取单用户运行时的各项性能指标,为多用户并发测试和综合场景测试等性能分析提供参考依据


负载测试:

关注在一定负载下,系统的一系列指标的状况。简单理解:在一定业务场景下,已知负载大小,求环境和系统响应指标。


并发测试: 

广义的并发的含义是:同时,意思是在某个工作期间内有同时存在动作(可以不一样)即可;狭义的并发:即时。意思是瞬时执行同一个动作,参考LR中的集合点。


压力测试: 

可看做容量的特例,其条件下系统被定义为极限工况或不能正常工作,求此条件下的最大负载。关于压力的共识:其条件下系统工作不正常,宕机或失去响应或大面积失效等。


容量测试:

关注在一系列指标(要求下),系统可支持的负载大小(被称为容量)。简单理解:在一定业务场景下,已知环境和响应要求,求适合的负载大小。关于容量的一般共识:在其条件下系统是正常工作的 。


稳定性测试:

关注在一系列指标下,系统保持工作能力(关键指标的波动和趋势)的情况。简单理解:在一定业务场景下,已知环境、负载、响应的,试验长时间下工作保持能力。关于稳定性:一定是长时间的,通常是8小时、12小时、24小时以及更长……




性能测试步骤


image



性能测试指标



Tps(每秒事务数):

衡量系统处理能力的指标,是单位时间内完成工作的度量。它是LR中重要的性能参数指标。

点击率:

针对web应用的指标,即每秒用户向web服务器提交的http请求数。

吞吐量:

每秒钟系统能够处理的请求数、任务数,单位时间内网络上传输的数据量。并发时候的重要指标。

错误率:

一批请求中结果出错的请求所占比例。

并发用户数:

反应系统负载压力的大小。区别以下概念:1. 系统用户数2. 在线用户数3. 并发用户数。

资源利用率:

反应系统处理能力指标。1. CPU占用率:Windows<95%, Unix <85%2. 内存可用数: <10%或<4M,说明内存太小,或有内存泄漏3. 内存页交换率:page in/s <804. CPU的队列长度:一直超过二,处理器可能阻塞,服务器CPU可能是瓶颈。

平均响应时间:

所有请求的平均响应时间,取平均值。

事务响应时间:

事务是一系列请求的组合。例如商品下单。

请求响应时间:

反应系统处理效率的指标。指Client发出请求到得到响应的整个过程所经历的时间。

image



性能测试流程



一、准备工作

1、系统基础功能验证

性能测试在什么阶段适合实施?切入点很重要!一般而言,只有在系统基础功能测试验证完成、系统趋于稳定的情况下,才会进行性能测试,否则性能测试是无意义的。


2、测试团队组建

根据该项目的具体情况,组建一个几人的性能测试team,其中DBA是必不可少的,然后需要一至几名系统开发人员(对应前端、后台等),还有性能测试设计和分析人员、脚本开发

和执行人员;在正式开始工作之前,应该对脚本开发和执行人员进行一些培训,或者应该由具有相关经验的人员担任。


3、工具的选择

综合系统设计、工具成本、测试团队的技能来考虑,选择合适的测试工具,最起码应该满足以下几点:

①支持对web(这里以web系统为例)系统的性能测试,支持http和https协议;

②工具运行在Windows平台上;

③支持对webserver、前端、数据库的性能计数器进行监控;


4、预先的业务场景分析

为了对系统性能建立直观上的认识和分析,应对系统较重要和常用的业务场景模块进行分析,针对性的进行分析,以对接下来的测试计划设计进行准备。


二、测试计划

测试计划阶段最重要的是分析用户场景,确定系统性能目标。

1、性能测试领域分析

根据对项目背景,业务的了解,确定本次性能测试要解决的问题点;是测试系统能否满足实际运行时的需要,还是目前的系统在哪些方面制约系统性能的表现,或者,哪些系统因素导致

系统无法跟上业务发展?确定测试领域,然后具体问题具体分析。


2、用户场景剖析和业务建模

根据对系统业务、用户活跃时间、访问频率、场景交互等各方面的分析,整理一个业务场景表,当然其中最好对用户操作场景、步骤进行详细的描述,为测试脚本开发提供依据。


3、确定性能目标

前面已经确定了本次性能测试的应用领域,接下来就是针对具体的领域关注点,确定性能目标(指标);其中需要和其他业务部门进行沟通协商,以及结合当前系统的响应时间等数据,确定

最终我们需要达到的响应时间和系统资源使用率等目标;比如:

①登录请求到登录成功的页面响应时间不能超过2秒;

②报表审核提交的页面响应时间不能超过5秒;

③文件的上传、下载页面响应时间不超过8秒;

④服务器的CPU平均使用率小于70%,内存使用率小于75%;

⑤各个业务系统的响应时间和服务器资源使用情况在不同测试环境下,各指标随负载变化的情况等;


4、制定测试计划的实施时间

预设本次性能测试各子模块的起止时间,产出,参与人员等等。


三、测试脚本设计与开发

性能测试中,测试脚本设计与开发占据了很大的时间比重。

1、测试环境设计

本次性能测试的目标是需要验证系统在实际运行环境中的性能外,还需要考虑到不同的硬件配置是否会是制约系统性能的重要因素!因此在测试环境中,需要部署多个不同的测试环境,

在不同的硬件配置上检查应用系统的性能,并对不同配置下系统的测试结果进行分析,得出最优结果(最适合当前系统的配置)。

这里所说的配置大概是如下几类:

①数据库服务器

②应用服务器

③负载模拟器

④软件运行环境,平台

测试环境测试数据,可以根据系统的运行预期来确定,比如需要测试的业务场景,数据多久执行一次备份转移,该业务场景涉及哪些表,每次操作数据怎样写入,写入几条,需要多少的

测试数据来使得测试环境的数据保持一致性等等。

可以在首次测试数据生成时,将其导出到本地保存,在每次测试开始前导入数据,保持一致性。

2、测试场景设计

通过和业务部门沟通以及以往用户操作习惯,确定用户操作习惯模式,以及不同的场景用户数量,操作次数,确定测试指标,以及性能监控等。

3、测试用例设计

确认测试场景后,在系统已有的操作描述上,进一步完善为可映射为脚本的测试用例描述,用例大概内容如下:

用例编号:查询表单_xxx_x1(命名以业务操作场景为主,简洁易懂即可)

用例条件:用户已登录、具有对应权限等。。。

操作步骤:

①进入对应页面。。。。。。

②查询相关数据。。。。。。

③勾选导出数据。。。。。。

④修改上传数据。。。。。。

PS:这里的操作步骤只是个例子,具体以系统业务场景描述;

4、脚本和辅助工具的开发及使用

按照用例描述,可利用工具进行录制,然后在录制的脚本中进行修改;比如参数化、关联、检查点等等,最后的结果使得测试脚本可用,能达到测试要求即可;

PS:个人而言,建议尽量自己写脚本来实现业务操作场景,这样对个人技能提升较大;一句话:能写就绝不录制!!!


四、测试执行与管理

在这个阶段,只需要按照之前已经设计好的业务场景、环境和测试用例脚本,部署环境,执行测试并记录结果即可。

1、建立测试环境

按照之前已经设计好的测试环境,部署对应的环境,由运维或开发人员进行部署,检查,并仔细调整,同时保持测试环境的干净和稳定,不受外来因素影响。

2、执行测试脚本

这一点比较简单,在已部署好的测试环境中,按照业务场景和编号,按顺序执行我们已经设计好的测试脚本。

3、测试结果记录

根据测试采用的工具不同,结果的记录也有不同的形式;现在大多的性能测试工具都提供比较完整的界面图形化的测试结果,当然,对于服务器的资源使用等情况,可以利用一些计数器或

第三方监控工具来对其进行记录,执行完测试后,对结果进行整理分析。


五、测试分析

1、测试环境的系统性能分析

根据我们之前记录得到的测试结果(图表、曲线等),经过计算,与预定的性能指标进行对比,确定是否达到了我们需要的结果;如未达到,查看具体的瓶颈点,然后根据瓶颈点的具体数据,

进行具体情况具体分析(影响性能的因素很多,这一点,可以根据经验和数据表现来判断分析)。


2、硬件设备对系统性能表现的影响分析

由于之前设计了几个不同的测试环境,故可以根据不同测试环境的硬件资源使用状况图进行分析,确定瓶颈是在数据库服务器、应用服务器抑或其他方面,然后针对性的进行优化等操作。


3、其他影响因素分析

影响系统性能的因素很多,可以从用户能感受到的场景分析,哪里比较慢,哪里速度尚可,这里可以根据2\5\8原则对其进行分析;

至于其他诸如网络带宽、操作动作、存储池、线程实现、服务器处理机制等一系列的影响因素,具体问题具体分析,这里就不一一表述了。


4、测试中发现的问题

在性能测试执行过程中,可能会发现某些功能上的不足或存在的缺陷,以及需要优化的地方,这也是执行多次测试的优点。

如下图

image

image


六:Lre系统使用

性能测试工具(LRE)和loadrunner简单使用过程。

这里有个人对于LRE的使用过程以及过程仅限参考(如果想了解更细请去官方文档)

1.怎么登录

打开浏览器输入网址:http://122.228.43.234:30080/LRE/ 进入登录页面

image

输入用户名和密码(账号fanweimin 密码123456)仅限用户体验使用 点击身份验证   可以选择中文或者英文

image

点击登录进入使用界面

image

2.怎么进入测试管理

打开仪表盘,点击测试管理

image


image


image


3.怎么新建脚本

新建一个脚本文件夹,在自己命名文件夹里右键新建一个测试脚本

image

image

image


4.怎么管理测试集

输入名称,分配测试集,选择工作负载与计划类型(按数值/百分比)

image

image

5.怎么编辑测试集

image

在这里点击文件夹图标,新增文件名,然后点击加号并确定


image

点击加号

image

image

image

6.怎么新建负载类型

数值:

百分比:

image

7.怎么录制脚本

打开loadrunner软件后,界面如下,通过左上角的菜单,我们来新建一个脚本


image


这里用Web项目为例子,来录制一个HTTP协议的脚本

首先准备一个脚本名,指定一下脚本要保存在什么位置,然后点击create

image

image

点击图中的“录制”按钮,开始录制脚本

image

填写测试地址,然后点“开始录制”

image

image


通过“停止”按钮,可以结束我们的录制

image


最后我们就录制完成一个脚本,保存完成之后可以在lre运行哦


image


8.怎么上传脚本

在脚本文件夹下右键点击上传脚本


image

image

image


image

image

9.怎么分配脚本组

双击进入测试集编辑页面

image

image

image

image

image


10.怎么分配负载机

image

image


image

11.怎么分配运行时间

取消箭头勾选框,右侧编辑运行时间和vuser

image

image

image

image

12.怎么配置监听器

点击资产按钮,点击监控器

image

image

13.怎么保存并运行脚本

选择整理和分析结果,并点击运行按钮

image

14.怎么查看最终结果

image