基于 LoadRunner 实现企业级服务器端性能测试的实践

后端性能测试工具首先通过虚拟用户脚本生成器生成基于协议的虚拟用户脚本,然后根据性能测试场景设计的要求,通过压力控制器控制协调各个压力产生器以并发的方式执行虚拟用户脚本,并且在测试执行过程中,通过系统监控器收集各种性能指标以及系统资源占用率,最后通过测试结果分析器展示测试结果数据。

LoadRunner 的基本原理,与上面的描述完全一致。在 LoadRunner 中,Virtual UserGenerator 对应的就是虚拟用户脚本生成器,Controller对应的就是压力控制器和系统监控器,Load Generator 对应的就是压力产生器,Analysis 对应的就是测试结果分析器。

基于 LoadRunner 实现企业级服务器端性能测试的实践_第1张图片

理解了这种“人肉”模式的后端性能测试后,我们再回过头来看 LoadRunner 的各个模块就豁然开朗了。操作这些测试机器的人的行为就是 Virtual User Generator 产生的虚拟用户脚本;

测试协调员以及完成数据记录的部分就是 Controller 模块;

大量的测试机器以及操作这些测试机器的人就是 Load Generator 模块;

对测试数据的分析就是 Analysis 模块。 

LR主要模块

Virtual User Generator,用于生成模拟用户行为的测试脚本,生成的手段主要是基于协议的录制,也就是由性能测试脚本开发人员在通过 GUI 执行业务操作的同时,录制客户端和服务器之间的通信协议,并最终转化为代码化的 LoadRunner 的虚拟用户脚本。这样转化得到的虚拟脚本往往并不能被直接使用,还需要经历数据参数化(Parameterization)、关联建立(Correlation),以及运行时设置(Run Time Settings)等操作,然后才能用于性能测试场景中。具体什么是数据参数化、什么是关联建立、运行时设置都有哪些可选项,我会在分享实例时再详细展开。

Controller 相当于性能测试执行的控制管理中心,负责控制 Load Generator 产生测试负载,以执行预先设定好的性能测试场景;同时,它还负责收集各类监控数据。在实际执行性能测试时,Controller 是和性能工程师打交道最多的模块,性能工程师会在 Controller 的 UI 界面上完成性能测试场景的设计、运行时的实时监控、测试负载的开始与结束等操作。

Analysis 是 LoadRunner 中一个强大的分析插件。它不仅能图形化展示测试过程中收集的数据,还能很方便地对多个指标做关联分析,找出它们之间的因果关系。它最根本的目的就是,分析出系统可能的性能瓶颈点以及潜在的性能问题。

基于 LoadRunner 企业级性能测试的阶段

性能需求收集以及负载计划制定;

录制并增强虚拟用户脚本;

创建并定义性能测试场景;

执行性能测试场景;

分析测试报告

基于 LoadRunner 实现企业级服务器端性能测试的实践_第2张图片

这五个阶段最难的两部分工作分别是:明确具体的性能测试需求,以及测试结果分析与性能问题定位。因为这两部分工作,要大量依赖于测试工程师的能力以及经验积累。 

 阶段 1:性能需求收集以及负载计划制定

基于 LoadRunner 实现企业级服务器端性能测试的实践_第3张图片

性能测试工作最难的两点:

1、获取性能测试需求 没人会告诉你需求是什么。

2、测试结果分析与性能问题定位。

 性能测试需求的定义与计划非常复杂,牵涉到项目的方方面面,不可能通过阅读一两篇文章就快速掌握这一技能,需要不断地沉淀在实战中获得的经验。

阶段 2:录制并增强虚拟用户脚本

从整体角度来看,用 LoadRunner 开发虚拟用户脚本主要包括以下四个步骤:

识别被测应用使用的协议;

录制脚本;

在开始执行 GUI 操作前,先点击图 2 中的“事务开始”按钮并填写事务名称;执行 GUI 操作;操作完成后,点击图 2 中的“事务结束”按钮。

完善录制得到的脚本;

在两个事务之间加入思考时间(Think Time);

直接调用 LoadRunner 提供的 lr_think_time() 函数

完成脚本的关联(Correlation)操作;

加入检查点(Check Point)。

验证脚本的正确性。

阶段 3:创建并定义性能测试场景

在 LoadRunner Controller 中设置性能测试场景

阶段 4:执行性能测试场景

这个过程一般是在 LoadRunner Controller 中完成。你可以通过 Controller 发起测试、停止测试、调整性能测试场景的各种参数,还可以监控测试的执行过程。

阶段 5:分析测试报告

性能测试报告的分析,是一项技术含量非常高的工作。优秀的性能测试工程,通过报告中的数值以及数值之间的相互关系,就能判断出系统中可能存在的问题。这就好比医生看验血报告,经验丰富的医生可以根据验血报告对病情做出八九不离十的判断。

备注:现在公司都用jemter,也是jemter2次开发,又叫全链路压测平台

你可能感兴趣的:(#,loadrunner,测试)