QTP/UFT(功能自动化测试)

LoadRunner简介

欢迎使用LoadRunner, 该软件是用于测试应用程序性能的HP 解决方案。LoadRunner 向整个应用程序施压, 从而找出并确定潜在的客户端、网络和服务器瓶颈。

LoadRunner 包括:

  • VuGen。它是用于创建Vuser 脚本的HP 工具。可以使用VuGen 通过录制用户执行的典型业务流程来开发Vuser 脚本。使用此脚本可以模拟实际情况。
  • Controller。使您可以从单一控制点轻松、有效地控制所有Vuser, 并在测试执行期间监控场景性能。
  • Analysis。在HP LoadRunner Controller 或HP Performance Center 内运行负载测试场景后可以使用Analysis。Analysis 图可以帮助您确定系统性能并提供有关事务及Vuser的信息。通过合并多个负载测试场景的结果或将多个图合并为一个图, 可以比较多个图

VuGen 概念

测试或监控环境时, 需在系统中模拟用户的真实行为。HP 测试工具模拟多个用户在系统中同时工作或访问系统的环境。要执行这种模拟, 用虚拟用户(即Vuser)代替现实生活中的人。Vuser 执行的操作通常记录在Vuser 脚本中。用于创建Vuser 脚本的主要工具是HP 的Virtual User Generator, 也称为VuGen。

VuGen 不仅录制Vuser 脚本, 它还运行Vuser 脚本。使用VuGen 运行脚本有助于进行调试。使用VuGen 可确定Vuser 脚本在大型测试中的运行情况。

录制Vuser 脚本时, VuGen 会生成多个函数, 用以定义录制会话期间所执行的操作。

VuGen 将这些函数插入到VuGen 编辑器以创建基本Vuser 脚本。VuGen 只能在Windows 平台上录制Vuser 脚本。但录制的Vuser 脚本可在Windows 和Linux 平台上运行。

也可以在本机编程应用程序(如MS Visual Studio)中编写Vuser 脚本。要访问LoadRunnerAPI, 请安装LoadRunner DVD 上提供的相应IDE 插件。

脚本工作流

如何创建或打开Vuser 脚本

开发Vuser 脚本的第一步是创建一个空脚本。空Vuser 脚本的内容和结构会因脚本协议不同而稍有变化。因此, 在创建空Vuser 脚本之前, 必须知道要用于该脚本的协议。您可以使用协议分析软件来帮助选择协议。协议分析软件会扫描您的应用程序, 查找是否存在不同协议的元素, 并列出检测到的协议。有关详细信息, 请参阅协议分析软件。在创建空Vuser 脚本之后, 即可执行脚本创建工作流中的下一步, 即, 将用户操作录制到脚本中。

创建Vuser 脚本时, VuGen 会创建一系列构成该Vuser 脚本的配置文件、数据文件和源代码文件。这些文件包含Vuser 的运行时和设置信息。

VuGen 可用于:

  • 从模板创建或打开脚本。有关任务的详细信息
  • 打开或使用.zip 脚本。您可以解压缩或使用.zip 格式的脚本。
  • 打开存储在Application Lifecycle Management 中的脚本。
  • 将HP Application Lifecycle Management (ALM) 用于存储和检索Vuser 脚本、场景与分析结果。您可以在ALM 项目中存储脚本, 并将脚本归入不同的组。
录制Vuser 脚本

创建Vuser 脚本包含下面显示的步骤。本主题概述了第2 步, 即录制Vuser 脚本。

录制Vuser 脚本时, 可以使用VuGen 的浮动录制工具栏访问主要的录制功能, 例如, 暂停和停止录制, 插入事务和集合点。

每个Vuser 脚本至少包含三部分: vuser_init、一个或多个操作部分和vuser_end。运行Vuser 脚本的多次迭代时, 仅重复脚本的Actions 部分; vuser_init 和vuser_end 部分不会重复。录制之前和录制期间, 可以为VuGen 选择将录制的函数插入到脚本的哪个部分。

在开始录制之前, 请确保为脚本正确设置了录制选项。

完成录制用户操作之后, VuGen 将生成Vuser 脚本并执行其他各种录制后操作。您可以回放脚本以确保其正常运行。

为应对无法在客户端计算机上安装VuGen 的情况, VuGen 允许您使用LoadRunner 代理服务器录制脚本。对于某些Linux 计算机、Mac OS 计算机和移动设备, 可能需要进行代理服务器录制。

在成功录制Vuser 脚本之后, 可以回放该脚本。

关联工作室

创建Vuser 脚本包含下面显示的步骤。本主题概述了第3 步, 即关联Vuser 脚本。

当录制的脚本包含动态值(例如会话ID)且无法成功回放时, 使用关联。要解决此问题,需将动态值转换为变量, 才能够成功回放脚本。

例如, 许多应用程序和网站都使用当前日期和时间来识别会话。如果尝试回放在此类网站上录制的脚本, 脚本可能会失败, 因为当前时间不同于录制的时间。关联数据可以保存动态数据并在整个场景运行期间使用这些数据。

创建关联后, VuGen 会添加一个函数, 将动态值提取至参数。对应位置上出现的原始值将替换为参数。

回放Vuser 脚本

创建Vuser 脚本包含下面显示的步骤。本主题概述了第4 步, 即回放Vuser 脚本。

录制Vuser 脚本后, 可使用VuGen 回放该脚本。这有助于测试Vuser 脚本的基本功能,并帮助您发现需要解决的错误和问题。关联需求是您首次回放脚本时显现的典型问题。

  • 有关如何回放Vuser 脚本的详细信息
  • 如果您在回放该脚本时遇到问题, 则可以使用VuGen 的调试功能帮助解决问题。有关详细信息, 请参阅"调试- 概述"(第367 页)。
  • 有关VuGen 在脚本回放期间创建的文件的详细信息
  • 可以使用书签在脚本的各部分之间导航。
  • 可以从Windows 命令提示符运行Vuser 脚本。
  • 可以从Linux 命令行运行Vuser 脚本。
调试Vuser 脚本

创建Vuser 脚本包含下面显示的步骤。本主题概述了第5 步, 即调试Vuser 脚本。

创建Vuser 脚本后, 回放脚本以验证该脚本是否无误运行。使用VuGen 的调试功能,可以识别和解决脚本中的错误。可从VuGen 工具栏访问其中大多数脚本调试功能。

增强用于负载测试的脚本

创建Vuser 脚本包含下面显示的步骤。本主题概述了第6 步, 即查看Vuser 脚本的回放结果。

此任务说明了要为负载测试准备Vuser 脚本而能对该脚本执行的其他操作。此任务中的所有项都是可选的

参数

录制业务流程时, VuGen 将生成包含录制期间使用的实际值的脚本。假设您希望使用与录制值不同的值来执行脚本操作(查询、提交等)。为此, 需要将录制值替换为参数。这称为参数化脚本。

生成的Vuser 将参数替换为来自指定数据源的值。数据源可以是文件或内部生成的变量。

参数显示在Vuser 脚本内部的参数分隔符之内。默认情况下, VuGen 使用“{”和“}”作为左右参数分隔符, 但您可以根据需要修改这些分隔符。此外, 还可以修改脚本中的参数的背景颜色和轮廓颜色。

异步Studio

原始Web 应用程序使用同步性质的对话进行通信。典型的同步对话包括以下步骤:

  • 用户与Web 浏览器中的应用程序进行交互。
  • 浏览器基于用户输入向Web 服务器提交请求。
  • 服务器发送请求响应, 并且浏览器中的应用程序得到更新。

同步应用程序存在一些限制。其中一个限制涉及到浏览器中应用程序所显示数据的更新问题。例如, 一个显示多个股份的股票价格的应用程序。理想情况是该应用程序应在Web 服务器更新价格后立即更新股票价格的显示。同步应用程序能够以固定的时间间隔更新价格。例如, 浏览器可每隔10 秒钟向服务器发送有关最新股票价格的请求。该解决方案的一个局限性是, 显示的股票价格可能在下一刷新间隔之前就已不再是最新的了。尽管这在我们的股票投资组合方案中可能不是至关重要的, 但是说明了同步应用程序在及时更新信息方面的局限性。

在必要的情况下, 同步应用程序正在被异步应用程序取代。通过异步应用程序, 可以随时通知客户端在服务器端上发生的事件。因此, 异步应用程序能够更好地视需要更新信息。

查看回放结果

创建Vuser 脚本包含下面显示的步骤。本主题概述了第7 步, 即查看Vuser 脚本的回放结果。

为便于调试Vuser 脚本, 可以查看汇总了脚本运行结果的报告。VuGen 在Vuser 脚本执行期间生成报告, 您可以在脚本执行完成后查看报告。

“测试结果”窗口显示测试运行的所有方面, 包括:

  • 高度概括的结果报告(通过/失败状态)
  • 所有运行中使用的数据
  • 指明应用程序失败发生的确切位置的步骤可扩展树
  • 脚本中发生失败的确切位置
  • 特定步骤中应用程序状态的静态图像
  • 特定步骤或整个测试中应用程序状态的视频片段
  • 测试的每个阶段中, 每个步骤和检查点通过或失败的详细说明

协议

异步、IPv6 和64 位录制的协议支持

Ajax - Click & Script 协议

TruClient 协议

Citrix 协议

Click & Script 协议

COM 协议

数据库协议

Flex (RTMP/AMF) 协议

Java 协议

Java Vuser 协议- 手动编写脚本

Java over HTTP 协议

LDAP 协议

邮件服务协议

移动协议

.NET 协议

Oracle NCA 协议

RDP 协议

RTE 协议

SAP 协议

Siebel Web 协议

Silverlight 协议

Web (HTTP/HTML) 协议

Web 协议(通用)

Web Services

Windows 套接字协议

高级主题

使用VuGen 编辑器手动编写脚本
手动编写脚本- 概述

通过VuGen, 可以将自己的函数编入脚本中, 而不必录制实际会话。您可以使用VuserAPI 函数或标准编程函数。Vuser API 函数使您可以收集有关Vuser 的信息。例如, 您可以使用Vuser 函数评测服务器性能、控制服务器负载、添加调试代码或检索有关Vuser参与测试或监控的运行时信息。

本章介绍了在VuGen 编辑器中如何结合应用程序的库或类来编写Vuser 脚本。您也可以在Visual C 和Visual Basic 环境中通过编程开发Vuser 脚本。在这些环境中, 您可以在导入Vuser API 函数库的同时, 在开发应用程序中开发Vuser 脚本。

要创建自定义脚本, 首先需创建框架脚本。框架脚本包含脚本的三个主要部分: init、actions 和end。这三部分均为空白, 需要手动插入函数。

您可以创建C 和Java 编程语言的空脚本。

在外部IDE 中创建脚本

LoadRunner 提供了可与Visual Studio 或Eclipse 结合使用的插件。

插件有两种类型:

  • Visual Studio IDE 插件
  • 针对开发人员的Visual Studio/Eclipse IDE 插件

通过基本的Visual Studio IDE 插件可以在Visual Studio 环境中创建Vuser 脚本。可在本机环境中使用标准的LoadRunner 或C# 函数对脚本进行编程。然后, 可以将脚本添加到LoadRunner 场景中。

通过针对开发人员的Visual Studio IDE 插件可以直接从Visual Studio 或Eclipse 中创建LoadRunner 测试。可在本机环境中使用标准的LoadRunner、C# 或Java 函数对脚本进行编程。完成测试后, 可以添加运行时设置并回放测试。测试将另存为NUnit (VisualStudio) 或JUnit (Eclipse) 测试。可以直接从LoadRunner Controller 将这些测试作为系统测试或单元测试添加到场景中。

在LoadRunner 产品的DVD 主文件夹中的Additional Components 文件夹下提供这些插件。请确保为您的Visual Studio 版本选择正确的Visual Studio 插件。安装基本的Visual Studio IDE 插件之后, 您即可在Visual Studio 中创建新的LoadRunner脚本。

或者, 您也可以从VuGen 中将脚本发送到Visual Studio 或Eclipse。例如, 如果您在VuGen 中创建了脚本并且意识到需要本机环境的功能, 则在Visual Studio 中打开或在Eclipse 中打开按钮将在各自的应用程序中打开脚本。这要求您首先安装了基本的Visual Studio IDE 插件。(对于Eclipse, LoadRunner 会在您首次选择在Eclipse 中打开时在内部安装该插件)。

使用DLL 并自定义VuGen

您可以调用在外部Dll 中定义的函数。通过从脚本调用外部函数, 可以减少脚本占用的内存量, 缩短总运行时间。

要调用外部函数, 应加载定义函数所用的DLL。

可以通过以下方式加载DLL:

  • 局部方式(对于一个脚本): 使用lr_load_dll 函数。
  • 全局方式(对于所有脚本): 通过向vugen.dat 文件添加语句。
在Linux 中创建和运行脚本

您可以按以下方式在Linux 环境中使用VuGen:

  • 可以使用VuGen 创建在Linux 平台上运行的Vuser 脚本。在Windows 环境中录制应用程序, 然后在Linux 中运行, 因为Linux 不支持录制。
  • 在纯Linux 环境中工作的用户可以编写Vuser 脚本。可使用C 或C++ 编写脚本, 脚本必须编译到动态库中。

要通过编程创建脚本, 可以使用Vuser 模板作为较大型Vuser 脚本的基础。该模板提供:

  • 正确的程序结构
  • Vuser API 调用
  • 用于创建动态库的源代码和makefile
使用XML API 进行编程

VuGen 对XML 的支持便于您动态处理XML 代码并在执行测试期间检索值。执行下列步骤以创建有效XML 脚本:

  • 录制所需协议的脚本, 通常为Web、Web Services 或无线。
  • 将XML 结构复制到脚本中。
  • 通过LR API 添加XML 函数, 以检索动态数据和XML 元素值。

LR API 使用XPath, XPath 是XML 文档中操作文本的XML 路径语言。

您可以指示VuGen 使用运行时设置, 在执行日志窗口中显示XML 元素的输出值。VuGen 将显示行号、匹配项数和值。要显示值, 需要启用参数替换。在运行时设置中, 打开常规: 日志节点, 选择扩展日志, 然后选择参数替换。

所有Vuser API XML 函数都将返回成功找到的匹配项数, 未找到匹配项时返回零。

疑难解答和限制- 编程
Framework 4.5 .NET 脚本

问题:如果在Visual Studio 中运行在VuGen 中录制的.NET 脚本, 运行将因找不到关联的DLL 而失败。

解决步骤: 如果脚本使用.NET 4.5 自动录制, 则在Visual Studio 中使用Framework 版本4.5 重新生成脚本。

Framework 4.5 和Visual Studio 2010

问题: 在带有Framework 4.5 的计算机上编译所有C++ 对象失败。

解决步骤: 安装Visual Studio 2010 SP1。

问题: 在Visual Studio 中使用Framework 3.5 创建的.NET DLL 可能无法运行。

解决步骤: 向<应用程序>.config 文件(如果该文件不存在, 则创建一个)中添加以下内容:>

<configuration>
  <startup>
    <supportedRuntime version="v4.0" />
  <startup>
<configuration>

非英语语言支持

VuGen 支持多语言环境, 这样在创建和运行脚本时可以在母语计算机上使用英语以外的语言。

使用英语以外的语言时, 主要问题是确保VuGen 在录制和回放期间可识别文本的编码。编码适用于脚本使用的所有文本。这包括Web Vuser 的HTTP 标头和HTML 页面中的文本、参数文件中的数据以及其他文本。

Windows 2000 及更高版本允许您使用以下特定编码直接从记事本保存文本文件: ANSI、Unicode、Unicode big endian 或UTF-8。

默认情况下, VuGen 使用本地计算机编码(ANSI)。某些使用外语的服务器要求使用UTF-8 编码。要使用此服务器, 必须在“高级录制选项”中指明脚本要求采用UTF-8 编码。

附加组件

您可以安装提供高级功能的其他组件, 以便与LoadRunner 一起运行。您将从以下位置安装这些组件:

  • LoadRunner 安装DVD 的根文件夹内部的Additional Components 文件夹。
  • HP 软件联机支持(帮助> HP 软件支持网站)。登录支持站点后, 搜索LR 12.00Additional Components, 并下载包含所有其他组件的文件。解压缩该文件, 并运行要安装的其他组件的安装向导。

Controller

Controller 是LoadRunner 的工具, 用于创建和控制LoadRunner 场景。有一个场景负责定义每个测试会话中发生的事件。它控制要模拟的用户数、这些用户执行的操作以及用于运行模拟场景的计算机。您可以使用场景创建负载测试, 来检查服务器的可靠性和承载能力。

以下是在场景中定义的主要项目:

  • 场景类型。面向目标的场景或手动场景。
  • 测试。要运行的LoadRunner 脚本或单元测试。
  • 计算机。用于运行测试的计算机。
  • Vuser。在每台计算机上运行的虚拟用户(Vuser) 数。
  • 计划。如何加载user。
  • 监控器。在测试运行期间要监控的度量。

在首次打开Controller 时, 会提示您选择场景类型: 面向目标或手动。

  • 面向目标的场景。定义希望测试实现的目标, 而LoadRunner 将根据这些目标自动构建场景。例如, 可以为要同时运行的特定数量的Vuser 定义目标。或者, 可以定义目标来测试服务器性能, 例如每分钟页数、每秒点击次数或每秒事务数。
  • 手动场景。添加Vuser 并手动选择脚本/单元测试。然后将其分配在可用计算机上。

Analysis

欢迎使用LoadRunner Analysis, 它是HP 提供的用于收集和提供负载测试数据的工具。在执行负载测试场景时, Vuser 可以在执行事务时生成结果数据。Analysis 工具提供图和报告以便于您查看和了解数据。

每个图都具有用于描述图中度量的图例。还可以按照特定字段对数据进行筛选和排序。

附加组件

您可以安装提供高级功能的其他组件, 以便与LoadRunner 一起运行。您将从以下位置安装这些组件:

  • LoadRunner 安装DVD 的根文件夹内部的Additional Components 文件夹。
  • HP 软件联机支持(帮助> HP 软件支持网站)。登录支持站点后, 搜索LR 12.00Additional Components, 并下载包含所有其他组件的文件。解压缩该文件, 并运行要安装的其他组件的安装向导。

下表指示可用的其他组件和每个组件应该安装的位置:

第三方组件