laodrunner11

 

 1

 

简介 LoadRunner

在过去的 30 年中,许多公司已经将软件作为了自动化工作的工具。软件应用程序已经极大地提高了人们的工作效率和社会生产力,并成为促进全球经济协作与信息共享的一种新媒介。事实上,软件应用程序已经成为各类业务关键信息共享和事务处理的主要途径。如今,软件应用程序包含了从电子邮件到用于事务处理的 CRM 等业务。

随着软件开发技术不断发展和日益成熟,现代应用程序也越来越复杂。应用程序可以利用数十个甚至数百个组件完成以前用纸或人工完成的工作。在业务处理过程中,应用程序复杂度与潜在故障点数目之间有直接的关联。这使得找出问题根本原因变得越来越困难。

而且,软件应用程序和汽车不同。它们没有仅在损坏后才需要更换的永久部件。无论是要增强竞争优势,还是要响应业务状况中的变化,软件应用程序每周、每月、每年都在变化。不断的变化又会产生其他风险,而这些风险需要由公司来管理。

软件惊人的变化速度和激增的复杂性为软件开发过程带来了巨大的风险。严格的性能测试是量化和减少这种风险常见的策略。使用 HP LoadRunner 进行自动化负载测试是应用程序部署过程中一个非常重要的环节。

 1  • 简介 LoadRunner

为什么要实现性能测试自动化? 

自动化性能测试是利用产品、人员和流程来降低应用程序、升级程序或补丁程序部署风险的一种手段。自动化性能测试的核心是向预部署系统施加工作负载,同时评估系统性能和终用户体验。一次组织合理的性能测试可以让用户清楚以下几点:

应用程序对目标用户的响应是否足够迅速?

应用程序是否能够游刃有余地处理预期用户负载?

应用程序是否能够处理业务所需的事务数?

在预期和非预期用户负载下应用程序是否稳定? 

是否能够确保用户在使用此应用程序时感到满意?

通过回答这些问题,自动化性能测试可以量化业务状况的更改所带来的影响。这反过来也可以让用户清楚部署此应用程序的风险。有效的自动化性能测试可帮助您做出更加明智的发行决定,防止发行的应用程序带来系统停机和可用性问题。

LoadRunner 包含哪些组件?

LoadRunner 包含以下组件:

Virtual User Generator 录制终用户业务流程并创建自动化性能测试脚本,即 Vuser 脚本。

Controller 组织、驱动、管理并监控负载测试。

Load Generator 通过运行 Vuser 产生负载。

Analysis 用于查看、剖析和比较性能结果。

Launcher 使您可以从单个访问点访问所有 LoadRunner 组件。

 

 1  • 简介 LoadRunner

了解 LoadRunner 术语

场景

Vuser

Vuser 脚本

事务

场景文件根据性能要求定义每次测试期间发生的事件。

在场景中, LoadRunner 虚拟用户(或称 Vuser代替真实用户Vuser 模仿真实用户的操作来使用应用系统。一个场景可以包含数十、数百乃至数千个 VuserVuser 脚本描述 Vuser 在场景中执行的操作。

要评测服务器性能,需要定义事务。事务代表要评测的终端用户业务流程。

什么是负载测试流程?

负载测试一般包括 5 个阶段:规划、创建脚本、定义场景、执行场景和分析结果。

 

规划负载测试。定义性能测试要求,例如并发用户数量、典型业务流程和要求的响应时间。

创建 Vuser 脚本。在自动化脚本中录制终用户活动。

定义场景。使用 LoadRunner Controller 设置负载测试环境。

运行场景。使用 LoadRunner Controller 驱动、管理并监控负载测试。

分析结果。使用 LoadRunner Analysis 创建图和报告并评估性能。

熟悉 HP Web Tours

为说明 HP 解决方案,本教程举例说明了示例应用程序的性能要求。HP Web Tours 应用程序是一个基于 Web 的旅行社系统。 HP Web Tours 用户可以连接到 Web 服务器,搜索航班,预订机票并查看航班路线。

虽然 LoadRunner 支持 40 多种类型的应用程序,但本教程仅演示了如何对基于 Web 的应用程序进行负载测试。如果进行负载测试的应用程序不是基于 Web,请联系 HP 以获取帮助。在这部分,您将逐步熟悉 HP Web Tours 应用程序。

 1  • 简介 LoadRunner

打开 HP Web Tours

您将使用 HP Web Tours 应用程序来亲身体验性能测试。继续学习本教程之前,请先按照以下步骤简单熟悉一下此应用程序。

确保示例 Web 服务器正在运行。

安装并重启 LoadRunner 之后, Web 服务器会自动启动。如果重启系统后服务器仍未运行,请选择开始 > 程序 > HP LoadRunner > Samples > Web > 启动 Web

服务器

 

注:如果尝试启动已运行的 Web 服务器,将会出现错误消息。您可以忽略此消息,继续学习本教程。

 

打开 HP Web Tours 应用程序。

选择开始 > 程序 > HP LoadRunner > Samples > Web > HP Web Tours 应用程序。浏览器将打开 HP Web Tours 的主页。

 

注: 

确保 LoadRunner 安装在默认的计算机目录下。如果 LoadRunner 没有安装在默认目录下,将无法打开 HP Web Tours 应用程序。

HP Web Tours 应用程序要求使用安装了 Java 的浏览器。有关详细信息,请参阅相关 Java 文档。

 

登录到 HP Web Tours

输入以下信息:

User name (用户名):jojo Password (密码):bean

在左窗格中单击 Login (登录)。将出现 HP Web Tours 应用程序欢迎您使用的消息。

14

 1  • 简介 LoadRunner

预订机票。

在左窗格中单击 Flights (航班)。将打开 Find Flight (查找航班)页面。

 Arrival City (到达城市)更改为 Los Angeles (洛杉矶)。单击 Continue

(继续)。

 Find Flight (查找航班)页面上,接受默认航班选择并单击 Continue (继续)。

 Payment Details (支付明细)页面上单击 Continue (继续)。将显示 Invoice

(发票)页面,概述航班预订情况。

结束您的 HP Web Tours 会话。在左窗格中单击 Sign Off (注销)退出。

应用程序要求

现在您已经熟悉了 HP Web Tours,假设您是负责检验该应用程序是否满足业务需要的性能工程师。项目经理给您列出了 4 个发行条件:

HP Web Tours 必须能够成功处理 10 家旅行社的并发操作。

HP Web Tours 必须能够处理 10 个并发的机票预订操作,且响应时间不能超过 90 秒。

HP Web Tours 必须能够处理 10 家旅行社的并发航班路线查看操作,且响应时间不能超过 120 秒。

HP Web Tours 必须能够处理 10 家旅行社的并发登录和注销操作,且响应时间不能超过 10 秒。

本教程将指导您完成检验每项业务需求的负载测试,使您清楚是否可以发行此应用程序。

 

 2

 

LoadRunner 的功能 

为了清晰说明 LoadRunner 的功能,我们将运行一次负载测试,使用多 10 个并发用户对一个数据库应用程序运行负载测试,并分析测试结果。这次测试将模拟几家旅行社同时使用机票预订系统(例如登录、搜索航班、购买机票、查看航班路线和注销)。

测试期间,您可以使用 LoadRunner 的联机监控器观察 Web 服务器在负载下的运行情况。特别是可以看到,负载的增加如何影响服务器对用户操作的响应时间

(事务响应时间),以及如何引起错误的产生。

当您了解了如何使用 LoadRunner 在系统中生成负载并测评系统对该负载的响应

情况后,您将学习如何使用 LoadRunner 组件(VuGenController  Analysis

创建并运行自己的测试,以及如何分析测试结果。

 

注:您可以购买 LoadRunner 许可证,以使用所需的 Vuser 数来测试应用程序,从而获得准确结果。本 LoadRunner 版本为试用版,多只能使用 10  Vuser

 

 

创建负载测试

Controller 是中央控制台,用来创建、管理和监控您的测试。您可以使用 Controller 来运行模拟实际用户操作的示例脚本,并通过让一定数量的 Vuser 同时执行这些操作,在系统上产生负载。

打开 HP LoadRunner 窗口。

选择开始 > 程序 > HP LoadRunner > LoadRunner。这时将打开 HP LoadRunner

11.00 窗口。

 

打开 Controller

 LoadRunner Launcher 窗格中单击运行负载测试。默认情况下,LoadRunner Controller 打开时将显示“新建场景”对话框。

 

单击取消

打开示例测试。

 Controller 菜单中,选择文件 > 打开,然后打开 安装位置>\ 

tutorial 目录中的 demo_scenario.lrs

 

将打开 LoadRunner Controller 的“设计”选项卡, demo_script 测试将出现在 “场景组”窗格中。您可以看到已经分配了 10  Vuser 来运行此测试。

 

 

注:如果没有将教程安装在默认 LoadRunner 安装目录下,脚本路径会出错(脚本路径将显示为红色)。要输入正确的路径,请选择脚本并单击向下箭头。单击浏览按钮并转至 安装位置>\tutorial 目录中的 demo_script,然后单击确定

 

现在就可以运行测试了。

运行负载测试

运行选项卡中,单击开始场景按钮。将出现 Controller 运行视图, Controller 开始运行场景。

在“场景组”窗格中,可以看到 Vuser 逐渐开始运行并在系统中生成负载。您可以通过联机图像看到服务器对 Vuser 操作的响应情况。

 

监控负载测试

在应用程序中生成负载时,您希望实时了解应用程序的性能以及潜在的瓶颈。

使用 LoadRunner 的一套集成监控器可以评测负载测试期间系统每一层的性能以及服务器和组件的性能。 LoadRunner 包含多种后端系统主要组件(如 Web、应用程序、网络、数据库和 ERP/CRM 服务器)的监控器。

 1 查看默认图像。

默认情况下, Controller 显示“正在运行 Vuser”图、“事务响应时间”图、

“每秒点击次数”图和“Windows 资源”图。前三个不需要配置。已经配置好 

Windows 资源监控器来进行这次测试。

正在运行 Vuser - 整个场景。通过此图可以监控在给定时间内运行的 Vuser 数目。您可以看到 Vuser 以每分钟 2 个的速度逐渐开始运行。

 

事务响应时间 - 整个场景。通过此图可以监控完成每个事务所用的时间。您可以看到客户登录、搜索航班、购买机票、查看线路和注销所用的时间。

 

另外还可以看到,随着越来越多的 Vuser 登录到被测试的应用程序进行工作,事务响应时间逐渐延长,提供给客户的服务水平也越来越低。

每秒点击次数 - 整个场景。通过此图可以监控场景运行期间 Vuser 每秒向 Web 服务器提交的点击次数(HTTP 请求数)。这样您就可以了解服务器中生成的负载量。

Windows 资源。通过此图可以监控场景运行期间评测的 Windows 资源使用情况(例如, CPU、磁盘或内存的利用率)。在第 7 课“创建负载测试场景” 中您将学习如何配置 Windows 资源和其他监控器。

 

提示:

每个测量值都显示在窗口底部的图例部分以不同颜色标记的行中。每行对应图中与之颜色相同的一条线。

选中一行时,图中的相应线条将突出显示,反之亦然。

 

 2 查看错误信息。如果计算机负载很重,可能会发生错误。

在“可用图”树中,选择错误统计信息图,并将其拖动到“Windows 资源”图窗格中。“错误统计信息”图提供场景运行期间所发生错误的详细数目和发生时间。错误按照来源分组(例如,在脚本中的位置或负载生成器的名称)。

 

在本例中,您可以看到 5 分钟后,系统开始不断发生错误。这些错误是由于响应时间延长,导致发生超时而引起的。

 

注:场景要运行几分钟。在场景运行过程中,可以在图像和 Vuser 之间来回切换,显示联机结果。

 

分析结果

测试运行结束后, LoadRunner 会提供由详细图和报告构成的深入分析。您可以将多个场景的结果组合在一起来比较多个图。另外也可以使用自动关联工具,将所有包含可能对响应时间有影响的数据的图合并起来,准确地指出问题的原因。使用这些图和报告,可以轻松找出应用程序的性能瓶颈,同时确定需要对系统进行哪些改进以提高其性能。在第 10 课“分析场景”中您将学习如何使用 Analysis 工具。

要打开 Analysis 来查看场景,可选择结果 > 分析结果或单击分析结果按钮。结果

保存在 安装位置>\Results\tutorial_demo_res 目录下。

后续课程

现在您已经了解了 LoadRunner 自动化测试流程的功能,接下来要准备学习如何创建负载测试脚本,设计并运行自己的测试以及分析测试结果。后面的课程将会指导您得到这些结果。

 

 3

 

创建脚本

要生成负载,首先要创建模拟实际用户行为的自动脚本。在这一课,您将学习下列内容:

 

Virtual User Generator (VuGen) 简介

在测试环境中, LoadRunner 在物理计算机上使用 Vuser 代替实际用户。 Vuser 以一种可重复、可预测的方式模拟典型用户的操作,对系统施加负载。

LoadRunner Virtual User Generator (VuGen) 以“录制-回放”的方式工作。当您在

应用程序中执行业务流程步骤时, VuGen 会将您的操作录制到自动化脚本中,并将其作为负载测试的基础。

 

注:如果您已经看完了《HP LoadRunner 快速入门》,您会注意到在那里录制的脚本步骤与将在下面录制的脚本步骤相同。但本文将更加详细地说明整个录制过程。

 

如何开始录制用户操作?

要开始录制用户操作,请打开 VuGen 并创建一个空白脚本。然后通过录制操作和手动添加增强功能来填充这个空白脚本。

在这一节,您将打开 VuGen 并创建一个空白 Web 脚本。

启动 LoadRunner

选择开始 > 程序 > HP LoadRunner > LoadRunner。这时将打开 HP LoadRunner

11.00 窗口。

 

打开 VuGen

 LoadRunner Launcher 窗格中,单击创建/编辑脚本。这时将打开 VuGen

始页。

创建一个空白 Web 脚本。

 

协议是客户端用来与系统后端进行通信的语言。HP Web Tours 是一个基于 Web 的应用程序,因此您将创建一个 Web Vuser 脚本。

请确保“类别”是所有协议VuGen 将列出适用于单协议脚本的所有可用协议。向下滚动列表,选择 Web (HTTP/HTML) 并单击创建,创建一个空白 Web 脚本。

 

注:多协议脚本中,高级用户可以在一个录制会话期间录制多个协议。在本教程中,您将创建一个 Web 类型的协议脚本。录制其他类型的单协议或多协议脚本的过程与录制 Web 脚本的过程类似。

 

使用 VuGen 向导模式

空白脚本以 VuGen 向导模式打开,同时左侧显示任务窗格。如果没有显示任务窗格,请单击工具栏上的任务按钮。如果“开始录制”对话框自动打开,请单击取消

VuGen 的向导将指导您逐步完成创建脚本并使其适应测试环境的过程。

任务窗格列出脚本创建过程中的各个步骤或任务。在您执行各个步骤的过程中, VuGen 将在窗口的主要区域显示详细说明和指示信息。

 

可以自定义 VuGen 窗口来显示或隐藏各个工具栏。要显示或隐藏工具栏,请选择视图 > 工具栏并选中/不选中目标工具栏旁边的复选标记。通过打开“任务”窗格并单击其中一个任务步骤,可以随时返回到 VuGen 向导。

如何录制业务流程来创建脚本?

创建用户模拟场景的下一步就是录制实际用户所执行的操作。在前面您已经创建了一个空的 Web 脚本。现在可以将用户操作直接录制到脚本中。在这一节,您将跟踪一个完整的事件(一名乘客预订从丹佛到洛杉矶的航班,然后查看航班路线)。要录制脚本,请执行下列操作:

 1  HP Web Tours 网站上开始录制。

 a 单击步骤 1 的“任务”窗格中的录制应用程序 b 在说明窗格底部,单击开始录制

 

也可以选择 Vuser > 开始录制或者单击页面顶部工具栏中的开始录制按钮。 “开始录制”对话框打开。

 

 c  URL 地址框中,输入 http://localhost:1080/WebTours录制到操作框中,选择 Action。单击确定。这时将打开一个新的 Web 浏览窗口并显示 HP Web Tours 网站。

 

注:如果打开网站时出错,请确保 Web 服务器正在运行。要启动服务器,请选择启动 > 程序 > LoadRunner > Samples > Web > 启动 Web 服务器。这时将打开浮动的“正在录制”工具栏。

 

登录到 HP Web Tours 网站。

 User Name (用户名)框中输入 jojo,在 Password (密码)框中输入 bean。单击 Login (登录)。欢迎页面打开。

输入航班详细信息。

单击 Flights (航班)。这时将打开 Find Flight (查找航班)页面:

Departure City (出发城市)Denver (丹佛,默认值)

Departure Date (出发日期):保持默认值(当前日期)

Arrival City (到达城市):Los Angeles (洛杉矶)

Return Date (返回日期):保持默认值(第二天的日期)

Seating Preference (首选座位)Aisle (靠近过道)

接受其余选项的默认设置并单击 Continue (继续)。这时将打开 Search Results

(搜索结果)页面。

选择航班。

单击 Continue (继续)接受默认航班选择。 Payment Details (支付明细)页面打开。

输入支付信息并预订机票。

 Credit Card (信用卡)框中输入 12345678,并在 Exp Date (到期日)框中输入 06/10。单击 Continue (继续)。这时将打开 Invoice (发票)页面,显示您的发票。

查看航班路线。

单击左窗格中的 Itinerary (路线)。这时将打开 Itinerary (路线)页面。

单击左窗格中的 Sign Off (注销)。

在浮动工具栏上单击停止以停止录制。

Vuser 脚本生成时会打开“代码生成”弹出窗口。然后 VuGen 向导会自动执行任务窗格中的下一步,并显示关于录制情况的概要信息。(如果看不到概要信息,请单击“任务”窗格中的录制概要。)

 

“录制概要”包含协议信息以及会话期间创建的一系列操作。 VuGen 为录制期间执行的每个步骤生成一个快照,即录制期间各窗口的图片。

这些录制的快照以缩略图的形式显示在右窗格中。如果由于某种原因要重新录制脚本,可单击页面底部的重新录制按钮。

选择文件 > 保存或单击保存按钮,导航到 安装位置>\scripts 并创建名为 Tutorial 的新文件夹。在文件名框中输入 basic_tutorial 并单击保存VuGen 将该文件保存到 LoadRunner 脚本文件夹中,并在标题栏中显示脚本名称。

如何查看脚本?

现在您已经录制了旅行社的登录、预订机票、查看航班线路和注销操作。 VuGen 录制了从单击开始录制按钮到单击停止按钮之间的所有操作步骤。

现在就可以在 VuGen 中查看脚本。您可以在树视图脚本视图中查看脚本。树视图是一种基于图标的视图,将 Vuser 的操作以步骤的形式列出,而脚本视图是一种基于文本的视图,将 Vuser 的操作以函数的形式列出。

树视图

要在树视图中查看脚本,请选择视图 > 树视图,或者单击按钮。要在整个窗口中查看树视图,请单击“任务”按钮隐去“任务”窗格。

 

对于录制期间执行的每个步骤,VuGen 在测试树中为其生成一个图标和一个标题。在树视图中,您将看到以脚本步骤的形式显示的用户操作。大多数步骤都附带相应的录制快照。

快照使脚本更易于理解,更方便在工程师间共享,因为您可以清楚地看到录制过程中录制了哪些屏幕。随后您可以比较快照来验证脚本的准确性。在回放过程中, VuGen 也会为每个步骤创建快照。

单击测试树中任意步骤旁边的加号 (+)。现在您可以看到在预订机票时录制的思考时间。“思考时间”表示您在各步骤之间等待的实际时间,可用于模拟负载下的快速和慢速用户操作。“思考时间”这种机制可以让负载测试更加准确地反映实际用户操作。

 

在脚本视图中,VuGen 在编辑器中显示脚本,并用不同颜色表示函数及其参数值。可以在该窗口中直接输入 C  LoadRunner API 函数以及控制流语句。

 

注:LoadRunner 使用 ANSI C。随着脚本越来越高级,可以利用 C  LoadRunner 扩展到录制和回放以外的功能。

 

后续课程

现在您已经熟悉了如何录制和查看基本脚本,接下来可以学习第 4 课“回放脚本”。

 

 4

 

回放脚本

通过录制一系列典型用户操作(例如预订机票),已经模拟了真实用户操作。将录制的脚本合并到负载测试场景之前,回放此脚本以验证其是否能够正常运行。回放过程中,您可以在浏览器中查看操作并检验是否一切正常。如果脚本不能正常回放,可能需要按照第 5 课“解决常见回放问题”中的说明添加关联。回放脚本之前,可以配置运行时设置,用来帮助您设置 Vuser 的行为。在这一课,您将学习以下内容:

 

如何设置运行时行为?

通过 LoadRunner 运行时设置,可以模拟各种真实用户活动和行为。例如,您可以模拟一个对服务器输出立即做出响应的用户,也可以模拟一个先停下来思考,再做出响应的用户。另外还可以配置运行时设置来指定 Vuser 应该重复一系列操作的次数和频率。

有一般运行时设置和专门针对某些 Vuser 类型的设置。例如,对于 Web 仿真,

可以指示 Vuser  Netscape 而不是 Internet Explorer 中回放脚本。第 6 课“为负

载测试准备脚本”中将会介绍特定设置。在这一课,将讨论适用于所有类型脚本的一般运行时设置。其中包括:

运行逻辑。重复次数

步。两次重复之间的等待时间

思考时间。用户在各步骤之间停下来思考的时间

日志。希望在回放期间收集的信息的级别

注意,也可以在 LoadRunner Controller 中修改运行时设置。这一点将在后面的课

程中讨论。

打开运行时设置对话框。

确保“任务”窗格出现(如果未出现,请单击任务按钮)。单击任务窗格中的验证回放。在说明窗格内的标题运行时设置下单击打开运行时设置超链接。

也可以按 F4 键或单击工具栏中的运行时设置按钮。这时将打开“运行时设置” 对话框。

 

设置“运行逻辑”设置。在左窗格中选择运行逻辑节点。

 

在此节点中设置迭代次数或连续重复活动的次数。将迭代次数设置为 2

配置步设置。在左窗格中选择节点。

 

此节点用于控制迭代时间间隔。可以指定一个随机时间。这样可以准确模拟用户在操作之间等待的实际时间,但使用随机时间间隔时,很难看到真实用户在重复之间恰好等待 60 秒的情况。选择第三个单选按钮并选择下列设置:时间随机,间隔 60,000  90,000 秒。

配置日志设置。在左窗格中选择日志节点。

 

日志设置指出要在运行测试期间记录的信息量。开发期间,您可以选择启用日志记录来调试脚本,但在确认脚本运行正常后,只能用于记录错误或者禁用日志功能。选择扩展日志并启用参数替换。后面的课程将对此选项展开进一步讨论。

查看“思考时间”设置。在左窗格中选择思考时间节点。

 

请勿进行任何更改。您可以在 Controller 中设置思考时间。注意,在 VuGen 中运行脚本时速度很快,因为它不包含思考时间。

单击确定关闭“运行时设置”对话框。

如何实时查看脚本的运行情况?

回放录制的脚本时, VuGen 运行时查看器功能实时显示 Vuser 的活动情况。

默认情况下, VuGen 在后台运行测试,不显示脚本中的操作动画。但在本教程中,您将学习让 VuGen 在查看器中显示操作,从而能够看到 VuGen 如何执行每一步。查看器不是实际的浏览器,它只显示返回到 VuSer 的页面快照。

选择工具 > 常规选项,然后选择显示选项卡。

选择回放期间显示运行时查看器自动排列窗口选项。

 

单击确定关闭“常规选项”对话框。

在“任务”窗格中单击验证回放,然后单击说明窗格底部的开始回放按钮。也可以按 F5 键或单击工具栏中的运行按钮。

如果“选择结果目录”对话框打开,并询问要将结果文件保存到何处,请接受默认名称并单击确定

稍后 VuGen 将打开运行时查看器,并开始运行脚本视图或树视图中的脚本(具体取决于上次打开的脚本)。在运行时查看器中,可以直观地看到 Vuser 的操作。注意回放的步骤顺序是否与录制的步骤顺序完全相同。

回放结束后,会出现一个消息框提示您是否扫描关联。单击

何处可以查看有关回放的信息?

当脚本停止运行后,您可以在向导中查看关于这次回放的概要信息。要查看上次回放概要,请单击验证回放

 

上次回放概要列出检测到的所有错误,并显示录制和回放快照的缩略图。您可以比较快照,找出录制的内容和回放的内容之间的差异。

也可以通过复查事件的文本概要来查看 Vuser 操作。输出窗口中 VuGen 的“回放日志”选项卡用不同的颜色显示这些信息。在这一节,您将打开回放日志并找到某些事件和通知。要查看回放日志,请执行下列操作:

 1 单击说明窗口中的回放日志超链接。也可以单击工具栏中的显示/隐藏输出按钮,或者在菜单中选择视图 > 输出窗口。然后单击回放日志选项卡。

 

在回放日志中按 Ctrl+F 打开“查找”对话框。找到下列内容:

启动终止。脚本运行的开始和结束 - 虚拟用户脚本已启动、 Vuser 已终止

迭代。迭代的开始和结束以及迭代编号(橙色字体部分)。

VuGen 用绿色显示成功的步骤,用红色显示错误。例如,如果在测试过程中连接中断, VuGen 将指出错误所在的行号并用红色显示整行文本。

双击回放日志中的某一行。 VuGen 将转至脚本中的对应步骤,并在脚本视图中突出显示此步骤。

如何确定测试已通过?

回放录制的事件后,需要查看结果以确定是否全部成功通过。如果某个地方失败,则需要知道失败的时间以及原因。

在这一节,您将查看并分析脚本运行结果。 VuGen 会在“测试结果”窗口中提供

回放结果概要信息。

要查看测试结果,请执行下列操作:

要返回到向导,请单击任务窗格中的验证回放

在标题验证下的说明窗格中,单击可视测试结果超链接。也可以选择视图 > 测试结果。这时将打开“测试结果”窗口。

 

“测试结果”窗口首次打开时包含两个窗格:“树”窗格(左侧)和“概要”窗格(右侧)。

“树”窗格包含结果树。每次迭代都会进行编号。“概要”窗格包含关于测试的详细信息以及屏幕录制器视频(如果有的话)。

在“概要”窗格中,上表指出哪些迭代通过了测试,哪些未通过。如果 VuGen

 Vuser 按照原来录制的操作成功执行 HP Web Tours 网站上的所有操作,则认为测试通过。下表指出哪些事务和检查点通过了测试,哪些未通过。稍后在本教程中您将把这些功能添加到测试中。

在下一节,我们将深入研究测试结果,确定回放期间脚本是否能如期到达目标 

Web 页面。

如何搜索或筛选结果?

如果测试结果表明有些地方失败,您可以深入分析测试结果并找出失败的地方。

在“树”窗格中,可以展开测试树并分别查看每一步的结果。“概要”窗格将显示迭代期间的回放快照。

在树视图中展开迭代节点。

展开节点 basic_tutorial 迭代 1,然后单击加号 (+) 展开左窗格中的 Action 概要

节点。展开的节点将显示这次迭代中执行的一系列步骤。

显示结果快照。

选择 Submit Form: login.pl 节点。“概要”窗格显示与该步骤相关的回放快照。

 

查看步骤概要。

“概要”窗格显示步骤概要信息:对象或步骤名、关于页面加载是否成功的详细信息、结果(通过失败完成警告)以及步骤执行时间。

搜索结果状态。您可以使用关键字通过失败搜索测试结果。此操作非常有用,例如当整个结果概要表明测试失败时,您可以确定失败的位置。

要搜索测试结果,请选择工具 > 查找,或者单击查找按钮。这时将打开“查找” 对话框。

 

选择通过复选框,确保未选择其他选项,然后单击查找下一个。“测试树”窗格突出显示第一个状态为通过的步骤。

 

注:如果找不到选定状态的步骤,则不突出显示任何步骤。

 

筛选结果。

可以筛选“测试树”窗格来显示特定的迭代或状态。例如,可以进行筛选以便仅显示失败状态。

要筛选结果,请选择查看 > 筛选器,或者单击筛选器按钮。这时将打开“筛选器” 对话框。

 

状态部分选择失败,不选择任何其他选项。在内容部分选择全部并单击确定。因为没有失败的结果,所以左窗格为空。

关闭“测试结果”窗口。选择文件 > 退出

后续课程

现在您已成功测试了 HP Web Tours 应用程序。接下来可以学习第 5 课“解决常

见回放问题”。

 

 

 5

 

解决常见回放问题

创建脚本后,通过在 VuGen 中运行该脚本来对其进行验证。有时虽然操作录制成功,但简单的回放却会失败。

许多应用程序都使用动态值,每次使用应用程序时这些值都会变化。例如,有些服务器会为每个新会话分配一个唯一的会话 ID。回放录制的会话时,应用程序创建的新会话 ID 与录制的会话 ID 不同。

LoadRunner 通过关联解决了这种问题。关联将动态值(在本例中为会话 ID)保存到参数中。运行模拟场景时, Vuser 并不使用录制的值,而是使用服务器分配的新会话 ID。在这一课,您将看到 LoadRunner 如何自动解决动态值的问题。在这一课,您将学习以下内容:

 47 页的“设置 HP Web Tours,让其出现回放错误”

 48 页的“如何使用唯一的服务器值?”

设置 HP Web Tours,让其出现回放错误

要演示常见的回放错误,您需要修改 HP Web Tours 应用程序中的设置。此设置告诉 HP Web Tours Web 服务器不允许出现重复的会话 ID

打开 HP Web Tours

选择开始 > 程序 > HP LoadRunner > Samples > Web > HP Web Tours 应用程序。浏览器将打开 HP Web Tours 的主页。

 5  • 解决常见回放问题

更改服务器选项。

单击 HP Web Tours 主页上的 administration (管理)链接。将打开 administration (管理)页面。

选择具有以下标题的复选框:Set LOGIN form's action tag to an error page.

(将 LOGIN 表单的操作标记设置为错误页面。)向下滚动到页面底部并单击 

Update (更新)。

向下滚动到页面底部并单击 Return to the Web Tours Homepage (返回到 Web Tours 主页)链接。

此设置告诉服务器不允许出现重复的会话 ID

关闭浏览器。

如何使用唯一的服务器值?

在修改后的 HP Web Tours 配置中,服务器为 Vuser 分配一个唯一的会话 ID。现在

如果回放脚本,将会失败。

为解决此问题,请使用 VuGen 自动检测是否需要关联会话 ID。运行脚本后,VuGen 会提示您扫描脚本,查看需要关联的地方。

您可以让 VuGen 插入将原始会话 ID 保存到参数中这一步。在每个回放会话中, VuGen 都会将新的唯一会话 ID 保存到参数中。在后面的步骤中, VuGen 使用保存的值而不是原来录制的值。

使用动态值录制新脚本。

按照前面第 3 课第 29 页的“如何录制业务流程来创建脚本?”中的录制步骤录

制新脚本,并将新脚本保存为 basic_tutorial_Cor

回放新脚本。

在“任务”窗格中单击验证回放,然后单击说明窗格底部的开始回放按钮。VuGen 将运行新脚本。您会看到输出窗口的回放日志选项卡中有几条显示为红色的错误消息。

48

 5  • 解决常见回放问题

查看回放摘要在“任务”窗格中单击验证回放以查看“上次回放概要”。

 

上面的概要信息说明您的脚本回放失败。

扫描脚本以查找需要关联的地方。

单击说明窗格中标题“动态服务器值”下的链接显示并解析动态服务器值

VuGen 将扫描脚本,搜索录制值与回放值之间的不同。 VuGen 将在输出窗口的

“关联结果”选项卡中显示一列可能需要关联的差异。

 

 5  • 解决常见回放问题

关联会话 ID

选择“关联结果”选项卡中的第一个条目,单击关联VuGen 将在脚本的顶部插入新步骤,将原始会话 ID 保存到参数中。在每个回放会话中, VuGen 都会将新的唯一会话 ID 保存到参数中。在后面的步骤中, VuGen 使用保存的值而不是原来录制的值。选择视图 > 树视图,在测试树中查看此新步骤。

 

检查关联语句的语法。选择视图 > 脚本视图,查看脚本中的关联语句。VuGen 添加到脚本中的语句如下:

web_reg_save_param (“WCSParam_Diff1”,

“LB=userSession value=”,

“RB=>”,

“Ord=1”,

“RelFrameId=1.2.1”,

“Search=Body”,

LAST);

该语句的意思是检查以下两个字符串之间数据的服务器响应:

左边界:userSession value= 

右边界:> 该语句指示 VuGen 将首次出现的此数据保存到参数 WCSParam_Diff1 中。

50

 5  • 解决常见回放问题

再次回放该脚本。

选择 Vuser > 运行,再次回放该脚本。回放结束后,选择视图 > 树视图。在“回放日志”选项卡中查看。您会注意到 VuGen 不再发出用红色标识的错误消息。

右键单击脚本中的 Service: Reg Save Param 并选择转至回放日志中的步骤

VuGen 将光标放到回放日志中对应的行上。日志表明函数 web_reg_save_param

已成功,这说明关联已生效。

修正服务器配置。重置服务器,忽略唯一的会话 ID

选择开始 > 程序 > HP LoadRunner > Samples > Web > HP Web Tours 应用程序,打开 HP Web Tours。在 HP Web Tours 主页上单击 administration(管理)链接。在 administration (管理)页面上取消选择第三个复选框,其标题为:Set

LOGIN form's action tag to an error page. (将 LOGIN 表单的操作标记设置为错误页面。)向下滚动到页面底部并单击 Update (更新)。关闭浏览器。

自动关联在这一课,您在录制用户操作以后扫描了脚本以查看需要关联的地方。

VuGen 还提供了一组可配置的关联规则,用于在录制会话期间处理动态值。有关

自动关联的详细信息,请参阅《HP Virtual User Generator 用户指南》。

大多数服务器都有明确的语法规则(或称上下文),在创建链接和引用时使用。如果使用支持的应用程序服务器录制会话,您可以使用 VuGen 的内置关联规则, VuGen 将在录制期间检测并关联动态值。

后续课程

现在您已熟悉了一些常见的回放问题,接下来可以学习第 6 课“为负载测试准备脚本”。

 

 6

 

为负载测试准备脚本

在前面的课程中,已经验证了脚本是应用程序的精确模拟。您实时观看了脚本的回放并验证了 Vuser 执行的是典型业务流程。

但这只适用于单个用户的模拟情况。当多个用户同时使用应用程序时,该应用程序是否仍可以运行?如果可以,应用程序的性能是否会下降到不可接受的程度? 

接下来我们将为负载测试准备脚本,并设置该脚本以收集响应时间数据。在这一课,您将了解用于增强脚本,以便更有效地进行负载测试流程的不同方法。在这一课,您将学习以下内容:

 

如何评测业务流程?

在准备部署应用程序时,您需要估计具体业务流程的持续时间:登录、预订机票等要花费多少时间。这些业务流程通常由脚本中的一个或多个步骤或操作组成。在 LoadRunner 中,通过将一系列操作标记为事务,可以将它们指定为要评测的操作。

LoadRunner 收集关于事务执行时间长度的信息,并将结果显示在用不同颜色标识的图和报告中。您可以通过这些信息了解应用程序是否符合初的要求。

 

可以在脚本中的任意位置手动插入事务。将用户步骤标记为事务的方法是在事务的第一个步骤前面放置一个开始事务标记,并在后一个步骤后面放置一个结束事务标记。在这一节,您将在脚本中插入一个事务来计算用户查找和确认航班所花费的时间。

打开在第 3 课中创建的脚本 Basic_Tutorial。如果此脚本已经打开,可以选择显示其名称的选项卡。或者可以从“文件”菜单中打开该脚本。要插入事务,请执行下列操作:

打开事务创建向导。

确保出现“任务”窗格。如果未出现,请单击任务按钮。在“任务”窗格的增强功能下单击事务。单击新建事务。将打开事务创建向导。

 

事务创建向导显示脚本中不同步骤的缩略图。

单击新建事务按钮。现在您可以将事务标记拖放到脚本中的指定位置。向导会提示您插入事务的起始点。

插入事务开始标记和事务结束标记。

使用鼠标将事务开括号拖到名为 Search flights button 的第三个缩略图前面并单击将其放下。向导现在将提示您插入结束点。

使用鼠标将事务闭括号拖到名为 reservations.pl_2 的第五个缩略图后面并单击将其放下。

指定事务名称。

向导会提示您输入事务名称。输入 find_confirm_flight 并按 Enter (回车)键。

 

现在已创建了一个新事务。可以通过将标记拖到脚本中的不同位置来调整事务的起始点或结束点。通过单击事务起始标记上方的现有名称并输入新名称,还可以重命名事务。

在树视图中观察事务。  通过选择视图 > 树视图或单击工具栏上的“树”按钮进入树视图。

请注意开始事务标记和结束事务标记现在如何作为新步骤添加到树中,并且正好添加到插入事务的位置。

 

如何模拟多个用户?

在模拟场景中,跟踪一位预订机票并选择靠近过道座位的用户。但在实际生活中,不同的用户会有不同的喜好习惯。要改进测试,需要检查当用户选择不同的座位首选项(靠近过道、靠窗或无)时,是否可以正常预订。

为此需要对脚本进行参数化。这意味着您要将录制的值 Aisle 替换为一个参数。将参数值放在参数文件中。运行脚本时,Vuser 从参数文件中取值(aislewindow  none),从而模拟真实的旅行社环境。

要参数化脚本,请执行以下操作:

找到要更改数据的部分。选择视图 > 树视图进入树视图。

在测试树中双击 Submit Data: reservations.pl 步骤。将打开“提交数据步骤

属性”对话框。

 

右列中的 ABC 图标表示参数是常量。

将常量值更改为变量值。

选择第七行中的 seatPref。单击 Aisle 旁边的 ABC 图标。打开“选择或创建参数”对话框。

 
 

 3 创建参数。

参数名编辑字段中,输入 seat。接受 File 参数类型。单击确定VuGen 将用参数图标替换 ABC 图标。

单击 {seat} 旁边的参数图标并选择参数属性。将打开“参数属性”对话框。

 

指定示例值来更改数据。

单击添加行VuGen 将向表中添加行。用 Window 替换 Value。单击添加行VuGen 将向表中添加行。用 None 替换 Value

 

注:这些值不区分大小写。

 

接受对话框的选择列文件格式部分的默认设置。

定义测试更改数据的方式。接受默认设置,让 VuGen 为每次迭代取顺序值而不是随机值。

选择下一行:顺序

值更新时间:每次迭代

单击关闭以关闭“参数属性”对话框,然后单击确定关闭“步骤属性”对话框。

现在已为座位首选项创建了参数。运行负载测试时, Vuser 将使用参数值,而不

是录制的值 Aisle

运行脚本时,回放日志会显示每次迭代发生的参数替换。请注意:第一次迭代时 

Vuser 选择 Aisle,第二次迭代时选择 Window

如何验证 Web 页面内容?

运行测试时,常常需要验证某些内容是否出现在返回的页面上。内容检查验证脚本运行时 Web 页面上是否出现期望的信息。可以插入两种类型的内容检查:

文本检查。检查文本字符串是否出现在 Web 页面上。

图像检查。检查图像是否出现在 Web 页面上。

文本检查

在这一节,您将添加文本检查,检查 Find Flight 是否出现在脚本中的订票页面上。要插入文本检查,请执行以下操作:

打开文本检查向导。

确保出现“任务”窗格。如果未出现,请单击任务按钮。在“任务”窗格的增强功能下单击内容检查。内容检查向导打开,显示脚本中每个步骤的缩略图。

 

选择工具栏中的 HTML 视图以显示缩略图的快照。

选择包含待检查文本的页面。

单击名为 reservations.pl 的第四个缩略图。

选择要检查的文本。

突出显示快照内的文字 Find Flight (查找航班),然后右键单击并选择添加文本检查 (web-reg-find)

将打开“查找文本”对话框,显示在查找选定内容框中选定的文本。单击确定

查看新步骤。

在树视图(视图 > 树视图)中,您会看到 VuGen 在脚本中插入了一个新步骤 Service: Reg Find。这一步注册文本检查, LoadRunner 将在运行步骤后检查文本。回放期间, VuGen 将查找文本 Find Flight 并在回放日志中指出是否找到。

如何生成调试信息?

在测试运行的某些时候,经常需要向输出设备发送消息,指出当前位置和其他信息。这些输出消息会出现在回放日志和 Controller 的输出窗口中。可以发送标准输出消息或指出发生错误的消息。

要确定是否发出错误消息,建议先查找失败状态。如果状态为失败,就让 VuGen 发出错误消息。请参阅《HP LoadRunner Online Function Reference》中的示例。

在这一节,我们将指示 VuGen 在应用程序完成一次完整的预订后插入一条输出消息。要插入输出消息,请执行以下操作:

选择一个位置。

选择后一个步骤, Image: SignOff Button。将在右边打开快照。

插入一条输出消息。

选择插入 > 新建步骤。将打开“添加步骤”对话框。向下滚动并选择输出消息,然后单击确定

将打开“输出消息”对话框。

 

输入消息内容。

消息文本框中,输入 The flight was booked 并单击确定。输出消息将添加到

树中。

 4 保存脚本。

 

注:要插入错误消息,可重复上述步骤,不同之处在于要在“添加步骤”对话框中选择错误消息而不是输出消息

 

测试是否成功? 

在这一节,将运行增强的脚本并查看回放日志来检查文本和图像。您将查看文本和图像检查、事务以及参数化。

默认情况下,由于图像检查需要占用更多内存,在回放期间会将其禁用。如果要执行图像检查,需要在运行时设置中启用此项检查。

启用图像检查。

打开“运行时设置”对话框(Vuser > 运行时设置),并选择 Internet 协议:

首选项节点。选择启用图像和文本检查。单击确定关闭“运行时设置”对话框。

运行脚本。

单击运行或选择 Vuser > 运行VuGen 将开始运行脚本,同时在输出窗口中创建

回放日志。等待脚本完成运行。

查找文本检查。

确保已打开输出窗口(视图 > 输出窗口)。在“回放日志”选项卡中,按 

CTRL+F 打开“查找”对话框。查找 web_reg_find。第一个实例如下:

注册 web_reg_find 成功。

这不是实际的文本检查,而是让 VuGen 准备好在表单提交后检查文本。再次查找(按 F3web_reg_find 的下一个实例。该实例如下所示:

注册的 web_reg_find 对于“Text=Find Flight”成功(计数=1)。

这说明文本已找到。如果有人更改了 Web 页面并删除了文字 Find Flight,那么在后续的运行中,输出消息会指出找不到这些文字。

查找事务的起始点。

在“回放日志”选项卡中,按 CTRL+F 打开“查找”对话框。搜索单词 Transaction。该通知用蓝色显示。

查看参数替换。

在“回放日志”选项卡中,按 CTRL+F 打开“查找”对话框。搜索单词 

Parameter。日志包含通知seat= Aisle。再次搜索(按 F3)下一处替换。注意 VuGen 在每次迭代时如何替换不同的值。

选择文件 > 保存或单击保存按钮。

后续课程

现在您已经创建了脚本并针对负载测试进行了修改,接下来可以学习第 7 课“创建负载测试场景”。

 

 

 7

 

创建负载测试场景

在上一课,您已经在 Virtual User Generator 中成功验证了自己的测试。在这一课,您将测试负载下的应用程序。您将模拟 10 家旅行社同时使用机票预订系统的操作,并观察系统在负载下的运行情况。要设计并运行此测试,需要使用 LoadRunner

Controller

在这一课,您将学习以下内容:

 

LoadRunner Controller 简介

负载测试是指在典型工作条件下测试应用程序,例如,多家旅行社同时在同一个机票预订系统中预订机票。

您需要设计测试来模拟真实情况。为此,您要能够在应用程序上生成较重负载,并安排向系统施加负载的时间(因为用户不会正好同时登录或退出系统)。您还需要模拟不同类型的用户活动和行为。例如,一些用户可能使用 Netscape (而不是 Internet Explorer)来查看应用程序的性能,并且可能使用不同的网络连接(例如调制解调器、 DSL 或电缆)。您可以在场景中创建并保存这些设置。

Controller 提供所有用于创建和运行测试的工具,帮助您准确模拟工作环境。

场景目标

这一课的目标是创建一个场景,模拟 10 家旅行社同时登录、搜索航班、购买机票、查看航班路线并退出。

如何启动 Controller

要开始创建场景,请打开 Controller 并创建一个新场景。

打开 HP LoadRunner

选择开始 > 程序 > HP LoadRunner > LoadRunner。这时将打开 HP LoadRunner

11.00 窗口。

 

打开 Controller

 LoadRunner Launcher 窗格中单击运行负载测试。将打开 HP LoadRunner

Controller

默认情况下, Controller 打开时会显示“新建场景”对话框。

 

选择场景类型。有两种场景类型:

通过手动场景可以控制正在运行的 Vuser 数目及其运行时间,另外还可以测试出应用程序可以同时运行的 Vuser 数目。您可以使用百分比模式,根据业务分析员指定的百分比在脚本间分配所有的 Vuser。安装后首次启动 LoadRunner 时,默认选中百分比模式复选框。如果已选中该复选框,请取消选中。

面向目标的场景用来确定系统是否可以达到特定的目标。例如,您可以根据指定

的事务响应时间或每秒点击数/事务数确定目标,然后 LoadRunner 会根据这些目标自动创建场景。您将在第 9 课“面向目标的高级场景”中创建面向目标的场景。选择手动场景

向负载测试添加脚本。

在本教程中,将仅使用一个 Vuser 脚本来模拟一组执行相同操作的用户。要模拟具有更多种用户配置文件的真实场景,需要创建不同的组,运行带有不同用户设置的多个脚本。

先前在 VuGen 中录制的脚本包含要测试的业务流程。其中包括登录、搜索航班、购买机票、查看航班路线以及注销。您将向场景中添加类似的脚本,配置场景,模拟 8 家旅行社同时在机票预订系统中执行这些操作。测试期间将添加另外两个用户。为此我们提供了一个与您创建的脚本相类似的脚本。建议您使用这个示例脚本。

单击浏览按钮找到 安装位置>\Tutorial 目录中的 basic_script

此脚本显示在可用脚本部分和场景中的脚本部分。

单击确定LoadRunner Controller 将在“设计”选项卡中打开您的场景。

Controller 窗口一览

Controller 窗口的设计选项卡分为三个主要部分:

“场景组”窗格

“服务水平协议”窗格

“场景计划”窗格

 

“场景组”窗格。在“场景组”窗格中配置 Vuser 组。您可以创建代表系统中典型用户的不同组,指定运行的 Vuser 数目以及运行时使用的计算机。

“服务水平协议”窗格。设计负载测试场景时,可以为性能指标定义目标值或

务水平协议 (SLA)。运行场景时, LoadRunner 收集并存储与性能相关的数据。分析运行情况时, Analysis 将这些数据与 SLA 进行比较,并为预先定义的测量指标确定 SLA 状态。您将在第 10 课中进一步了解 SLA

“场景计划”窗格。在“场景计划”窗格中,设置加压方式以准确模拟真实用户行为。可以根据运行 Vuser 的计算机、将负载施加到应用程序的频率、负载测试持续时间以及负载停止方式来定义操作。

如何修改脚本详细信息?

您可以通过以下操作修改脚本详细信息:

确保 basic_script 出现在“场景组”窗格的“组名称”列中。

 

更改组名称。 选择脚本并单击详细信息按钮。将打开“组信息”对话框。

组名称框中输入一个更有意义的名称,例如 travel_agent

 

单击确定。此名称将显示在设计选项卡的场景组窗格中。

如何生成重负载?

添加脚本后,可以配置生成负载的计算机。

Load Generator 是通过运行 Vuser 在应用程序中生成负载的计算机。可以使用多个 Load Generator,并在每个 Load Generator 上运行多个 Vuser。在这一节,您将学习如何向场景添加 Load Generator,以及如何测试 Load Generator 连接。

 

在本教程中,您将使用本地计算机作为 Load Generator (默认情况下包括在场景

中)。 localhost Load Generator 的状态为关闭。这说明 Controller 未连接到 Load Generator

 

注:在典型的生产系统中,您将有若干个 Load Generator,每一个拥有多个 Vuser

 

 2 测试 Load Generator 连接。

运行场景时, Controller 自动连接到 Load Generator。但您也可以在运行场景之前

测试连接。

选择 localhost 并单击连接

Controller 会尝试连接到 Load Generator 计算机。建立连接后,状态会从关闭变为

就绪。单击关闭

如何模拟真实加压方式?

添加 Load Generator 后,就可以配置加压方式。

典型用户不会正好同时登录和退出系统。 LoadRunner 允许用户逐渐登录和退出系统。它还允许您确定场景持续时间和场景停止方式。下面将要配置的场景相对比较简单。但在设计更准确地反映现实情况的场景时,您可以定义更真实的 Vuser 活动。

您可以在 Controller 窗口的场景计划窗格中为手动场景配置加载行为。“场景计划” 窗格分为三部分:计划定义区域、操作单元格和交互计划图。现在您可以更改默认负载设置并配置场景计划。

选择计划类型和运行模式。计划定义区域,确保选中计划方式:场景运行模式:实际计划

 

设置计划操作定义。

您可以在操作单元格或交互计划图中为场景计划设置启动 Vuser持续时间以及停止 Vuser 操作。在图中设置定义后,操作单元格中的属性会自动调整。现在您可以设置定义,使“操作”单元格显示如下。

 

设置 Vuser 初始化。

初始化是指通过运行脚本中的 vuser_init 操作,为负载测试准备 Vuser  Load Generator。在 Vuser 开始运行之前对其进行初始化可以减少 CPU 占用量,并有利于提供更加真实的结果。

在“操作”单元格中双击初始化。这时将打开“编辑操作”对话框,显示

始化操作。选择同时初始化所有 Vuser

 

指定逐渐开始(从“计划操作”单元格)。

通过按照一定的间隔启动 Vuser,可以让 Vuser 对应用程序施加的负载在测试过程中逐渐增加,帮助您准确找出系统响应时间开始变长的转折点。

在“操作”单元格中双击启动 Vuser。这时将打开“编辑操作”对话框,显示

启动 Vuser 操作。

开始 X  Vuser 框中,输入 8  Vuser 并选择第二个选项: 00:00:30

30 秒)启动 2  Vuser

 

安排持续时间(从交互计划图)。

您可以指定持续时间,确保 Vuser 在特定的时间段内持续执行计划的操作,以便评测服务器上的持续负载。如果设置了持续时间,脚本会运行这段时间内所需的迭代次数,而不考虑脚本的运行时设置中所设置的迭代次数。通过单击交互计划图工具栏中的编辑模式按钮确保交互计划图处于编辑模式。在“操作”单元格中,单击持续时间或图中代表持续时间的水平线。这条水平线会突出显示并且在端点处显示点和菱形。将菱形端点向右拖动,直到括号

中的时间显示为 00:11:30。您已设置 Vuser 运行 10 分钟。

 

注:如果菱形的前方显示了图例,请单击隐藏图例按钮显示菱形。  d 安排逐渐关闭(从“计划操作”单元格)。

建议逐渐停止 Vuser,以帮助在应用程序到达阈值后,检测内存漏洞并检查系统恢复情况。

在“操作”单元格中双击停止 Vuser。这时将打开“编辑操作”对话框,显

停止 Vuser 操作。选择第二个选项并输入以下值:每隔 00:00:30 30 秒)停止 2  Vuser

 

如何模拟不同类型的用户?

现在已配置好负载计划,接下来需要指定 Vuser 在测试期间的行为方式。

模拟真实用户时,需要考虑用户的实际行为。行为是指用户在操作之间暂停的时间、用户重复同一操作的次数,等等。

在这一课,您将进一步了解 LoadRunner 的运行时设置,并启用思考时间和日志记录。

 

通过运行时设置,可以模拟各种用户活动和行为。其中包括:

运行逻辑。用户重复一系列操作的次数。

步。重复操作之前等待的时间。

日志。希望在测试期间收集的信息的级别。

如果是首次运行场景,建议生成日志消息,确保万一首次运行失败时有调试信息。

思考时间。用户在各步骤之间停下来思考的时间。

由于用户是根据其经验水平和目标与应用程序交互,因此,技术上更加精通的用户工作速度可能会比新用户快。通过启用思考时间,可使 Vuser 在负载测试期间更准确地模拟对应的真实用户。

速度模拟。使用不同网络连接(例如调制解调器、 DSL 和电缆)的用户。

浏览器模拟。使用不同浏览器查看应用程序性能的用户。

内容检查。用于自动检测用户定义的错误。

假设发生错误时应用程序发送了一个自定义页面。该自定义页面总是包含文字 

ASP Error。您需要搜索服务器返回的所有页面,并查看是否出现文字 ASP

Error

您可以使用内容检查运行时设置,设置 LoadRunner 在测试运行期间自动查找这些文字。 LoadRunner 将搜索这些文字并在检测到时生成错误。在场景运行期间,您可以识别内容检查错误。

启用思考时间。

选择常规:思考时间节点。选择重播思考时间,并选择使用录制思考时间的随机百分比选项。指定小值为 50%,大值为 150%

 

使用录制思考时间的随机百分比模拟熟练程度不同的用户。例如,如果选择航班

的录制思考时间是 4 秒,则随机时间可以是 2 - 6 秒之间的任意值(4  50%  

150%)。

启用日志记录。

选择常规:日志节点,然后选择启用日志记录。在日志选项中,选择始终发送消息。选择扩展日志,然后选择服务器返回的数据

 

注:初次调试运行后,建议不要对负载测试使用扩展日志记录。在本教程中启用它只是为了提供 Vuser 输出日志信息。

 

单击确定关闭“运行时设置”对话框。

如何监控负载下的系统?

现在已经定义了 Vuser 在测试期间的行为方式,接下来就可以设置监控器了。

在应用程序中生成重负载时,您希望实时了解应用程序的性能以及潜在的瓶颈。使用 LoadRunner 的一套集成监控器可以评测负载测试期间系统每一层的性能以及服务器和组件的性能。 LoadRunner 包含多种后端系统主要组件(如 Web、应用程序、数据库和 ERP/CRM 服务器)的监控器。

例如,您可以根据正在运行的 Web 服务器类型选择 Web 服务器资源监控器。还可以为相关的监控器购买许可证,例如 IIS,然后使用该监控器精确指出 IIS 资源中反映的问题。

在这一节,您将学习如何添加和配置 Windows 资源监控器。您可以使用该监控器确定负载对 CPU、磁盘和内存资源的影响。

选择 Windows 资源监控器。单击 Controller 窗口中的运行选项卡打开“运行”视图。

Windows 资源图是显示在图查看区域的四个默认图之一。在下一课您将学习如何打开其它图。

 

右键单击“Windows 资源”图并选择添加度量。“Windows 资源”对话框打开。

 

选择监控的服务器。

在“Windows 资源”对话框的监控的服务器计算机部分,单击添加。“添加计算机”对话框打开。

 

名称框中,输入 localhost(如果 Load Generator 正在另一台机器上运行,您可以输入服务器名称或该计算机的 IP 地址。)在平台框中输入计算机的运行平台。单击确定

默认的 Windows 资源度量列在 <服务器> 上的资源度量下。

 

激活监控器。单击“Windows 资源”对话框中的确定以激活监控器。

后续课程

现在您已经设计了负载测试场景,接下来可以学习第 8 课“运行负载测试”。

 

 

 8

Controller 运行视图一览

Controller 窗口中的“运行”选项卡是用来管理和监控测试情况的控制中心。“运行”视图包含五个主要部分:

“场景组”窗格

“场景状态”窗格

可用图树

图查看区域

图例

 

“场景组”窗格。位于左上角的窗格,您可以在其中查看场景组内 Vuser 的状态。使用该窗格右侧的按钮可以启动、停止和重置场景,查看各个 Vuser 的状态,通过手动添加更多 Vuser 增加场景运行期间应用程序的负载。

“场景状态”窗格。位于右上角的窗格,您可以在其中查看负载测试的概要信息,包括正在运行的 Vuser 数量和每个 Vuser 操作的状态。

可用图树。位于中间偏左位置的窗格,您可以在其中看到一列 LoadRunner 图。要打开图,请在树中选择一个图,并将其拖到图查看区域。

图查看区域。位于中间偏右位置的窗格,您可以在其中自定义显示画面,查看 

1  8 个图(视图 > 查看图)。

图例。位于底部的窗格,您可以在其中查看所选图的数据。

 

如何运行负载测试场景?

在这一节,您将开始运行场景。

打开 Controller 的“运行”视图。

选择屏幕底部的运行选项卡。

注意在“场景组”窗格的关闭列中有 8  Vuser。这些 Vuser 是在创建场景时创建的。

 

由于尚未运行场景,所有其他计数器均显示为零,并且图查看区域内的所有图

Windows 资源除外)都为空白。在下一步开始运行场景之后,图和计数器将开始显示信息。

开始场景。  单击开始场景按钮,或者选择场景 > 开始以开始运行测试。

如果您是第一次运行测试, Controller 将开始运行场景。结果文件将自动保存到 

Load Generator 的临时目录下。

如果您是重复测试,系统会提示您覆盖现有的结果文件。单击,因为首次负载测试的结果应该作为基准结果,用来与后面的负载测试结果进行比较。“设置结果目录”对话框打开。

 

指定新的结果目录。为每个结果集输入一个唯一且有意义的名称,因为在分析图时您可能要将几次场景运行的结果重叠。

如何监控负载下的应用程序?

您可以使用 Controller 的联机图查看监控器收集的性能数据。使用这些信息确定系统环境中可能存在问题的区域。

检查性能图。

“运行”选项卡显示下列默认的联机图:

“正在运行 Vuser - 整个场景”图。显示在指定时间运行的 Vuser 数。

“事务响应时间 - 整个场景”图。显示完成每个事务所用的时间。

“每秒点击次数 - 整个场景”图。显示场景运行期间 Vuser 每秒向 Web 服务器提交的点击次数(HTTP 请求数)。

Windows 资源”图。显示场景运行期间评测的 Windows 资源。

 

突出显示单个测量值。

双击“Windows 资源”图将其放大。注意每个测量值都显示在图例中用不同颜色标记的行中。每行对应图中与之颜色相同的一条线。

选中一行时,图中的相应线条将突出显示,反之则不突出显示。再次双击图将其缩小。

查看吞吐量信息。

选择可用图树中的吞吐量图,将其拖放到图查看区域。“吞吐量”图中的测量值显示在画面窗口和图例中。

“吞吐量”图显示 Vuser 每秒从服务器接收的数据总量(以字节为单位)。您可以将此图与“事务响应时间”图比较,查看吞吐量对事务性能的影响。如果随着时间的推移和 Vuser 数目的增加,吞吐量不断增加,说明带宽够用。如果随着 Vuser 数目的增加,吞吐量保持相对平稳,可以认为是带宽限制了数据流量。

 

如何实时观察 Vuser 的运行情况?

模拟用户时,您应该能够实时查看用户的操作,确保它们执行正确的步骤。通过 Controller,您可以使用运行时查看器实时查看操作。

 

状态列显示每个 Vuser 的状态。在上例中,可以看到有四个正在运行的 Vuser 和四个已经关闭的 Vuser。计划程序中的启动 Vuser 操作指示 Controller 每次释放两个 Vuser。随着场景的运行,将继续每隔 30 秒向组中添加两个 Vuser

 2  Vuser 列表中选择一个正在运行的 Vuser

 3 单击 Vuser 工具栏上的显示选定的 Vuser 按钮。将打开运行时查看器并显示所选 Vuser 当前执行的操作。当 Vuser 执行录制的脚本中所包含的各个步骤时,窗口将不断更新。

 4 单击 Vuser 工具栏上的隐藏选定的 Vuser 按钮,关闭“运行时查看器”日志。

在何处查看用户操作的概要信息?

对于正在运行的测试,要检查测试期间各个 Vuser 的进度,可以查看包含 Vuser 操作文本概要信息的日志文件。要查看事件的文本概要信息,请执行以下操作:

 1  Vuser 窗口中选择一个正在运行的 Vuser,单击显示 Vuser 日志按钮。 Vuser 日志窗口打开。

 

日志中包含与 Vuser 操作对应的消息。例如,在上面的窗口中,消息 Virtual User Script started 说明场景已启动。滚动到日志底部,查看为所选 Vuser 执行的每个操作添加的新消息。

 2 关闭 Vuser 日志窗口和 Vuser 窗口。

如何在测试期间增加负载?

可以通过手动添加更多 Vuser 在运行负载测试期间增加应用程序的负载。要在负载测试期间增加负载:

 1 在“运行”视图中单击运行/停止 Vuser 按钮。“运行/停止”对话框打开,显示当前分配到场景中运行的 Vuser 数。

 # 列中,输入要添加到组中额外的 Vuser 的数目。要运行 2 个额外的 Vuser,请将 # 列中的数字 8 替换为 2

单击运行以添加 Vuser

如果某些 Vuser 尚未初始化,将打开运行已初始化的 Vuser 运行新 Vuser 选项。选择运行新 Vuser 选项。

 

这两个额外的 Vuser 被分配给 travel_agent 组且运行在 localhost Load Generator 上。“场景状态”窗格显示现在有 10 个正在运行的 Vuser

 

注:您可能会收到警告消息,指出 LoadRunner Controller 无法激活额外的 Vuser。这是由于您用本地计算机作为 Load Generator 并且该计算机的内存资源非常有限。多数情况下,应该使用专用计算机作为 Load Generator 以避免此类问题。

 

应用程序在负载下如何运行?

在“场景状态”窗格中查看正在运行的场景的概要,然后深入了解是哪些 Vuser 操作导致应用程序出现问题。过多的失败事务和错误说明应用程序在负载下的运行情况没有达到原来的期望。

查看测试状态。

“场景状态”窗格显示场景的整体状况。

 

查看 Vuser 操作的详细信息。

单击“场景状态”窗格中通过的事务,查看事务的详细信息列表。将打开“事务”对话框。

 

应用程序是否发生错误?

如果应用程序在重负载下启动失败,可能是出现了错误和失败的事务。Controller 将在输出窗口中显示错误消息。

检查所有错误消息。选择视图 > 显示输出,或者单击“场景状态”窗格中的错误

“输出”对话框打开,列出消息文本、生成的消息总数、发生错误的 Vuser  

Load Generator 以及发生错误的脚本。

 

要查看消息的详细信息,请选择该消息并单击详细信息。将打开“详细信息文本” 框,显示完整的消息文本。下例将显示超时错误。 Web 服务器没有在给定时间内响应请求。

 

查看详细的日志信息。

您可以单击相应列中的蓝色链接以查看与错误代码相关的每个消息、Vuser、脚本和 Load Generator

例如,要确定脚本中发生错误的位置,请向下搜索消息总数列中的详细信息。

“输出”窗口显示所选错误代码的所有消息列表,包括时间、迭代次数和脚本中发生错误的行。

 

向下搜索行号列。

打开 VuGen,显示脚本中发生错误的行。您可以使用这些信息找出响应速度比较慢的事务,它们导致应用程序在负载下运行失败。

如何知道测试已完成运行?

测试运行结束时,“场景状态”窗格将显示关闭状态。这表示 Vuser 已停止运行。

可以在 Vuser 对话框中看到各个 Vuser 的状态。 LoadRunner 将显示 Vuser 重复任

务(迭代)的次数、成功迭代的次数以及已用时间。

 

应用程序在负载下是否正常运行?

要了解应用程序在负载下的运行情况,需要查看事务响应时间并确定事务是否在客户可接受的范围内。如果事务响应时间延长,需要找出瓶颈。有关这方面的详细信息,请学习第 10 课“分析场景”。

找出问题后,需要各方面(包括开发人员、 DBA、网络以及其他系统专家)的共同努力来解决瓶颈问题。调整后,再次运行负载测试来确认所做的调整是否达到了预期效果。重复此循环以优化系统性能。

要保存场景以便再次使用相同的设置运行,请选择文件 > 保存或单击保存按钮,然后在“文件名”框中输入场景名称。

后续课程

现在您已经了解了如何运行和查看简单的负载测试场景,接下来可以学习第 9

“面向目标的高级场景”。

 

 

 9

 

面向目标的高级场景

在前两课中,您已学习了如何手动创建和运行负载测试。在这一课,您将为测试定义一个要达到的目标。

部署应用程序之前,要执行验收测试以确保系统能够承担预期的实际工作量。您可以定义预期的服务器执行速度,例如每秒点击次数或每秒事务数。此速度可由定义应用程序要求的业务分析员确定,也可以从实际使用的应用程序先前版本或者其他来源获得。您可以为想要生成的每秒点击次数、每秒事务数或者事务响应时间设置目标, LoadRunner 将使用面向目标的场景自动生成所需的目标。当应用程序在固定负载下运行时,您可以监控事务响应时间,了解应用程序提供给客户的服务水平。

在这一课,您将创建面向目标的场景,在使用 5  10  Vuser 的情况下,在 Web 服务器上每秒生成 3 次点击,并将这种负载级别保持 5 分钟。在这一课,您将学习以下内容:

 

应该使用哪种目标类型?

在面向目标的场景中, LoadRunner 提供五种不同类型的目标:您希望场景实现的并发 Vuser 数、每秒点击次数、每秒事务数、每分钟页面数或事务响应时间。

如果知道可运行各种业务流程的 Vuser 总数,就可以使用 Vuser 目标类型。

如果知道服务器的承载能力,就可以使用每秒点击次数每分钟页数每秒事务数目标类型。

如果知道完成事务所需的响应时间,就可以使用事务响应时间目标类型。例如,如果您希望用户在五秒钟内就能登录到您的电子商务网站,请将可接受的长事

务响应时间指定为五秒,并查看可以处理的实际 Vuser 数。

 

如何创建面向目标的场景?

要使用各种用户档案文件模拟实际系统,可以将多个脚本分配给场景,并在这些脚本之间分配负载百分比。应根据期望的负载设置百分比。在本教程中,将仅使用一个 Vuser 脚本模拟一组执行相同操作的用户。

 

选择场景类型。选择面向目标的场景

选择脚本。

从“可用脚本”列表中选择 basic_script,然后单击添加按钮。该脚本将显示在

“场景中的脚本”窗格中。

单击确定。将打开 LoadRunner Controller 的“设计”视图,在脚本名称列中显示 basic_script

Controller 窗口一览(面向目标的场景)

Controller 窗口(面向目标)的“设计”视图分为三个主要部分:

“场景脚本”窗格

“服务水平协议”窗格

“场景目标”窗格

“场景脚本”窗格。在此窗格中,可以确定 Vuser 脚本、脚本路径、分配到每个脚本的总目标百分比以及 Load Generator。可以在此处配置场景。

 
 

“服务水平协议”窗格。设计负载测试场景时,可以为性能指标定义目标值或

务水平协议 (SLA)。运行场景时, LoadRunner 收集并存储与性能相关的数据。分析运行情况时, Analysis 将这些数据与 SLA 进行比较,并为预先定义的测量指标确定 SLA 状态。

“场景目标”窗格。位于下部的窗格,您可以在其中看到测试目标、达到该目标要使用的用户数、场景持续时间和加压方式。可以使用“编辑场景目标”对话框设置目标。

如何定义目标?

选择了要运行的脚本之后,需要定义要达到的目标。在这一节,您将创建目标配置文件并定义场景目标。

打开“编辑场景目标”对话框。

单击编辑场景目标按钮,或选择场景 > 目标定义。这时将打开“编辑场景目标” 对话框。

 

为目标配置文件指定逻辑名称。

单击新建,然后在“新建目标配置文件”对话框中输入新目标配置文件名(例如:

Hits per Second 3),后单击确定

选择器中将显示新目标配置文件名。

定义场景目标。  a 目标类型框中,选择每秒点击次数 b 达到目标每秒点击次数框中,输入 3

 c 设置 LoadRunner 要运行的 Vuser 数目范围。

输入 Vuser 数目的小值 5 和大值 10。它们必须与要在服务器上同时生成点击数的旅行社数目的大值和小值对应。

如何确定加压方式?

定义了测试目标之后,需要指定 Controller 实现目标的方式和时间。

用户不会正好同时登录和退出系统。要模拟真实用户,可以使用 LoadRunner

“加载行为”选项卡中提供的功能,让用户逐渐登录和退出系统。您可能还希望服务器在负载状态下保持一段时间。利用 LoadRunner 的“场景设置”选项卡,可以指定服务器在负载状态下的持续时间。要定义负载测试行为,请执行以下操作:

将测试配置为同时运行 Vuser在“编辑场景目标”对话框中选择加载行为选项卡,然后选择自动

 

这将指示 Controller 同时运行所需数目的 Vuser

定义场景设置。

在“场景设置”选项卡中,指定测试在达到目标后继续运行 000:05:00 (即 5 分钟),并选择继续运行场景,无需达到目标

 

在负载达到每秒 3 次的点击次数之后,Controller 再运行场景 5 分钟,并根据需要增加或减去一定数量的 Vuser,使实际测量值与既定目标的偏差不超过 6%。这样可以确保服务器能在此负载下坚持一定的时间。

不要使用录制的思考时间。在“编辑场景目标”对话框的左下角,确保不选中不更改录制思考时间

如果选择此选项, LoadRunner 将使用脚本中录制的思考时间运行场景。这样的话您可能需要通过增加场景中的 Vuser 数来达到目标。

关闭“编辑场景目标”对话框。单击确定,关闭“编辑场景目标”对话框。

“场景目标”窗口中将显示您输入的场景目标信息。

 

为测试定义 Load Generator

要使脚本能够运行,请按照第 71 页的“如何生成重负载?”中的说明向场景中添加 Load Generator

应该监控哪些联机图?

定义了测试目标和加载行为后,将可以配置 LoadRunner 监控器。在这次测试中,您应该监控“每秒点击次数”图,跟踪了解服务器上生成的负载。另外还需要监控“事务响应时间”图,了解服务器在负载下对客户的响应时间。此外,您还可以监控负载对“吞吐量”图和“Windows 资源”图的影响。

已配置了每秒点击次数、事务响应时间和吞吐量监控器。要配置 Windows 资源监控器,请按照第 7 课“创建负载测试场景”中的步骤操作。

如何运行面向目标的场景?

配置了场景和目标设置之后,就可以开始测试并监控负载下的应用程序。在这一节,您将运行面向目标的场景并检查测试情况。

打开 Controller 窗口中的“运行”选项卡。

选择屏幕底部的运行选项卡。

由于场景尚未运行,因此所有计数器都显示为零并且所有图都是空白的。在下一步启动场景之后,图和计数器将开始显示信息。

指定结果目录的名称。

选择结果 > 结果设置,打开“设置结果目录”对话框,然后为结果集输入唯一的

名称(例如 travel_agent_3hps)。

开始场景。  单击开始场景按钮,或者选择场景 > 开始

Controller 将开始运行场景。

您将看到有 5  Vuser 已经初始化并开始运行,同时 LoadRunner 尝试按照要求每秒生成 3 次点击。在测试期间, Controller 将自动启动和停止 Vuser 以实现既定目标。

查看联机图。

每秒点击次数图显示在每次场景运行过程中 Vuser 每秒向 Web 服务器提交的点击次数(HTTP 请求数)。您可以看到很快就达到了所需的负载级别。

 

事务响应时间图会显示完成每个事务所花费的时间。观察事务响应时间以了解服务器在负载下对客户的响应时间非常重要。

 

您还可以通过在可用图树中选择吞吐量,并将其拖至图查看区域来查看吞吐量图。

该图显示 Vuser 每秒从 Web 服务器接收的数据量。

 

您可以监控服务器的 Windows 资源使用率以了解处理器、磁盘或内存利用率问题。在测试期间进行监控可以帮助您立即确定性能不佳的原因。

 

您可以查看“Windows 资源”图例中的测量值列表。

 

是否已达到我的目标?

这一课的目标是确保系统在预期的实际工作量下,向客户提供可接受的服务水平。要模拟此类条件,请在运行 5  10  Vuser 的情况下,将负载目标设置为在场景运行期间达到每秒 3 次的点击次数。在运行 5  10  Vuser 的情况下,如果在场景运行过程中的每一秒内, Vuser 向服务器提交的点击次数都是 3 次,那么就达到了预期目标。如果未达到每秒 3 次的点击次数目标, LoadRunner 将会显示一条消息,说明无法达到预期的目标。

 

注:由于许可证限制多运行 10  Vuser,您的目标可能无法达到。

 

运行测试后,保存场景设置以供将来使用。要保存场景,请选择文件 > 保存或单击保存按钮,然后在“保存场景”对话框 my_goalbox 中输入场景名称。

后续课程

现在您已经设计并运行了面向目标的场景,接下来可以学习第 10 课“分析场景”。

 

 10  

 

分析场景

在前面的课程中,您已学习了如何设计场景、执行场景以及如何控制场景的执行。在服务器上施加负载后,需要分析运行情况,并确定需要解决哪些问题来提高系统性能。

 

Analysis 会话如何工作?

Analysis 会话的目的是查找系统的性能问题,然后找出这些问题的根源,例如:

是否达到了预期的测试目标?在负载下,对用户终端的事务响应时间是多少?是符合 SLA 还是偏离了目标?事务的平均响应时间是多少?

系统的哪些部分导致了性能下降?网络和服务器的响应时间是多少?

通过将事务时间与后端监控器矩阵表关联在一起,能否找出可能的原因?

在下文中,您将学习如何打开 LoadRunner Analysis 以及生成和查看图和报告,这将有助于您发现性能问题并查明问题的根源。

如何启动 Analysis 会话?

打开 HP LoadRunner

选择开始 > 程序 > HP LoadRunner > LoadRunner。这时将打开 HP LoadRunner

11.00 窗口。

打开 LoadRunner Analysis

 LoadRunner Launcher 选项卡中单击分析负载测试。这时将打开 HP

LoadRunner Analysis

打开 Analysis 会话文件。

为了配合本教程中的这一部分,得到更多不同的结果,我们运行了一个与您在前面课程中所运行的场景相类似的测试场景。但是这次测试使用了 70  Vuser,而不是 10 个。现在您可以打开使用此场景的结果所创建的 Analysis 会话。

 Analysis 窗口中,选择文件 > 打开。这时将打开“打开现有 Analysis 会话文件” 对话框。

 安装位置>\tutorial 文件夹中,选择 analysis_session 并单击

打开

 

注:如果系统提示您将会话从旧版本的 LoadRunner 转换至新版本,请单击确定

 

Analysis 将在 Analysis 窗口中打开该会话文件。

Analysis 窗口一览

Analysis 包含下列主要窗口:

会话浏览器

属性窗口

图查看区域

图例

 

“会话浏览器”窗格。位于左上方的窗格, Analysis 在其中显示已经打开可供查看的报告和图。您可以在此处显示打开 Analysis 时未显示的新报告或图,或者删除自己不想再查看的报告或图。

“属性”窗格。位于左下方的窗格,属性窗口在其中显示您在会话浏览器中选择的图或报告的详细信息。黑色字段是可编辑字段。

图查看区域。位于右上方的窗格, Analysis 在其中显示图。默认情况下,打开会话时,概要报告将显示在此区域。

图例。位于右下方的窗格,在此窗格内,您可以查看所选图中的数据。

 

注:有几个可以从工具栏访问的其他窗口,它们提供附加信息。这些窗口可以在屏幕上随意拖放。

 

是否达到了我的目标?(服务水平协议)

在这一节,我们将介绍服务水平协议(或称 SLA)。

SLA 是您为负载测试场景定义的具体目标。 Analysis 将这些目标与 LoadRunner 在运行过程中收集和存储的性能相关数据进行比较,然后确定目标的 SLA 状态

通过失败)。

例如,可以定义具体的目标或阈值,用于评测脚本中任意数量事务的平均响应时间。

测试运行结束之后, LoadRunner 将您定义的目标与实际录制的平均事务响应时间进行比较。 Analysis 显示每个所定义 SLA 的状态(通过失败)。例如,如果实际的平均事务响应时间未超过您定义的阈值, SLA 状态将为通过

作为目标定义的一部分,您可以指示 SLA 将负载条件考虑在内。这意味着可接受的阈值将根据负载级别(例如,运行的 Vuser 吞吐量等)而有所更改。随着负载的增加,您可以允许更大的阈值。

根据定义的目标, LoadRunner 将以下列某种方式来确定 SLA 状态:

通过时间线中的时间间隔确定 SLA 状态。在运行过程中, Analysis 按照时间线上的预设时间间隔(例如,每 5 秒钟)显示 SLA 状态。

通过整个运行确定 SLA 状态。 Analysis 为整个场景运行显示一个 SLA 状态。可以在 Controller 中运行场景之前定义 SLA,也可以稍后在 Analysis 中定义 SLA。在下一节,您将使用我们的 HP Web Tours 示例定义 SLA。假设 HP Web Tours 的管理员想要了解 book_flight  search_flight 事务的平均响应时间何时会超过既定值。为此,请选择相应事务,然后设置阈值。这些阈值是可接受的平均事务响应时间大值。

您还将设置这些阈值,将具体的负载条件考虑在内;在本例中为正在运行的 Vuser 数。换句话说就是,随着正在运行的 Vuser 数目的增加,阈值将增大。

原因是尽管 HP Web Tours 管理员希望平均事务响应时间尽可能短,但我们都知道每年的一些特别时候可以合理的假定 HP Web Tours 网站的负载比其他时候高。例如,在旅游旺季,会有更多的旅行社登录到网站来预订机票、查看航班路线,等等。在这种合理的重负载情况下,可以接受稍长的平均事务响应时间。

您将设置 SLA,将三种负载情况都考虑在内:轻负载、平均负载和重负载。每个场景将有各自的阈值。

如何定义 SLA

运行场景后,将在 Analysis 中定义 SLA

 

注:好是在 Controller 中运行场景之前定义 SLA。由于您没有分析前面课程中运行的测试场景,因此为了实现本教程的教学目的,将在 Analysis 中定义 SLA。要在 Analysis 中定义 SLA,请在“设计”选项卡的“服务水平协议”部分单击新建

 

现在您将定义 SLA,对于示例会话文件中的 book_flight  search_flight 事务,

SLA 将为平均事务响应时间设置具体的目标。运行过程中,将按设定的时间间隔计算平均事务响应时间。要定义 SLA,请执行以下操作:

 1 打开 SLA 配置向导。选择工具 > 配置 SLA 规则。“服务水平协议”对话框打开。单击新建打开向导。

 

为目标选择度量。

 

注:初次打开“服务水平协议”向导时,将显示“欢迎使用”页面。如果不希望在下次运行向导时显示该页面,请选择“下次跳过该页面”。

 

在“选择目标度量”页面中选择事务响应时间:平均值。单击 Next (前进)。

 

选择事务进行监控。

在“选择事务”页面,可以从可用事务列表(脚本中的所有事务列表)中选择

要监控的事务。双击 book_flight  search_flight 事务将其选中。单击 Next

(前进)。

 

设置加载条件。在“设置加载条件”页面,可以指示 SLA 将不同的加载条件考虑在内。

加载条件下拉列表中选择正在运行的 Vuser ,并将加载值设置为和以下示例类似:

 

您已设置 SLA 来确定在三种潜在负载条件下可接受的平均事务响应时间:

轻负载。 0  19  Vuser

平均负载。 20  49  Vuser

重负载。超过 50  Vuser

设置阈值。

在“设置阈值”页面,您将为 book_flight  search_flight 事务定义可接受的

平均事务响应时间。将阈值设置为和以下示例类似:

 

您已确定对于所选的事务,可接受的平均事务响应时间如下:

轻负载。 5 秒以内

平均负载。 10 秒以内

重负载。 15 秒以内

 

注:所选事务的阈值可以不相同。您可以为每个事务分配不同的值。

 

保存 SLA

要保存 SLA 并关闭向导,可以在后续网页中依次单击 Next (前进)、 Finish (完成)和 Close (关闭)。

Analysis 将您的 SLA 设置应用于默认的概要报告。然后更新报告以包含所有相关的 SLA 信息。

如何查看性能概要?

“概要报告”选项卡显示关于场景运行情况的常规信息和统计信息,另外还提供所有相关的 SLA 信息。例如,按照所定义的 SLA,执行情况差的事务是哪些,如何按照设定的时间间隔执行特定的事务以及整体 SLA 状态。可以从会话浏览器打开概要报告。此报告包含以下部分:

场景的总体统计信息

在“统计信息概要表”部分,您可以看到这次测试多运行了 70  Vuser。另外此处还记录了其他统计信息(例如总吞吐量/平均吞吐量以及总点击数/平均点击

 

执行情况差的事务

5 个差事务表多显示五个定义了 SLA 且执行情况差的事务。

 

您可以看到 book_flight 事务的持续时间相对于 SLA 阈值超出了 39.68%。整个运行期间,它超出 SLA 阈值的平均百分比为 43.71%

超出 SLA 阈值的时间间隔

“随时间变化的场景行为”部分显示不同的时间间隔内各个事务的执行情况。绿色方块表示事务在 SLA 阈值范围内执行的时间间隔,红色方块表示事务失败的时间间隔,灰色方块表示尚未定义相关的 SLA

 

您可以看到两个定义了 SLA 的事务,在所有评测的时间间隔内 search_flight 都在阈值范围内,但是在某些时间间隔内 book_flight 超出了阈值。

事务的整体性能

 

查看每个事务的响应时间。值为 90% 的列表示响应时间占事务执行时间的 90%。您可以看到在测试运行期间执行的 check_itinerary 事务的 90% 的响应时间为 65.754 秒。这是其平均响应时间 32.826 秒的 2 倍,这意味着此事务发生时响应时

间通常很长。我们也可以看到该事务已失败了 28 次。

注意 SLA 状态列如何显示相关的 SLA 整体状态:book_flight 的状态是失败search flight 的状态是通过

如何以图形方式查看性能?

可以从“会话浏览器”窗格访问可用图。现在您将查看并分析平均事务响应时间图。

打开“平均事务响应时间”图。

下方的会话浏览器上,选择平均事务响应时间。“平均事务响应时间”图将在图查看区域打开。

 

注:如果会话浏览器窗格中没有显示图,请右键单击节点并在“打开新图”对话框中选择事务:平均事务响应时间节点。单击打开图可将图添加到会话浏览器窗格中。

 

在“图例”窗格中,单击 check_itinerary 事务。 check_itinerary 事务将突出

显示在该图中以及图下方的图例中。

 

图上的点代表在场景运行的特定时间内事务的平均响应时间。将光标放在图中的点上。将会出现一个黄色框并显示该点的坐标值。

 

分析结果。

注意 check_itinerary 事务的平均响应时间波动很大,甚至在场景运行 2:56 分后峰值达到 75.067 秒。

在运行状况良好的服务器上,事务的平均响应时间相对稳定。在图的底部,注意 

logonlogoffbook_flight  search_flight 事务的平均响应时间相对稳定。

服务器的性能是否稳定?

在前面部分,您已看到了服务器性能的不稳定性。现在您将分析 70 个正运行的 Vuser 对系统性能的影响。

研究 Vuser 的行为。在图树中单击运行 Vuser

 

将在图查看区域打开运行 Vuser 图。您可以看到在场景开始运行后,Vuser 逐渐开始运行。然后 70  Vuser 同时运行了 3 分钟,接着 Vuser 又开始逐渐停止运行。

筛选该图,仅查看所有 Vuser 同时运行的时间段。

筛选图之后,显示的图数据范围将缩小,仅显示符合指定条件的数据。所有其他数据将隐藏。

右键单击该图并选择设置筛选器/分组方式,或者单击工具栏上的设置筛选器/分组方式图标。

筛选条件区域,选择场景已用时间行的列。单击向下箭头并选择从 000:01:30

(小时:分钟:秒)到 000:03:45 (小时:分钟:秒)的时间范围。单击确定

在“全局筛选器”对话框中单击确定

运行 Vuser 图现在仅显示场景运行后 1:30 (分钟:秒)到 3:45 (分钟:秒)之间运行的 Vuser。所有其他 Vuser 已全被筛选出去。

 

注:要清除筛选器,请右键单击该图并选择清除筛选器/分组方式,或者单击工具栏上的清除筛选器/分组方式按钮。

 

将“运行 Vuser”图和“平均事务响应时间”图关联在一起来比较数据。

将两个图关联起来,就会看到一个图的数据对另一个图的数据产生的影响。这称为关联两个图

例如,可以将“运行 Vuser”图与“平均事务响应时间”图相关联,查看大量 Vuser 对事务平均响应时间产生的影响。右键单击“运行 Vuser”图并选择清除筛选器/分组方式。右键单击该图并选择合并图。在选择要合并的图列表中,选择平均事务响应时间。在选择合并类型区域中,选择关联,然后单击确定。现在,“运行 Vuser”图和“平均事务响应时间”图在图查看区域中表示为一个图,即“运行 Vuser - 平均事务响应时间”图。

 

分析关联后的图。

在该图中您可以看到随着 Vuser 数目的增加,check_itinerary 事务的平均响应时间也在逐渐延长。换句话说就是,随着负载的增加,平均响应时间也在平稳地增加。

运行 64  Vuser 时,平均响应时间会突然急剧拉长。我们称之为测试弄崩了服务器。同时运行的 Vuser 超过 64 个时,响应时间会明显开始变长。

保存模板

目前为止您已经筛选了一个图并关联了两个图。下次分析场景时,您可能需要使用相同的筛选器和合并条件来查看这些图。您可以将合并设置和筛选器设置保存

为模板,并在其他 Analysis 会话中使用。

要保存模板,请执行以下操作:

选择工具 > 模板。“应用/编辑模板”对话框将打开。

在“模板”窗格中,单击新建按钮。“添加新模板”对话框将打开。

为模板输入适当的名称并单击确定

单击确定关闭“应用/编辑模板”对话框。下次您打开新的 Analysis 会话并需要使用保存的模板时,请执行以下操作:

选择工具 > 模板。“应用/编辑模板”对话框将打开。

从列表中选择模板,然后单击应用至会话

如何确定问题的根源?

到目前为止,您已经看到了增加服务器的负载将对 check_itinerary 事务的平均响应时间产生负面影响。

您可以进一步查看 check_itinerary 事务的详细信息,了解对系统性能产生负面影响的系统资源。

自动关联工具能够合并所有包含某些数据(这些数据会对 check_itinerary 事务的响应时间产生影响)的图,并找出问题的原因。

在图树中,选择“平均事务响应时间”图。

 

查看 check_itinerary 事务,尤其是该事务在已用时间(1 分钟到 4 分钟之间)内的情况。平均响应时间几乎是立即开始延长,然后在接近 3 分钟时达到峰值。  2 筛选“平均事务响应时间”图以便仅显示 check_itinerary 事务。

右键单击该图并选择设置筛选器/分组方式

在“事务名”列中选择 check_itinerary

单击确定

筛选后的图将仅显示 check_itinerary 事务并隐藏所有其他事务。

 

自动关联该图。右键单击该图,然后选择自动关联

 

在“自动关联”对话框中,确保要关联的度量是 check_itinerary,通过在框中输入时间或者沿着已用场景时间轴将绿色和红色的杆拖至相应的位置,将时间范

围设置为从 1:20  3:40 (分钟:秒)。

单击确定

自动关联的图将在图查看区域中打开。 check_itinerary 事务将突出显示。

 

自动关联的图将用默认的名称命名,自动关联的图 [数字]

重命名该图。

在图树中,右键单击自动关联的图 [数字] 然后选择重命名图。这样就可以编辑图名。

输入 Auto Correlated - check_itinerary 并按 ENTER,或者单击 Analysis 窗口

中的任意位置。

分析自动关联的图。查看图下方的图例。

 

在“度量”列中,您可以看到 Private Bytes  Pool Nonpaged Bytes (这两个度量都与内存有关)与 check_itinerary 事务有超过 70% 的关联匹配。这意味着在指定的时间间隔内,这些元素的行为与 check_itinerary 事务的行为密切相关。

由此可以完全断定:当 check_itinerary 事务的响应时间达到峰值时,系统内存资源不足。

还可以收集哪些与场景运行情况相关的其他信息?

除了在 Analysis 会话启动时出现在图树中的图,您还可以通过显示其他的图来获得有关场景运行情况的其他信息。

显示新图。  单击工具栏上的添加新图按钮,或者选择 > 添加新图。这时将打开“打开新图”对话框,并列出包含数据且可显示的图的类别。

 

Vuser显示有关 Vuser 及其状态的信息。

错误。显示错误统计信息。

事务。显示有关事务及其响应时间的数据。

Web 资源。显示点击次数、吞吐量和连接数据。

Web 页面诊断信息图显示脚本中每个受监控 Web 页面的数据。 系统资源图将显示系统资源使用情况数据。在“打开新图”对话框中,单击类别旁边的 + 展开该类别。选择一个图,然后单击打开图。单击关闭,关闭“打开新图”对话框。现在可以打开更多图,了解有关场景运行情况的更多信息。

如何发布结果?

您可以使用 HTML 报告或 Microsoft Word 报告发布分析结果。报告使用设计者模板创建,并且包括所提供图和数据的解释和图例。

HTML 报告

HTML 报告可以在任何浏览器中打开和查看。要创建 HTML 报告,请执行下列操作:

报告菜单中选择 HTML 报告...

为报告选择文件名和保存路径。单击保存

Analysis 将创建报告并将其显示在 Web 浏览器中。注意 HTML 报告的布局与 Analysis 会话的布局十分相似。您可以单击左窗格中的链接来查看各个图。页面底部提供关于每幅图的描述。

Microsoft Word 报告

您可以通过 Microsoft Word 报告显示 Analysis 会话。与 HTML 报告相比, Word 报告的内容更全面,因为它可以包含有关场景、度量描述等的常规信息。通过设置报告格式,还可以让它包含贵公司的名称和徽标以及作者的详细信息。

与所有 Microsoft Word 文件一样,该报告也可以编辑,因此您可以在生成报告后继续添加注释和结果。

要创建 Microsoft Word 报告,请执行下列操作:

报告菜单中选择新建报告

“新建报告”对话框打开。

 

常规选项卡中:

基于模板下拉列表中选择详细报告(适用于单个运行)

为报告输入标题。

输入作者的名字、职务以及公司名。

格式选项卡中:

默认情况下,生成的报告将有标题页、目录、图详细信息和描述以及度量描述。您可以选择向报告添加脚本详细信息的选项,从而可以查看业务流程步骤的缩略图。

可以通过选择包含公司徽标并浏览到文件所在的位置来包含公司徽标。徽标必须是 .bmp 文件。

内容选项卡中:

选择要包含在报告中的场景运行部分和 Analysis 会话部分。本教程中您会将执行概要添加到内容项目列表中。

单击添加按钮,从列表中选择执行概要并单击确定。会将执行概要项目添加到列表中。将以下文字输入到编辑框中:

目标:该测试场景的目标是...

结论:我所得出的结论如下所示:

指定要包含在报告中的图。默认情况下,将会列出并选中会话中的所有图,并且报告中将包含图注释。

您可以指定项目在报告中的显示顺序。在工作负载特性项目中,从所选列列表中选择平均每秒的点击次数。单击向下箭头直到项目出现在总事务数之下。在报告中,平均每秒的点击次数项目将跟随在总事务数项目之后。

 5 单击生成

收集数据并以 Word 文件的格式创建报告,该报告将在 Microsoft Word 中打开。

除了 Analysis 会话期间生成的图,该报告还将包括目标和结论,以及您在生成报告时选择要包含的其他部分和图。

结论

在这一课,您学习了定义服务水平协议、分析场景运行情况和以报告的形式发布结果的基础知识。

您已经学习了通过研究显示服务器中瓶颈的各种图来确定性能问题(可能是由于负载过重),以及通过将这些图配置为显示关联数据来确定瓶颈的根源。

 

 

 

 

你可能感兴趣的:(laodrunner11)