本次LoadRunner12学习用户指南,学习周期预计3天,每天学习1-2单元内容!


2017.12.17

一、使用HPE Web Tours示例应用程序

本教程使用 HPE Web Tours(一个基于Web的旅行社系统示例)来演示如何使用LoadRunner作为负载测试的解决方案。Web Tours用户连接到Web服务器,搜索航班,预订航班并查看航班行程。

虽然LoadRunner支持许多不同的协议,但本教程将演示如何加载测试基于Web的应用程序。

在本教程的这一部分,您将学习如何开始和使用Web Tours。

先决条件

确保LoadRunner安装在默认文件夹C:\ Program Files(x86)\ HPE \ LoadRunner中。如果LoadRunner安装在非默认文件夹中,Web Tours应用程序将不会打开。

https://marketplace.saas.hpe.com/appdelivery/content/web-tours-sample-application下载Web Tours应用程序。按照给出的指示进行安装。

确保您具有Internet Explorer 10或更高版本。

Web Tours需要Java版本7更新65或Java 8才能正常运行。您可以从控制面板或http://java.com查看您的版本。如有必要,请升级到版本8。

将本地主机添加到例外站点列表。

在LoadRunner机器上,打开计算机的控制面板。

搜索Java并双击Java图标。Java控制面板打开。

单击安全选项卡,然后单击编辑站点列表。点击添加并输入http:// localhost:1080。点击继续以批准该地址。批准任何警告。

启动示例Web服务器。

命令行窗口打开,指示服务器正在运行。访问Web Tours应用程序时,请保持此窗口打开。


二、构建Vuser脚本

介绍VuGen - 虚拟用户生成器

在性能测试环境中,LoadRunner使用虚拟用户(也称为Vuser)来替代人员用户。Vuser通过模仿典型用户的行为,以可重复和可预测的方式在系统上生成负载。

您可以使用VuGen(LoadRunner的虚拟用户生成器)来创建Vuser脚本。VuGen按照记录和回放的原则工作。当您在应用程序中浏览业务流程时,VuGen会记录您的操作并将这些操作转换为Vuser脚本中的步骤。这些Vuser脚本构成了您的负载测试的基础。

创建一个空白的Vuser脚本

要开发Vuser脚本,首先打开VuGen并创建一个空白脚本。之后,您可以通过录制事件并向脚本添加手动增强功能来增强空白脚本。

在本节中,您将打开VuGen并创建一个基于Web-HTTP / HTML协议的空白Vuser脚本。

  1. 在LoadRunner机器上,双击桌面上的虚拟用户生成器快捷方式图标以打开VuGen。

  2. 单击VuGen工具栏上的添加新脚本按钮,或者选择文件>新建脚本和解决方案。“创建新脚本”对话框打开。

  3. 在类别下,选择单个协议。VuGen显示(按字母顺序)单协议脚本的可用协议。

  4. 选择Web - HTTP / HTML,然后单击创建。

录制Vuser脚本

开发Vuser脚本的下一步是记录真实用户执行的操作。在前一节中,您创建了一个空的Web-HTTP / HTML Vuser脚本。

现在您可以开始将操作直接记录到脚本中。您将跟踪旅行社为了预定从丹佛飞往洛杉矶的航班而执行的行动,并检查航班行程。

注意:要使VuGen能够记录您在Web Tours应用程序中执行的操作,请单击Record> Recording Options。在“录制选项”对话框中,选择“常规”>“脚本”,然后在“脚本选项”下,确保已清除“作为COM本地服务器创建的跟踪进程”复选框。

要记录Vuser脚本:

  1. 在Web Tours网站上开始录制。

    • 单击录制>录制或单击VuGen工具栏上的录制按钮。“开始录制”对话框打开。

    • 在“ 记录到操作”框中,选择“操作”。

    • 从记录列表中选择Web浏览器。
    • 在“ 应用程序”框中,确保出现Microsoft Internet Explorer。
    • 在URL地址框中,输入http:// localhost:1080 / WebTours。
    • 点击开始录制。新的Web浏览器打开并显示Web Tours主页。
  2. 登录到Web Tours。

    • 输入以下信息:

    用户名:jojo

    密码:豆

    • 在左侧窗格中,单击登录。网络游览欢迎您到应用程序。
  3. 输入航班详细信息。

    • 点击航班。查找航班页面打开。

    • 从出发城市,选择丹佛(默认)。

    • 出发日期:保持默认日期。

    • 从抵达城市,选择洛杉矶。

    • 退货日期:保留默认日期。

    • 从座位偏好选择 走道。

    • 保留其余的默认设置,然后点击继续。查找航班页面打开。

  4. 选择一个航班。

    • 点击继续接受默认的航班选择。“付款细节”页面打开。
  5. 输入付款信息并预订航班。

    • 在信用卡框中,输入12345678。

    • 在Exp Date框中,输入06/19。

    • 点击继续。“发票”页面打开,显示您的发票。
  6. 在左侧窗格中,单击行程。行程页面打开。

  7. 在左侧窗格中,单击注销。

  8. 关闭浏览器,然后单击VuGen浮动工具栏上的“ 停止录制”按钮,停止录制过程。

VuGen生成所需的代码并将代码插入到Vuser脚本中。

如果Design Studio打开,请单击Close关闭Design Studio。

  1. 保存Vuser脚本。

    • 选择文件>脚本另存为。
    • 导航

查看Vuser脚本

您现在已经记录了旅行社登录,预订航班,检查行程和注销的行为。VuGen记录了从点击“ 开始录制”按钮到点击“ 停止录制”按钮的那一刻。

您现在可以使用VuGen来查看脚本。VuGen允许您以多种格式查看Vuser脚本:

  • 该解决方案资源管理器为您提供了结构化的访问Vuser脚本的各个部分,以及多项与该Vuser脚本相关的文件。

  • “ 步骤导航器”显示脚本的基于图标的视图,该脚本将Vuser的操作列为步骤。对于录制过程中执行的每个操作,VuGen都会在步骤导航器中生成相应的步骤。

“步骤导航器”将显示一个快照图标,指示特定步骤包含快照。

  • VuGen 编辑器显示脚本的基于文​​本的视图。在编辑器中,Vuser的操作被列为API函数。在编辑器中,VuGen使用颜色编码在脚本中显示函数及其参数值。您可以将C或LoadRunner API函数以及控制流程语句直接键入到脚本中。

三、重放脚本

在创建Vuser脚本之后,通过从VuGen运行它进行验证。即使录制过程中相同的操作成功,有时重播也会失败。

许多应用程序使用每次使用应用程序时都会更改的动态值。例如,某些服务器为每个新会话分配一个唯一的会话ID。当您尝试重放录制的会话时,应用程序会创建一个与录制的会话ID不同的新会话ID。当您重播特定类型的Vuser脚本时,动态值(例如这些唯一的会话ID)可能会造成困难。例如,动态会话ID通常会在重放Web-HTTP / HTML脚本时造成问题,但在重播TruClient脚本时则不会。

LoadRunner使用相关性来解决动态值的问题。当你关联一个值时,VuGen把改变的值(在我们的例子中是会话ID)保存到一个参数中。运行Vuser脚本时,Vuser不会使用记录的值,而是使用由服务器分配给它的新会话标识。

对于包含动态参数(例如会话ID)的脚本,VuGen将在录制结束时自动提示您关联这些值。

如何关联我的脚本

  1. 打开设计工作室。

点击工具栏上的Design Studio按钮,或者选择Design> Design Studio。

VuGen扫描脚本及其相关数据,搜索可能的动态值。

  1. 关联会话ID。(因为软件最好不要设置成中文版本,所以操作用了以下英文表示)

    • Select the Session ID entry in the Correlation tab, and click Correlate. VuGen changes the status of the Session ID to Applied, and inserts a new function at the top of the Vuser script. The new function saves the original session ID to a parameter.

    • Close the Design Studio.

  2. 检查相关性语句的语法。

    在VuGen编辑器中,找到VuGen添加到脚本开头的函数。新条目具有以下格式:

四、重播Vuser脚本

LoadRunner运行时设置使您可以模拟不同类型的用户活动和行为。例如,您可以模拟立即响应以从服务器输出的用户,或者在每个响应之前停止并思考的用户。您还可以配置运行时设置,以指定Vuser在Vuser脚本中重复执行一组操作的次数。

有一些常规的运行时设置,以及特定于某些Vuser协议的设置。例如,对于Web模拟,您可以指示您的Vuser在Firefox,Chrome或Internet Explorer中重播您的脚本。

  • 运行逻辑。Vuser重复Vuser脚本的各个部分的次数。
  • 起搏。重复之间的等待时间。
  • 思考时间。Vuser停止思考脚本步骤之间的时间。
  • 日志。您想要在播放过程中收集的信息级别。

要配置运行时设置:

  1. Open the Vuser script that you saved in the previous lesson.
  2. Open the Runtime Settings view.

Click Replay > Runtime Settings or press F4. The Runtime Settings view opens in the VuGen editor.



3. Set the Run Logic settings.

In the left pane, under General, click Run Logic.

The Run Logic settings enable you to set the number of iterations for the Vuser script. This is the number of times to repeat the Action section of the Vuser script when the script is replayed.

Set the Number of iterations to 2.

(设置迭代次数为2)



4. Set the Pacing settings.

(设置起搏设置。)

In the left pane, under General, click Pacing.

he Pacing settings enable you to control the time between iterations. You will specify a random time. This accurately emulates a real-life setting where the user waits between actions, but at random intervals. For example, you do not see real users always waiting exactly 60 seconds between repeated actions.

Select the third radio button, and select the following:

Start new iteration at Random intervals, every 60.000 to 90.000 second(s).

  1. 设置日志设置。

在左侧窗格的常规下,选择日志。

该日志设置指示多少信息,同时运行的Vuser脚本日志。在开发Vuser脚本的同时,您可能需要启用某些日志记录以进行调试,但是一旦您验证了脚本是否正常工作,则只能启用日志记录功能,甚至禁用日志记录功能。

Select Extended log and enable Parameter substitution. This option will be relevant for the following lesson at which point it will be discussed.

(允许参数替换)

  1. View the Think Time settings.

    (思考时间)

    In the left pane, under General, click Think Time.

    Keep the default think time setting - Ignore think time. You will set the think time from the Controller. Keep in mind that when you run the script in VuGen, it will run quickly since it will not include think time.

运行Vuser脚本

录制Vuser脚本并设置运行时设置后,即可运行该脚本。

运行Vuser脚本

  1. 在VuGen中打开Vuser脚本。
  2. 单击重播>运行或单击VuGen工具栏上的重播按钮。

VuGen提供了一些脚本正在运行的指标。

  1. VuGen的左下角显示“正在运行 ” 信息。
  2. 编辑器中出现一个黄色标记,并指示正在重播的特定行。
  3. “步骤导航器”窗格指示正在重播的步骤。
  4. “输出”窗格在重播过程中显示消息。

五、准备负载测试的Vuser脚本

(在本节中具体操作都被省略了,目前不太感兴趣,在教室瑟瑟发抖)

系统如何与许多用户同时工作?系统会减速到不可接受的水平吗?

在本课中,您将学习不同的方法来增强脚本并使其在负载测试过程中更有效。

如何衡量业务流程的持续时间?

在准备部署应用程序时,您需要测量特定业务流程的持续时间 - 登录需要多长时间,预订航班等等。每个业务流程通常由脚本中的一个或多个步骤或操作组成。在Vuser脚本中,通过将这些操作包含在事务中来指定一系列要测量的操作。

运行包含事务的Vuser脚本时,LoadRunner会收集有关执行事务所花费的时间的信息,并以颜色编码的图表和报告显示结果。您可以使用这些信息来帮助确定应用程序是否满足性能要求。

(具体操作在此处省略)

如何模拟多个用户?

在您的模拟中,您跟踪了预订航班并选择过道座位的用户。然而,在现实生活中,不同的用户会有不同的偏好。为了改善您的测试,您需要检查用户是否选择了不同的座位偏好(通道,窗口或无)时,预订是否有效。

为了完成这个,你将参数化脚本。这意味着您将记录值Aisle取出,并将其替换为参数。您将把参数的值放在参数文件中。运行脚本时,Vuser将使用参数文件(通道,窗口或无)中的值,从而模拟真正的旅行社环境。

LoadRunner12学习之路(1-5)的更多相关文章

  1. LoadRunner12学习之路(6-8)

    六.创建负载测试场景 如何启动控制器? 要开始开发场景,请打开LoadRunner Controller. 打开HPE LoadRunner Controller. 在LoadRunner机器上,单击 ...

  2. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  3. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  4. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  5. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  6. [精品书单] C#/.NET 学习之路——从入门到放弃

    C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...

  7. Redis——学习之路四(初识主从配置)

    首先我们配置一台master服务器,两台slave服务器.master服务器配置就是默认配置 端口为6379,添加就一个密码CeshiPassword,然后启动master服务器. 两台slave服务 ...

  8. Redis——学习之路三(初识redis config配置)

    我们先看看config 默认情况下系统是怎么配置的.在命令行中输入 config get *(如图) 默认情况下有61配置信息,每一个命令占两行,第一行为配置名称信息,第二行为配置的具体信息.     ...

  9. Redis——学习之路二(初识redis服务器命令)

    上一章我们已经知道了如果启动redis服务器,现在我们来学习一下,以及如何用客户端连接服务器.接下来我们来学习一下查看操作服务器的命令. 服务器命令: 1.info——当前redis服务器信息   s ...

随机推荐

  1. 【转】从头说catalan数及笔试面试里那些相关的问题

    http://blog.csdn.net/han_xiaoyang/article/details/11938973#t6

  2. Java同步锁何时释放?

    在测试java多线程中有关 “生产者和消费者” 这个经典问题的时候,写代码测试的时候,思考到一些问题(所以还是要动手,实践才能储真知啊), synchronize 同步锁何时释放,何时获得?重新获得锁 ...

  3. Node.js - 断言

    什么是断言? 程序中的断言是什么意思,让我们带着疑问一步步探索 断言即我们相信程序某个特定点布尔表达式为真 举个例子就是: 我相信你是对的,然后让别人判断一下你是对的或错的,最后我得到结果. 好了,进 ...

  4. webpack-Dependency Graph(依赖图)

    依赖图(Dependency Graph) 任何时候,一个文件依赖于另一个文件,webpack 就把此视为文件之间有依赖关系. 这使得 webpack 可以接收非代码资源(non-code asset ...

  5. Qt移动应用开发(四):应用粒子特效

    Qt移动应用开发(四):应用粒子特效 上一篇文章介绍了Qt Quick是如何对帧动画进行支持的.帧动画的实现离不开状态机.而状态机.动画和状态切换(transitions)则是Qt框架的核心内容.也就 ...

  6. Ioc 器管理的应用程序设计,前奏:容器属于哪里? 控制容器的反转和依赖注入模式

    Ioc 器管理的应用程序设计,前奏:容器属于哪里?   我将讨论一些我认为应该应用于“容器管理”应用程序设计的原则. 模式1:服务字典 字典或关联数组是我们在软件工程中学到的第一个构造. 很容易看到使 ...

  7. Android5.0(lollipop)新特性介绍(一)

    今年6月的Google I/O大会上.Android L的初次见面我相信让会让非常多android粉丝有些小激动和小期待.当然作为开发人员的我来说,激动不言而喻,毕竟这是自08年以来改变最大的一个版本 ...

  8. java的自动类型转换

    package BaseType; /*java的自动类型提升和窄化转换 * * 1. 当一个char,short,byte类型的变量被赋值给一个超出他自身能表示的最大范围的数,java会自动将该数转 ...

  9. scikit-learn:class and function reference(看看你究竟掌握了多少。。)

    http://scikit-learn.org/stable/modules/classes.html#module-sklearn.decomposition Reference This is t ...

  10. ASP.NET for WebApi

    WebApi,听说过吧?呵呵. 感觉比WebService,WCF要强.尤其是那个啥WCF,啥鬼东西,真难懂.真难搞.真难用. 说比WebService要强,是因为不用在本地先生成个代理.而且XML也 ...