文章目录
LoadRunner 的基本原理
后端性能测试工具通过虚拟用户脚本生成器生成基于协议的虚拟用户脚本,然后根据性能测试场景设计的要求,通过压力控制器控制协调各个压力产生器以并发的方式执行虚拟用户脚本,并且在测试执行过程中,通过系统监控器手机各种性能指标以及系统资源占用率,最后通过测试结果分析器展示结果数据
在 LoadRunner 中,Virtual UserGenerator 对应的是虚拟用户脚本生成器,Controller 对应的是压力控制器和系统监控器,Load Generator 对应的就是压力产生器,Analysis 对应的是测试结果分析器。
以下我们把 LoadRunner 每个模块类比手工操作放大理解工作过程:
- 首先,我们需要一批测试机器,每台测试机器雇佣一个测试人员;
- 然后,一个调度员来统一控制,比如 “1-10 号测试人员开始执行登录操作,10-20 号测试人员 5 分钟之后执行搜索操作”,同时调度员还会要求每个测试人员记录操作花费的时间;
- 测试完成后,调度员会要求性能工程师分析测试中记录的数据
通过类比: - 测试调度员以及完成数据记录的部分就是 Controller
- 大量的测试机器以及操作这些机器的人就是 Load Generator
- 操作这些机器的人的行为就是 Virtual User Generator 产生的虚拟用户脚本
- 对测试数据的分析就是 Analysis 模块
LoadRunner 的主要模块
Virtual User Generator
用于生成模拟用户行为的测试脚本,生成的手段主要是基于协议的录制,也就是由性能测试脚本开发人员在通过 GUI 执行业务操作的同时,录制客户端和服务器之间的通信协议,并最终转化为代码化的 LoadRunner 的虚拟用户脚本。
这样转化得到的虚拟脚本还需要经历数据参数化(Parameterization)、关联建立(Correlation),以及运行时设置(Run Time Settings)等操作,然后才能用于性能测试场景中。
LoadRunner Controller
Controller 相当于性能测试执行的控制管理中心,负责控制 Load Generator 产生测试负载,以执行预先设定好的性能测试场景;同时,还负责收集各类监控数据。
在实际执行性能测试时,Controller 是和性能工程师打交道最多的模块,性能工程师会在 Controller 的 UI 界面上完成性能测试场景的设计、运行时的实时监控、测试负载的开始与结束等操作。
LoadRunner Analysis
Analysis 是 LoadRUnner 中一个清大的分析插件。不仅能图形化展示测试过程中收集的数据,还能对国歌指标做关联分析,找出他们的因果关系。它最根本的目的就是:分析出系统可能的性能瓶颈点以及潜在的性能问题。
如何基于 LoadRunner 性能测试
从宏观角度讲可以分为五个阶段:
- 性能需求收集及负载计划制定
- 录制并增强虚拟用户脚本
- 创建并定义性能测试场景
- 执行性能测试场景
- 分析测试报告
我觉得在性能测试中获取这些测试需求和测试结果分析与性能问题定位是比较难得两个点。而类似于性能测试脚本开发、场景设计等偏向于机械性地重复工作。
这 5 个阶段先后顺序及各个模块作用
性能需求收集及负载计划制定
其实无论什么类型测试,第一步都要根据测试目的明确测试具体需求。常需要包括以下内容:
- 系统整体的并发用户数比如,高峰时段会有 10 万用户同时在线
- 并发用户业务操作的分布情况比如,20%的用户做登录操作,30%用户做订单操作,其他50%用户做搜索
- 单一业务操作的用户行为模式比如,两个操作之间的典型停留时间,完成统一业务的不同操作路径等