LoadRunner工具在性能测试中应用研究

2012-05-08 04:41张峰刘庆峰贺英杰
电脑知识与技术 2012年7期
关键词:性能测试

张峰 刘庆峰 贺英杰

摘要:该文对于软件的性能测试具有一定的指导意义。首先介绍了LoadRunner的性能特点,然后对其性能测试的一般流程进行描述,最后通过实际应用阐述了LoadRunner在性能测试方面的应用过程以及如何对测试结果进行分析。

关键词:LoadRunner;性能测试;负载测试

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)07-1567-02

LoadRunner Tool for Applied Research in the Performance Test

ZHANG Feng, LIU Qing-feng, HE Ying-jie

(91413 troops,Qinhuangdao 066001,China)

Abstract: This paper with some guiding significance for the software performance testing. First LoadRunner performance characteristics, then the general process of performance testing are described, explained by the practical application of how LoadRunner performance testing process and test results are analyzed.

Key words: LoadRunner; performance testing; load testing

随着国家建设逐渐在信息化建设领域的发展,软件在国家信息化建设中的作用越来越大,在很多领域中也发挥越来越重要的作用。但是随着软件技术、方法的不断发展,虽然目前的软件功能基本满足可以使人们快速开发复杂性的应用的需求,但是随着软件应用规模也越来越大,架构越来越复杂,最终导致还会影响软件的性能而停止使用,给软件开发机构以及客户都带来了一定的损失。因此,解决软件性能的问题对世界都具有重要的现实意义。LoadRunner是目前国内性能测试领域应用最广泛的工具之一,它可以通过模拟成千上万的用户,很快地帮助用户确认和查找性能问题。

1性能测试基础知识

系统的性能是一个很大的概念,覆盖面非常广泛,对一个软件系统而言包括执行效率、资源占用、稳定性、安全性、兼容性、可扩展性、可靠性等等,性能测试是用来保证产品发布后系统的性能满足用户要求。性能测试在软件质量保证中起重要作用。

在性能测试的执行中,可以根据具体的性能指标,分解为多种子测试,根据其关系,可以在不同的时间和空间内执行。这些子测试通常包括以下幾种:

1)压力测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行测试软件,来测试被测系统的性能、可靠性、稳定性等。

2)负载测试。负载测试是确定在各种工作负载下系统测性能,目标是测试当负载逐渐增加时,系统组成部分的响应输出项,例如通过量、响应时间、CPU负载、内存使用等如何决定系统性能(稳定性和响应)。

3)并发测试。并发性能测试是指逐渐增加并发用户数负载,直到系统的瓶颈或者不能接收的性能点,通过综合分析交易指标、资源监控指标等来确定并发性能的过程。并发性能测试是负载压力测试中的重要内容。

4)健壮性测试。健壮性是指在异常情况下,软件能够正常运行的能力,这里的异常指的是资源过少、用户数过多、突发故障等。

5)容量测试。容量测试是检验软件的能力最高能达到什么程度的测试,一般应测试到在正常情况下软件所具备的最高能力,如:响应时间或并发处理个数等能力。

2 LoadRunner简介和性能测试流程

2.1 LoadRunner简介

LoadRunner主要由Mercury虚拟用户生成器VuGen(创建脚本)、创建、管理和监控负载测试的中央控制台Mercury LoadRunner Controlle(设计和运行场景)、压力生成器LoadGenerator(模拟用户生成负载)、结果分析工具Mercury Analysis(分析场景)组成。

2.2性能测试流程

LoadRunner通常是按照图1的流程来进行性能测试的,即使在项目验收阶段启动的性能测试也不例外。不过,可能会根据项目的实际情况省略一些步骤。

图1LoadRunner性能测试流程

各流程的主要内容介绍如下:

1)测试需求分析。主要任务是确定测试策略和测试范围。测试策略主要根据软件类型以及用户对待性能测试的态度来确定。测试范围则根据测试策略和需求分析的结果来确定。

2)测试计划的制定与评审。测试计划的内容主要包括测试范围、测试环境、测试方案简介、风险分析等。测试计划要经过评审才可以生效。

3)测试用例的设计与开发。主要包括测试用例的设计和测试脚本的开发。测试脚本的开发主要是指开发和用例相关的测试程序。

4)测试的执行与监控。主要包括性能测试的实施与过程监控。测试实施主要指通过测试工具或真实的用户来执行测试用例,具体工作主要有创建测试场景、执行测试场景、监视测试场景等。

5)分析测试结果。主要任务是根据前面的测试数据来分析测试结果,为优化和调整系统提供依据。通过对测试结果的综合分析,准确定位系统的性能问题。

6)编写性能测试报告。根据分析结果编写性能测试报告。测试报告主要包括测试过程记录、测试结果分析、系统调整建议等内容。

7)总结测试经验。通过总结本次工作的经验和教训,给以后相类似的工作提供一些指导作用。不断的总结和学习,也能提高团队每个人的思想意识和学习能力。

3测试案例

3.1背景概述

Mercury Tours是一个简单的、小型的机票预定网站。如果想在该网站上预订机票,旅客需要先在该网站上注册一个用户名和设置相应的密码,并填写相关的用户信息,注册成功后,旅客就可以使用注册的用户名和密码登录该网站进行机票预定。

为了测试多个用户同时访问Web服务器时是否存在性能下降等性能问题,找出Web服务器能够同时支持的最大用户数,需要对Web服务器进行并发用户性能测试。在具体的性能测试工作中,并发用户往往是借助工具来进行模拟的。鉴于LoadRunner在性能测试方面的强大功能,在本测试案例中使用LoadRunner来模拟大量的用户,然后让这些虚拟用户同时访问网站,从而帮助我们确认和查找性能问题。测试的体系架构如图2所示。

图2测试体系架构图

3.2测试分析和规划

注册和登录是系统的基本功能,尤其是登录,多数用户都会使用到,因此登录功能是重点设计的测试场景,以保证用户能够正常登录访问系统。注册功能的并发用户数量较少,且仅仅是提交数据的过程,因此可以不进行测试。

单用户登录的模拟场景主要如下:1)打开首页,进入登录界面,提交登录信息;2)进入系统订票界面,进行订票操作;3)注销登录,退出系统。

为了达到测试目的,需要使用LoadRunner设计一定数量的虚拟用户并发登录系统,查看登录结果。

3.3测试脚本的录制和开发

运行LoadRunner,在录制面板上输入要录制的目标站点URL,打开网页后进行登录操作并进行录制。将登录操作定义为一个事务,在录制过程中添加事务和集合点。插入事务是为了更好地分析并发用户的操作响应时间。

如果直接用录制后的脚本创建测试场景,则所有的虚拟用户在场景运行时执行的操作将会与录制的操作完全一样,这不符合实际情况。在实际情况中,并发登录的用户是不相同的,这个时候可以使用LoadRunner的参数化功能。参数化实际就是使用参数来替换一些常量,当脚本运行时,虚拟用户使用指定数据源中的值来替换参数。在本例中,将用户名和密码参数化为“username”和“password”两个参数,然后为这两个参数指定一个数据源。

3.4场景的创建和执行

启动Controller,场景类型选择手动测试场景,设置一定数量的虚拟用户,配置测试脚本和负载生成器,使用计划生成器同时加载所有的虚拟用户并使所有的虚拟用户运行到结束。场景配置完成后就可以启动测试场景,在场景运行时可以查看用户状态和运行数据图。

3.5结果分析

运行后的虚拟用户运行情况和事物响应时间如图3、图4、图5所示。在虚拟用户运行图中,紫色线条代表正在运行的虚拟用户数,黄色线条代表已经结束的虚拟用户数,红色线条代表出错的虚拟用户数;在事物响应时间图中,棕色线条代表action事物的响应时间,紫色线条代表登录事务的响应时间。

从图3中可以看出,当虚拟用户数为20时,事务的响应时间比较小,且基本成一条直线,说明Web服务器的性能比较稳定;当虚拟用户数增加到30时,如图4所示,事务响应时间有所增加,随着测试时间的变化,事务响应时间逐渐变大,说明系统处理事务的速度逐渐变慢,服务器性能呈现下降的趋势;当虚拟用户数增加到40时,如图5所示,事务响应时间增加明显,随着测试时间的变化,事务响应时间成一条斜线,说明服务器性能有很大下降,同时有7个虚拟用户运行出错,进一步查看出错原因发现是下载资源时超时,说明Web服务器的最大并发用户数不超过40。

图3虚拟用户为20的虚拟用户运行图和事物响应时间图

图4虚拟用户为30的虚拟用户运行图和事物响应时间图

图5虚拟用户为40的虚拟用户运行图和事物响应时间

4结论

性能测试对于软件的重要性不言而喻,通过性能测试,可以发现系统存在的重大缺陷和问题,指导开发人员进行改进和完善,保证软件能够安全可靠地应用于国家的信息化建设中。本文从性能测试的基础概念入手,结合实例,阐述了如何使用性能测试工具LoadRunner进行测试以及如何对测试结果进行分析。LoadRunner只是性能测试的利器之一,为了更好地进行测试,还需要学习和掌握更多性能测试方面的工具。

参考文献:

[1]柳纯录.软件评测师教程[M].北京:清华大学出版社,2005.

[2]韩明军.软件性能测试过程[J].软件工程与标准化,2007(11).

[3]桑圣洪,胡飞.性能测试工具LoadRunner的工作机理及关键技术研究[J].科学技术与工程,2007,7(6).

[4]黄茂生.分析故障数据,提高软件测试的缺陷发现率[J].电子产品可靠性与环境试验;2003(04).

[5]李怡,周国祥.基于LoadRunner的一种性能测试流程方案研究与设计[J].计算机应用研究,2009(11).

[6]侯勇,张海林.自动化测试中的关键字驱动脚本技术[J].电子科技,2006(2).

[7]刘洪波,吕贵.软件自动测试理论在图象编辑软件测试中的应用[J].桂林电子工业学院学报,2002(6).

猜你喜欢
性能测试
基于LoadRunner的网络仓库系统性能测试及优化
自动扶梯主驱动链条性能测试分析与润滑保养
车联网专用短程通信技术
关于聚羧酸系减水剂的性能论述