什么是LoadRunner
Load Runner是一个性能测试工具, 是Mercury开发的, 2006年的时候被HP公司收购,随后 2016年被MicroFocus收购
Load Runner支持各种开发工具,技术以及通信协议,目前市场上难得有这种支持大量的协议的性能测试工具
为什么是LoadRunner
Load Runner不仅仅是性能测试工具中的先驱, 而且是目前市场上的领头羊。在最近的评估中, 他占有85%市场率, 也就是大部分公司做性能测试都会使用该软件
展开来讲, Load Runner支持RIA(丰富的网络应用),Web2.0(HTTP/HTML,Ajax,Flex以及SilverLight等),手机,SAP,oracle,MS SQL server,Citrix,RTE,Mail以及Windowns Socket.市场上还没有一个能够支持如此多的协议的工具
选择使用LoadRuner的一个重要的原因是他的稳定性,他的声誉之所以一直很好就是因为 客户经常使用LoadRunner来交叉验证我们的性能基准, 如果你已经使用了, 那你会感觉到很欣慰
Loadrunner 已经嵌入到惠普公司的其他测试工具中, 比如QTP, ALM 能够让我们完成端到端的测试。
LoadRunner 的工作原则是模拟用户, 复制用户的请求
为什么需要性能测试
在今天的web2.0时代,如果一个页面没能及时加载完成,用户就会通过点击离开这个页面。性能停滞的影响会带来意想不到的打击。
当一个软件系统被部署的时候,它会因为各种各样的原因影响它的性能,可能会影响性能的因素包括:
- 在数据中中增加记录
- 增加虚拟用户的数量
- 与过去相比, 大量的用户同时访问系统
什么是Load Runner的框架
LoadRunner 的框架是复杂的, 但是很容易理解
Loadrunner Architecture Diagram
假定你需要去模拟5000个用户来测试amazon的性能; 在一个真实的场景中,有5000个用户正在amazon网站的不用的页面, 但是不在homepage页面;如何来模拟这种情形。
VUGen
VUGen 或者虚拟用户生成器是一个集成的开发环境 或者说是一个丰富的代码编辑器,被用于复制系统的负载行为。 它还提供了一个"记录"特征用语记录仪来自客户端和服务器的通信往来; 使用的是一个脚本 也被称为VUser脚本
考虑到上述的例子,VUGen 能够通过记录来虚拟以下的商业流程:
- 浏览amazon的产品主页
- 结账
- 支付过程
- 检查用户账户页面
Controller
一旦VUser的脚本被敲定,Conrtoller是中心组件, 用来通过管理来控制加载模拟, 例如:
- 每一个VUser group或商业流程中模拟多少个虚拟用户
- 虚拟用户的行为(上升, 下降, 同时或并发行为)
- 负载方案的性能,例如真是生活或目标导向,验证SLA
- 使用哪种注射器,每一个injector里面包含多少个VUser
- 阶段性的收集结果
- IP欺骗
- Error report记录
- 交易记录等
举个例子,controller将增加以下参数到VUGen脚本
1) 3500个用户正在访问Amazon的产品页面
2) 750 个用户正在结账
3) 500个用户正在进行支付
4) 250个用户正在检查我的账户页面, 只有500个页面已经完成支付
即使是更复杂的情形也是可能的
1) 每两分钟初始化5个用户直到最后有3500个用户
2) 迭代30分钟
3) 为25个用户暂停迭代 (不太懂到底什么意思)
4)为20个用户重启
5) 每两分钟初始化两个用户(结账, 支付, 用户账户页面)
6) 2500个用户将会在machine A进行生成
7) 2500个用户将会在Machine B进行生成
Agents Machine/Load Generators/Injectors
LoadRunner Controller 主要负责模拟数以千计的虚拟用户- 这些用户会消耗硬件资源,例如处理器和内存 - 因此controller会对进行模拟的机器进行限制的设置。如果Controller在同一台机器上进行模拟 虚拟用户, 那得到的结果可能不准确,所以为了得到更加准确的结果, 所有的用户都会从不同的机器上分布,这称为Load Generator(负载生成器)或者Load Injector(负载注射器)
一般的做法是, Controller会安装在一个独立的机器上, 然后生成器都来自于其他不同的机器。根据VUser脚本和machine规格的协议,load Injector 将会被用来生成虚拟用户。例如,一个Http脚本的检测中 每一个Vuser需要204MB的内存,那么4个内存为4GB的机器就会模拟10000个用户, (这不是4000吗)
以Amazon为例,这个组件的输出将会是以下的Analysis:
Analysis
一旦load 加载场景开始执行,Analysis的角色就会进来。
在执行期间,Controller用原始的形式来创建一个结果的转储,并包含以下的信息:什么版本的loadrunnner来创建结果, 以及有哪些配置
所有的error和异常都会被记录到Microsoft可以访问的数据库, 被命名, 输出等。“Analysis”组件会从数据库中获取数据然后以各种各样的形式展示出来。
这些图表会显示各种趋势, 帮助我们理解error背后的原因。 这样的话会指出SUL,框架,服务器需要哪些优化。
以下以带宽的瓶颈测试为例。假设我们web 服务器的容量是1GB/s, 而我们的数据流量会超过这个容量, 然后导致用户受损。为了能检测系统会满足这种需求,性能测试工程师需要去分析哪些应用行为会出此案这种异常现象。以下是loarunner的检测结果
(看不懂)
性能测试流程
- 测试流程的设计
- 创建VUGen脚本
- 创建情形
- 执行
-
结果分析
image.png
Planning for the Load test
性能测试的设计不同于设计一个SIT(系统集成测试)或 UAT(用户验收测试); 这个设计可能被分为以下几个小块
- Assemble your team 组件团队
最开始的时候, 最好就是创建一个文档来记录来自于不同组的测试人员的分工
- Project Manager:
任命一些项目经理 作为重要的负责人 - Function Expert/ Business Analyst:
提供SUL的使用分析 以及相关的专业知识 - Performance Testing Expert
创建自动化的性能测试案例, 并执行load 场景 - System Architect: (系统架构)
提供蓝图 - Web Developer and SME:
维护网站, 提供检测项目
开发网站, 修复bug - System Administrator:
维护整个项目的服务器
-
Outline applications and Business Processes involved 概述相关的流程
成功的load测试需要我们去有计划的执行某些流程。这些流程包含非常清晰的符合目标业务的定义步骤, 这才能达到load测试的目标。
一个需求度量能被用来激发用户负载, 以下是一个公司的系统访问例子
上图中指出了给定的时间中进入系统的用户数量, 我们可以流出右边的一天中给定时间段内进入系统的最大数量。
同样,我们能总结出用户总量
- Define Test Data Management Procedures定义测试数据管理程序
从性能测试得到的统计以及观测都收到上面的所有步骤的影响。所以准备数据非常关键;有时, 一个特殊的process会消耗一个数据集, 也能产生一个不同的数据集。以下的例子:
1)一个用户A会创建一个财务合同, 然后提交给上层来进一步检查。
2)另外一个用户B每天会同意200个A创建的合同
3)另外一个用户C支付150个由B提交的合同
在这个情形中,用户B会有200份合同被系统创建, 而C会需要150个approve的合同来模拟150个被支付的负载用户
这就意味着你需要150+200=350个合同
然后150个给C, 200个给B
-
Outline Monitors 总体检测器
推测每一个能影响系统性能的因素。例如, 减少硬件会有可能影响SUL(系统承受负载)性能。
登记所有的因素并设置检测器, 以便我们能测量他们, 以下是例子:
1) 处理器
2)RAM
3)服务器
4)数据库服务器
5)网络带宽
6)集群时的内部外部NIC(不懂)
7)负载平衡器
8)数据流量 -
创建VUGen脚本
设计后就会开始写脚本 -
Scenario Creation 创建情景
-
Scenario Execution 情景执行
执行阶段是我们通过操控虚拟用户来完成仿真任务来模拟服务器上的用户
我们可以通过设置增加/减少虚拟用户来设置加载的level
这样的执行可能会导致服务器面临压力而出现异常。
这就是性能测试的目的,结果用于细节分析和根本原因的识别
- Results Analysis (followed by system tweaking) 结果分析
在情景执行期间, LoadRunner 记录不同的加载下的应用的性能. 统计结果被保存并生成分析报告。‘HP Analysis’ 工具能生成各种图用于分析大量性能测试以及系统失败后的根本原因
包括下列图:
1) 到第一个缓冲区的时间
2)交易响应时间
3) 平均交易响应时间
4)每秒点击次数
5)窗口资源
6)error统计
7)交易总结
下载和安装HP LoadRunner
以下是安装的步骤, 我们安装的是LoadRunner的社区版(免费版本), VUGen(虚拟用户生成器)已经捆绑在社区版中。 目前,Microfocus 已经接管了Loadrunner工具。总归需要两步:
- 下载:
1) 点击链接进行注册登录
2)注册后登陆, 进入dashbord, 然后点击download, 注意下载 HPE LoadRunner 12.55 Community Edition, 开始下载并解压文件到对应的路径 -
安装
1)点击解压文件中的HPE LoadRunner
2)选择安装目标文件, 点击install
3)一旦安装成功, 会有指引去安装依赖工具:Microsoft Visual C++ 2010 redisribable package, 点击ok
4)安装成功后,点击Loadrunner, next, select all and 点击next
5)输入目标文件,点击next, 点击install
6)如果出现防火墙, 点击Allow
7)当进入下一个界面(HPE authentication settings)直接点击next
8) 选择typical mode点击finish
9)安装成功后,重启电脑, 然后点击进入
网友评论