LoadRunner简介

摘要:
LoadRunner通常用于验证系统是否满足特定环境中的性能要求。为什么要使用LoadRunner进行性能测试?考虑一下这种情况。当500人同时登录网站时,未成功登录的操作员被视为操作失败。
 

LoadRunner是什么

LoadRunner是一个性能测试工具,它最初是Mercury公司的产品,后背HP收购。

LoadRunner常用来做什么

l 验证某系统在某环境下是否满足性能需求。

l 通过测试,规划如何达到要求的性能指标。

l 调整系统环境,进行性能测试,最终使性能达到最优。

为什么要使用LoadRunner进行性能测试

考虑这样一种情况,现在需要测试某个网站在500个人并发做登陆操作时,系统的平均响应时间是否满足需求。如果用人工测试的话,可以想象大概的操作场景是这样,一个主持人安排500个操作员,按下述步骤操作:

1. 所有人在一个大厅中,大厅中有500多台电脑,主持人要求500个操作人员分成组,每个组选一个组长,所有人先都登陆到系统,进入登陆页面;

2. 主持人喊3...2...1开始!同时记录开始时间(这个在LoadRunner中有个术语叫“集合点”),组织带领500个人同时点击“登陆”按钮。

3. 看到登陆成功页面的人把登陆成功时的时间记下。

4. 到了规定的时间,主持人喊停,还没有登陆成功的操作人员视为操作失败。

5. 最后,5个组长收集各组的操作结果,汇总给主持人,主持人安排数据统计专员生成统计报告。

这个过程是不是很复杂?而且操作误差比较大,譬如有的人反应慢,有的人反应快,有的人记错时间了,有的人偷懒了等等。所以,对于这种性能测试必须靠自动化。现有自动化的工具有很多,譬如Jmeter,譬如LoadRunner。总的来说,Jmeter更自由,LoadRunner更好用,而我们想用好用的,所以我们用LoadRunner。

LoadRunner的主要组件

l Virtual User Generator(用来录制脚本的,相当于前述例子中操作人员的机器人化)

l Controller(相当于前述例子中的主持人)

l Load Generator(相当于前述的组长)

l Analysis(相当于前述的分析专员)

LoadRunner的一般测试流程

创建脚本->设计场景->运行场景->分析结果

如何使用LoadRunner创建脚本

一、录制脚本

创建脚本最简单的方法就是录制,下面以录制登陆bugfree系统为例,操作步骤如下:

1. 启动Virtual User Generator,如下图所示。

 LoadRunner简介第1张

2. 新建一个脚本,如下图所示。

 LoadRunner简介第2张

3. 选择合适的协议,这里选择Web(HTTP/HTML)协议。

 LoadRunner简介第3张

4. 输入bugfree的地址,如下图所示。

 LoadRunner简介第4张

5. 点击OK,开始录制,如下图所示。

 LoadRunner简介第5张

6. 输入登录信息,点击登陆。

7. 登陆成功后,点击“停止”按钮,一个登陆脚本就录制完了。

思考:它是如何工作的?

解答:在录制开始前,我们选择的是WEB(HTTP/HTML)协议,开始录制时,Virtual User Generator会记录所有从当前窗口向服务器发出的HTTP请求,并生成脚本。

二、手工写脚本

要使用C语言写脚本,请在创建VUser时选择C Vuser,如下图所示:

 LoadRunner简介第6张

要使用JAVA语言写脚本,请在创建VUser时选择JAVA VUser,如下图所示:

 LoadRunner简介第7张

CVuser支持加载DLL,JAVA VUser支持加载jar包。

LoadRunner脚本参数化

为什么要进行参数化

为什么要进行参数化呢?考虑这样一种场景:要求测试一下10个不同用户并发登陆bugfree的平均响应时间。我们该如何做呢?用10个不同的用户录制10次脚本?绝对不是!这个不符合自动化的思想。1000个用户怎么办?100000个用户怎么办?所以LoadRunner提供了参数化的功能。

如何参数化

以登陆bugfree的脚本为例,我们将用户名和密码进行参数化,详细操作步骤如下:

1. 找到要参数化的用户名和密码的值,如下图所示。

 LoadRunner简介第8张

2. 将用户名“gavin”用变量user_name代替。

a) 选中“gavin”,单击右键,选择“Replace with a Parameter”,如下图所示。

 LoadRunner简介第9张

b) 将Parameter name命名为user_name,如下图所示。

 LoadRunner简介第10张

此时脚本中的“gavin”就变成了“{user_name}”,如下图所示:

 LoadRunner简介第11张

3. 将密码“111111”用变量password代替。

a) 选中“111111”,单击右键,选择“Replace with a Parameter”,如下图所示。

 LoadRunner简介第12张

b) 将Parameter name命名为password,如下图所示。

 LoadRunner简介第13张

单击上图中的“Properties”,file选择和“user_name”参数相同的file,如下图所示:

 LoadRunner简介第14张

c) 点击“Add Column”,添加一个列名为“password”的列,作为存放password参数的值,因为参数password取值和user_name是一一对应的,所以为简化逻辑,建议将“Select next row”设置为“same line as user_name”,如下图所示:

 LoadRunner简介第15张

4. 设置完成后脚本中的代码如下图所示:

 LoadRunner简介第16张

5. 最后可以根据需求为参数添加值。例如,我们这里模拟2个不同的用户并发登陆bugfree,可按如下操作为参数配置登陆信息:

a) 在user_name或password上单击右键,选择“Parameter properties”。

 LoadRunner简介第17张

b) 在弹出的窗口中单击“Add row”增加记录,或者点击“Edit with notepad”进行增加记录,如下图所示:

 LoadRunner简介第18张

c) 这里选择Edit with Notepad,如下图所示:

 LoadRunner简介第19张

按照已有的格式输入,每条记录一行,完成后保存即可。

d) 保存后可以看到多了一条用户信息,如下图所示。

 LoadRunner简介第20张

LoadRunner简介第21张

        长按二维码识别关注,您的支持是我们最大的动力。       

        公众号:测试梦工厂

        QQ一群:300897805

  LoadRunner简介第22张

免责声明:文章转载自《LoadRunner简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DebugPort 清0Centos7下安装Docker(详细的新手装逼教程)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

linux应用之bugfree的安装及配置

Bugfree3.0.4 Linux环境安装指南                           bugfree系统安装的前提是,配置LAMP环境(apache+mysql+php),下面以centos6.3系统为例介绍bugfree3.0.4的安装步骤。 一、    安装apache服务器 检查apache服务器是否安装 #service httpd...

JPA JPQL 查询、排序.....(转)

http://macrabbit.iteye.com/blog/855384 JPQL就是一种查询语言,具有与 SQL 相类似的特征, JPQL 是完全面向对象的,具备继承、多态和关联等特性,和hibernate HQL很相似。   查询语句的参数 JPQL 语句支持两种方式的参数定义方式 : 命名参数和位置参数 。 。在同一个查询语句中只允许使用一种参...

JS/jQuery刷新iframe的方法

一、js 页面刷新1.  reload 方法,该方法强迫浏览器刷新当前整个页面。  语法:location.reload([bForceGet])  参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") <script lang...

使用虚拟机运行Ubuntu时,主机与宿主机共享文件的方法。

简介: 首先设置虚拟机: 虚拟机 -> 设置-> Hardware -> Network Adapter,在网络连接处设置为 “桥接:直接连接到物理网络”,“NAT:使用已共享的主机IP地址”处打勾。 再设置好ubuntu网络IP地址 Ping测试,看能否Ping通,在“系统->系统管理”下点击"网络工具" 如果能ping通...

安卓系统架构图(转)

      从上图中可以看出,Android系统架构为四层结构,从上层到下层分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层,分别介绍如下:     1)应用程序层          Android平台不仅仅是操作系统,也包含了许多应用程序,诸如SMS短信客户端程序、电话拨号程序、图片浏览器、Web浏览器等应用程序。这些应用程序都是   ...

Mybatis 笔记

1.# 和 $ 的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sql时的值为order by "111", 如果传入的值是id,则解析成的sql为order by "id".  2. $将传入的数据直接显示生成在sql中。如:order by $use...