性能测试
LoadRunner概要介绍及安装过程
概要介绍
LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner , 企业能最大限度地缩短测试时间, 优化性能和加速应用系统的发布周期。目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢, 系统崩溃等问题。这些都不可避免地导致公司收益的损失。
Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源, 无需购置额外硬件而最大限度地利用现有的IT 资源, 并确保终端用户在应用系统的各个环节中对其测试应用的质量, 可靠性和可扩展性都有良好的评价。LoadRunner 是一种适用于各种体系架构的自动负载测试工具, 它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统, 它通过模拟实际用户的操作行为和实行实时性能监测, 来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术, 为您的特殊环境提供特殊的解决方案。
基本步骤
使用LoadRunner 完成测试一般分为四个步骤:
1)Vitrual User Generator 创建脚本
创建脚本,选择协议
录制脚本
编辑脚本
检查修改脚本是否有误
2)中央控制器(Controller)来调度虚拟用户
创建Scenario,选择脚本
设置机器虚拟用户数
设置Schedule
如果模拟多机测试,设置Ip Spoofer
3)运行脚本
分析scenario
4)分析测试结果
安装LoadRunner 中文版
LoadRunner 分为Windows 版本和Unix 版本。如果我们的所有测试环境基于Windows 平台, 那么我们只要安装Windows 版本即可。本章讲解的安装过程就是LoadRunner7.8中文的Windows 版本的安装。
系统要求
目前部门的测试机和工作机器足可以满足LoadRunner7.8 的最低要求。不过要比较好的运行LoadRunner, 内存最好在512M 以上, 安装LoadRunner 的磁盘空间至少剩余500M。操作系统最好为Windows 2000。
安装过程
LoadRunner7.8中文版安装基本分两个步骤:首先安装LoadRunner7.8英文原版,然后安装中文语言插件包
1. 在“Registration Information” 界面中, 输入序列号
2. 在安装类型界面中, 选择一种安装类型
下面简单的对这三种安装类型进行介绍
●Standalone Installation 将要安装LoadRunner 在一台计算机上
●Network Installation 把LoadRunner 安装在一个网络驱动器上, 这样任何能连接到这个网络驱动器的计算机都可以使用LoadRunner 的部分或者全部组件。
●Network Installation and shortcuts 和Network Installation 类似,不同的只是这种类型将把自己的计算机配置成Workstation 来运行LoadRunner。如果选择了第二项, 我们还需要进行2.3 的安装来配置Workstation.。考虑到我们是自己学习研究学习, 选择第一种安装方法。
3. 在安装方式界面中, 需要选择一种安装方式。建议选择“ 自定义安装”, 这样所有的组件都会一次安装。
下面简单的对各个安装方式进行介绍
●Typical Installation 安装比较通用的组件, 包括Controller、Vuser、在线帮助和脚该选项适合于控制Vusers 的机器。
●Load Generator 只安装运行Vusers 产生负载的组件。该选项适合于只产生负载,而不控制Vusers 的机器。
●MI Listener 安装MI Listener 组件, 用来透过防火墙来运行Vusers 并且监视性能。
●Custom Installation 自定义安装, 我们将使用该选项, 安装全部的组件。
4. 在“License Information” 中输入License Key 后,Next, 继续
5. 如果是网络安装,最好把网络驱动器映射成本机的一个盘符, 安装LoadRunner 的各级目录不要包含中文字符。
6. Next 后进入拷贝文件的界面
7. 拷贝文件完成后, 进入“User Login Settings” 界面。
●Allow virtual users to run on this machine without user login 需要在下面输入域、用户名和密码, 这样运行Load Generator 的机器会自动登陆到网络
●Manual log in to the Load Generator machine 运行Vusers 时, 自动登陆到网络,无需登陆用户名和密码, 这样Vusers 就会不用任何干预自动的启动运行。推荐选择该项。这里选择第一项和第二项都可以。
8. 重新启动, 安装完成
将压缩文件拷贝解压到本机的安装.。过程比较简单要开始安装以Administrator 的身份登陆Windows2000 后,(注意要退出已经运行的英文原版)运行安装目录下Setup.exe 即可进入安装程序,安装过程中一切人机交流窗口多选择默认“下一步”即可
注意:解压文件存放的文件夹不可起中文名字,安装目录最好使用默认,如果更改则安装目录不要使用中文名!
LoadRunner介绍与应用实例
LoadRunner是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
LoadRunner是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner能支持广泛的协议和技术,为您的特殊环境提供特殊的解决方案。
轻松创建虚拟用户
使用LoadRunner的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。
用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。
为了进一步确定您的Virtual user 能够模拟真实用户,您可利用LoadRunner控制某些行为特性。例如,只需要点击一下鼠标,您就能轻易控制交易的数量,交易频率,用户的思考时间和连接速度等。
创建真实的负载
Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner的Controller,您能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。
而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能---- 包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。
定位性能问题
LoadRunner内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server,网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。
利用LoadRunner的ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck 在Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。
分析结果以精确定位问题所在
一旦测试完毕后,LoadRunner收集汇总所有的测试数据,并为您提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner的Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。例如,这个交易细节分析机制能
够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。
重复测试保证系统发布的高性能
负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。
LoadRunner完全支持EJB 的负载测试。这些基于Java 的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件,您可以在应用程序开发的早期就确认并解决可能产生的问题。
利用LoadRunner, 您可以很方便地了解系统的性能。 它的Controller 允许您重复执行与出错修改前相同的测试方案。它的基于HTML 的报告为您提供一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些报告是基于HTML 的文本,您可以将其公布于您公司的内部网上,便于随时查阅。
接下来的文章编者就将辑录一篇网上的使用LoadRunner®来测试BEA中间件产品文章来与大家分享如何使用LoadRunner进行实际的性能测试。
1. LoadRunner的虚拟用户
LoadRunner使用虚拟用户(Virtual users)来模拟实际用户对业务系统施加压力。虚拟用户在一个中央控制器(controller station)的监视下工作。如下图所示。
LoadRunner使用虚拟用户
在做一个测试方案时,要做的第一件事就是创建虚拟用户执行脚本。LoadRunner提供了Virtual User Generator来录制或编辑虚拟用户脚本。
2. 使用Vugen创建虚拟用户执行脚本
A.从菜单中选择运行Virtual User Generator:
从菜单中选择运行Virtual User Generator
B.创建一个单协议脚本,选择协议类型为"Tuxedo 7"
创建一个单协议脚本
C.选择工具条中的" "来录制一个脚本,在弹出的窗口中输入Tuxedo客户机程序的可执行文件名(SimpApp.exe),并选择"Record into Action"为Action。
点击"OK"开始录制脚本,这时Vugen就会启动Simpapp.exe,如下图所示,输入WSNADDR,输入字符串(Tuxedo is powerful!)之后,点击TOUPPER,TUXEDO服务器完成请求后把输出字符串(TUXEDO IS POWERFUL!)写到"Output string"中,点击停止录制按钮。
D.编辑Vuser脚本。我们在C中做的所有操作都被录了下来,记录到一个脚本文件中,其内容如下,我们把它存为simpapp。
编辑Vuser脚本
脚本内容如下:
/* This file is generated by LoadRunner. You may edit it carefully! */
#include "lrt.h"
#include "replay.vdf"
Actions()
{
lrt_tuxputenv("WSNADDR=//172.22.32.25:7110");
lr_think_time(3);
tpresult_int = lrt_tpinitialize(LRT_END_OF_PARMS);
lrt_abort_on_error();
data_0 = lrt_tpalloc("STRING", "", 1);
/* Request STRING buffer 1 */
lrt_strcpy(data_0, sbuf_1);
data_1 = lrt_tpalloc("STRING", "", 1);
tpresult_int = lrt_tpcall("TOUPPER",
data_0,
0,
&data_1,
&olen,
0);
/* Reply STRING buffer 1 */
lrt_abort_on_error();
lrt_tpfree(data_0);
lrt_tpfree(data_1);
lrt_tpterm();
return 0;
}
代码中加粗的函数是LoadRunner对TUXEDO函的二次包装。
E.点击工具栏中的" "按钮来执行我们刚才录制的脚本,确保执行无误。
执行脚本
3. 使用控制器(Controller)来调度虚拟用户
A.从菜单中选择运行Controller:
从菜单中选择运行Controller
B.创建一个新的Scenario,选择刚才录制的脚本(simpapp):
创建一个新的Scenario
点击"OK",弹出Scenario调度界面,如下图所示。在"Quantity"中输入100,表示使用100个虚拟用户。(虚拟用户与购买的LICENSE有关联)
C.点击"Edit Schedule"来编辑压力调度。
D.选择"Runtime settings"来作运行时设置
在Pacing的设置中,"Number of Iterations"用于设置Vusers的Actions被执行的次数;"Start new iteration"用于设置调度器在什么时机迭代执行Vusers的Actions。
"Think Time"用于设置Vusers的反应和思考时间,以尽量做到和正常人一样来施压。"Ignore think time"表示忽略思考时间,这是理想状态,一般不使用。"As recorded"表示按照录制时的实际操作时间。"Multiply recorded think time by"表示Vusers的思考时间是实际录制时间的若干倍。
在"Miscellaneous"中设置一些杂项,如使用进程还是使用线程等。对于TUXEDO,好象只能选进程模式。
E.选择"Start scenario"来开始本次压力测试调度。
执行结果分析如下:
执行结果分析
施压时间为5分41秒,Vusers数量为100,一共完成的Actions交易数量为5625笔,平均响应时间为5.561秒,TPS为17.8