一、测试过程

1.规划测试:分析应用程序、定义测试目标、方案实施。

2.创建Vuser脚本。

3.创建方案:方案包括运行 Vuser 的计算机的列表、运行 Vuser 脚本的列表以及在方案执行期间运行的指定数量的 Vuser 或 Vuser 组。

4.运行方案:可以指示多个 Vuser 同时执行任务,以模拟服务器上的用户负载。可以通过增加或减少同时执行任务的 Vuser 的数量来设置负载级别。

5.监视方案:使用 LoadRunner 联机运行时、事务、系统资源、Web 服务器资源、数据库服务器资源、网络延时、流媒体资源、防火墙服务器资源、Java 性能等、应用程序部署和中间件性能监视器来监视方案的执行。

6.分析测试结果:在方案执行期间,LoadRunner 将记录不同负载下的应用程序性能。可以使用LoadRunner 的图和报告来分析应用程序的性能。

二、VuGen介绍

LoadRunner 包含很多组件,其中最常用的有 Visual User Generator(以下简称VuGen)、Controller,Analysis。v Mercury 虚拟用户生成器 (VuGen) — 创建脚本VuGen
注意:VuGen 仅能录制 Windows 平台上的会话。但录制的 Vuser 脚本既可以在 Windows 平台上运行,也可以在 UNIX 平台上运行。
 
使用VuGen开发脚本的步骤:
*录制测试脚本
*完善测试脚本
*配置Run-Time Settings项
*单机运行测试脚本
*创建运行场景
 
1.录制测试脚本
点击开始->Mercury LoadRunner->Applications->Virtual User Generator或开始-> Mercury LoadRunner-> Mercury LoadRunner->Load Testing->Create/Edit Scripts来启 动VuGen。
 

启动VuGen后,可以选择新建单协议脚本,多协议脚本,打开脚本等;如果不想下次再显示该页,在Don’t show thestartup dialog in the future前打勾即可。
2.录制测试脚本
新建一个用户脚本,选择系统通讯的协议,这里我们需要测试的是Web应用,所以我们需要选择Web(HTTP/HTML)协议,确定后,进入主窗体。

3.设置录制选项

Application type:选择应用程序类型Internet Application
URL:输入要测试的网址
Working directory:设置工作目录
Record into Action:中选择要把录制的脚本放到哪一个部分,见意选择 Action

VuGen 中的脚本分为三部分:vuser_init、vuser_end 和Action。其中vuser_init 和vuser_end 都只能存在一个,不能再分割,而Action 还可以分成无数多个部分(通过点击New 按钮,新建ActionXXX) “Record the application startup”默认情况下是选中的,说明应用程序一旦启动,VuGen 就会开始录制脚本;如果没有选中,应用程序启动后,VuGen 出现右边的对话框,并且暂时不会开始录制脚本,用户操作应用程序到需要录制的地方,按下“Record”按钮,VuGen 才开始录制。

4.录制工具条介绍

点击确定之后会出现一个工具条,不同的按钮有不同的功能

录制完成后,按下“结束录制”按钮,VuGen 自动生成用户脚本,退出录制过程。
5.查看脚本

录制结束后,可以通过两种方式来查看脚本:脚本视图及树视图

脚本视图:
v脚本视图是一种基于文本的视图,列出了作为 API 函数的 Vuser 操作。要在脚本视图中查看脚本,请单击工具栏上的“View Script”按钮或者选择“View” > “View Script”。

树视图:
v树视图是基于图标的视图,列出了作为步骤的 Vuser 操作.要在树视图中查看脚本,请单击工具栏上的“View Tree”按钮或者选择“View” > “View Tree”。

6.完善测试脚本

6.1 事物

事务为衡量服务器的性能,需要定义事务。

当录制完一个基本的用户脚本后,在正式使用前我们还需要完善测试脚本,增强脚本 的灵活性。例如,可以在脚本中插入名为内容检查的步骤,以验证某些特定内容是否显示 在返回页上。可以修改脚本来模拟多用户行为,也可以用事务来 度量特定的业务流程。

事务(Transaction):为了衡量服务器的性能,我们需 要定义事务。比如:我们在脚本中有一个数据查询操作, 为了衡量服务器执行查询操作的性能,我们把这个操作定 义为一个事务,这样在运行测试脚本时,LoadRunner 运 行到该事务的开始点时,就会开始计时,直到运行到该事 务的结束点,计时结束。这个事务的运行时间会在结果中 显示。 插入事务操作可以在录制过程中进行,也可以在录制 结束后进行。LoadRunner 运行在脚本中插入不限数量的事务。

6.2插入事物

在菜单中单击Insert->Start Transaction后,输入事务名称,也可在录制过程中进行,在需要定义事务的操作后面插入事务的“结束点”。

输入事务的名称。注意:事务的名称最好要有意义,能够清楚的说明该事务完成的动作。

插入事务的开始点后,在需要定义事务的操作后面插入事务的“结束点”。同样可以通过菜单或者工具栏插入

默认情况下,事务的名称列出最近的一个事务名称。一般情况下,事务名称不用修改。事务的状态默认情况下是LR_AUTO。一般情况下,我们也不需要修改状态的

6.3插入集合点
插入集合点是为了衡量在加重负载的情况下服务器的性能情况。 在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LR 中可以通过在提交数据操作前面加入集合点,当虚拟用户运行到提交数据的集合点时,LR 就会检查同时有多少用户运行到集合点,从而达到测试计划中的需求。

具体的操作方法如下:在需要插入集合点的前面,点击菜单Insert->Rendezvous,也可在录制时按插入集合点按钮 注意:集合点经常和事务结合起来使用。集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。

7.单机运行测试脚本

执行“运行”命令后,VuGen 先编译脚本,检查是否有语法等错误。如果有错误,Vu Gen将会提示错误。双击错误提示,VuGen 能够定位到出现错误的那一行。如果编译通 过,就会开始运行。然后会出现运行结果。

LoadRunner:VuGen开发脚本步骤(一)的更多相关文章

  1. LoadRunner:VuGen开发脚本步骤(二)

    一.介绍 Loadrunner的场景能够描述在测试活动中发生的各种事件.一个场景包括一个运行虚拟用 户活动的Load Generator 机器列表,一个测试脚本的列表以及大量的虚拟用户和虚拟用户组 二 ...

  2. 通过HP Loadrunner VuGen来录制安卓的应用

    作者:Richard Pal       来自:perftesting           翻译:Elaine00 通过这篇文章,我将介绍如何通过HP Loadrunner VuGen来测试一个安卓应 ...

  3. myeclipse调用loadrunner函数开发测试脚本

    myeclipse调用loadrunner函数开发测试脚本 一.使用myeclipse开发性能测试脚本 1.使用Eclipse新建一个Java工程,将目录%LoadRunner_Home%\class ...

  4. Loadrunner VuGen实战---基本组成、录制流程、协议、脚本优化、参数化(三)

    一.3大基本组件:VuGen.Controller.Analysis 1.VuGen:录制.编写脚本. 2.Controller:性能测试场景设计以及监控的地方. 3.Analysis:生成图表报告的 ...

  5. 编写loadrunner的ftp脚本(详细步骤)

    大家好,主要给大家讲解编写loadrunner的ftp脚本详细步骤,及FTP函数注释,及FTP脚本两种编写方式,手动和录制.亲测 No problem!^_^ 1.首先要了解loadrunner中几个 ...

  6. Loadrunner进行性能测试的步骤

    Loadrunner 11是一款免费的性能测试工具,他包含三个大模块 •使用VuGen:创建脚本•运用Controller:设置方案•查看Analysis:分析测试结果 结合软件测试的流程可以知道使用 ...

  7. LoadRunner关联函数的脚本实例--如何操作关联参数

    LoadRunner关联函数的脚本实例--如何操作关联参数 这几天一直在学习LoadRunner的VuGen编程,今天想对关联函数web_reg_save_param做详细的试验和研究: ~f6p q ...

  8. 【原创】LoadRunner Java Vuser脚本的配置和调试指南

    1 编写目的 本文介绍了Loadrunner多负载压力机的配置,并通过测试Java Vuser的数据库连接脚本对配置结果进行了验证,同时对配置过程中遇到的问题和解决的过程进行了记录,关于Java数据库 ...

  9. Loadrunner Vugen参数列表中数据分配方法及更新值的时间9种组合说明及验证

    作为刚开始学习Loadrunner的新人,Data Assignment Method以及Update Method在相互组合之后,LR如何进行取值让我很是头疼. 于是花了一个晚上的时间认真学习官方文 ...

随机推荐

  1. Drivers Dissatisfaction 最小生成树+LCA

    题意:给一张n个点m条边的连通图,每条边(ai,bi)有一个权值wi和费用ci, 表示这条边每降低1的权值需要ci的花费.现在一共有S费用可以用来降低某些边的权值 (可以降到负数),求图中的一棵权值和 ...

  2. @Springboot搭建项目controller层接收json格式的对象失败

    今天在使用swagger2测试的时候出错 1.@requestBody注解常用来处理content-type不是默认的application/x-www-form-urlcoded编码的内容,比如说: ...

  3. C++类成员空间分配和虚函数表

    最近在自学python,看到继承和类,就顺便复习了C++的类和继承等方面的知识. 先看Base基类 class Base { private: virtual void display() { cou ...

  4. Libevent学习笔记(四) bufferevent 的 concepts and basics

    Bufferevents and evbuffers Every bufferevent has an input buffer and an output buffer. These are of ...

  5. 【题解】【LibreOJ Round #6】花团 LOJ 534 时间线段树分治 背包

    Prelude 题目链接:萌萌哒传送门(/≧▽≦)/ Solution 如果完全离线的话,可以直接用时间线段树分治来做,复杂度\(O(qv \log q)\). 现在在线了怎么办呢? 这其实是个假在线 ...

  6. jquery ajax thinkphp异步局部刷新完整流程

    环境:ThinkPHP3.2.3,jQuery3.2   前言: 在一般的网站中,都需要用到jquery或者其他框架(比如angular)来处理前后端数据交互,thinkphp在后台也内置了一些函数用 ...

  7. Java常量池详解之Integer缓存

    一个Java question,求输出结果   public class IntegerTest { public static void main(String[] args) { objPoolT ...

  8. fastjson的@JSONField注解的一点问题

    @JSONField 看源码它可以作用于字段和方法上. 引用网上说的, 一.作用Field @JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称. 但是 ...

  9. oschina ios开发学习

    应该跟android版的类似,例如服务器端在oschina-prefix.pch里 #define api_news_list @"http://www.oschina.net/action ...

  10. python-num18 - django进阶一

    一.深入django的路由系统 下面为django的请求生命周期 下面来看下整个生命周期中的路由系统: 在Django的urls中我们可以根据一个URL对应一个函数名来定义路由规则如下: " ...