性能测试工具LoadRunner介绍

时间:2022-06-13 12:34:18

性能测试工具LoadRunner介绍

摘要:性能测试用来测试软件在集成系统中的运行性能的,它是相对于功能测试,并在功能测试基础上对系统进行的全面的测试。而LoadRunner正是一款能够预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,loadrunner能够对整个企业架构进行测试。

关键词:性能测试;LoadRunner

中图分类号:TP206文献标识码:A文章编号:1009-3044(2008)17-21536-04

1 性能测试的概论

目前对性能测试没有明确的定义,它主要是针对系统的性能指标制定性能测试方案,执行测试用例,得出测试结果来验证系统的性能指标是否满足既定值。性能指标里可能包括系统各个方面的能力,如系统并发处理能力,批量业务处理能力,数据库机制等。

性能测试包括负载测试、压力测试和容量测试。

压力测试(Stress Test)是通过不断向被测系统施加“压力”,测试系统在压力情况下的性能表现,是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。

负载测试(Load Test)是为了检验系统在给定负载下是否能达到预期性能指标。

容量测试(Capability Test)是针对数据库而言,是在数据库中有较大数量的数据记录情况下对系统进行的测试,确定系统可处理同时在线的最大用户数。

2 LoadRunner介绍

LoadRunner 是一种预测系统行为和性能的负载测试工具。通过模拟上千万用户实施并发负载及实时性能检测来确认和查找问题,能够对整个企业架构进行测试。通过使用LoadRunner,企业能够最大限度的缩短测试时间,优化性能和加速应用系统的周期。LoadRunner能支持广泛的协议和技术,功能比较强大,可以为特殊环境提供特殊的解决方案。LoadRunner由下面三部分组成:Virtual User Generator用来录制脚本、编辑脚本;Controller用来布置测试场景、执行测试场景;Analysis用来对测试结果进行分析。

用LoadRunner进行负载测试的流程通常由五个阶段组成:计划、脚本创建、场景定义、场景执行、监视执行和结果分析。

1)计划负载测试:定义性能测试要求,例如并发用户数量、业务流程和所需响应时间;

2)创建 Vuser 脚本:将最终用户活动捕获到自动脚本中;

3)定义场景:使用 LoadRunner Controller 设置测试环境;

4)运行场景:通过 LoadRunner Controller 驱动、管理测试;

5)监视场景:通过 LoadRunner Controller 监控测试;

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

3 VuGen脚本开发

LoadRunner可以模拟一个数千用户同时使用客户端/ 服务器系统的环境。为执行此操作,LoadRunner用“虚拟用户 (Vuser)”代替实际用户。Vuser 执行的操作是用 Vuser 脚本描述的。LoadRunner提供各种帮助来开发 Vuser 脚本的工具。

LoadRunner提供了多种 Vuser 技术,通过这些技术可以在使用不同类型的客户端/ 服务器体系结构时生成服务器负载。每种 Vuser 技术都适合于特定体系结构并产生特定的 Vuser 类型。例如,可以使用 Web Vuser 模拟用户操作 Web 浏览器、使用 Tuxedo Vuser 模拟 Tuxedo 客户端与 Tuxedo 应用程序服务器之间的通信、使用 RTE Vuser 操作终端仿真器。各种 Vuser 技术既可单独使用,又可一起使用,以创建有效的负载测试方案。

Vuser 脚本的结构和内容因 Vuser 类型的不同而不同。例如,数据库 Vuser 脚本总是包含三部分,是在一段类似 C 语言并且包括对数据库服务器的 SQL 调用的代码中编写的。相反, GUI Vuser 脚本只有一个部分,并且是用 TSL (测试脚本语言)编写的。

开发 Vuser 脚本的过程开始于录制一个基本的脚本。LoadRunner 为您提供了大量录制 Vuser 脚本的工具。您可以通过将控制流结构和其他 LoadRunner API 添加到脚本中来增强该基本脚本。然后配置运行时设置。运行时设置包括迭代、日志和计时信息,以及定义 Vuser 在执行 Vuser 脚本时的行为。要验证脚本是否能正确运行,请以单独模式运行该脚本。如果脚本运行正确,则将其合并到 LoadRunner 方案中。录制业务流程时, VuGen 生成一个由函数构成的 Vuser 脚本。函数中参数的值是录制期间使用的实际值。

每个 Vuser 脚本都至少包含三部分:vuser_init、一个或多个 Actions 及vuser_end。录制前和录制期间,可以选择脚本中 VuGen 要插入已录制函数的部分。下表显示了要在每一部分录制的内容以及执行每一部分的时间。

运行多次迭代的 Vuser 脚本时,只有脚本的 Actions 部分重复,而 vuser_init 和vuser_end 部分将不重复。可以使用 VuGen 脚本编辑器来显示并编辑每个脚本部分的内容。但一次只能显示一个部分的内容。要显示某一部分,请在左窗格中突出显示该部分的名称。

在处理使用 Java 类的 Vuser 脚本时,可以将所有代码都置于 Actions 类中。Actions 类包含三个方法:init、action 和 end。这些方法对应于脚本中使用其他协议开发的部分,您可以在 init 方法中插入初始化例程、在 action 方法中插入客户端操作,并在 end 方法中插入注销过程。

4 Controller测试方案设计

4.1 方案开始时间

打开“延迟方案开始时间”对话框,可以在其中延迟方案的开始时间。按方案定义计划,定义整个方案的设置->“加压”选项卡->“持续时间”选项卡->“减压”选项卡->按组计划:定义各个组的设置。从左侧的框中,选择要计划的 Vuser组->“开始时间”选项卡->“加压”选项卡->“持续时间”选项卡->“减压”选项卡。

4.2 计划方案,使用计划生成器,可以通过下列方式控制方案的执行

限制方案持续时间->在方案中逐渐运行 Vuser->在方案中逐渐停止 Vuser。要为方案设置计划选项,请执行下列操作:

1)选择“按方案计划”选项。

2)要确定方案开始的方式,请单击“加压”选项卡。选择下列选项之一:

a 同时加载所有的Vuser:同时启动方案中的所有 Vuser;

b 启动X个Vuser,每X(时W 分W 秒):同时开始运行指定数目的 Vuser,并在两次 Vuser 加压之间等待指定的时间。

注意:方案运行时,您可以在方案中添加 Vuser 组/ 脚本,然后启用它们。在逐渐加压模式下,如果在方案中的所有 Vuser 都加压之后添加 Vuser 组/ 脚本,则新的组/ 脚本将立即开始加载。

3)要指示 LoadRunner 在开始加载 Vuser 之前对它们进行初始化,请选中“加压之前初始化所有的 Vuser”。注意, LoadRunner 仅在 Vuser 全部达到“就绪”状态后才加载它们。

上一篇:基于遗传模拟退火算法的网络负载平衡研究 下一篇:计算机支持的在线协作学习的设计与实现