基于LoadRunner测试AEAI Portal

1  概述

本文采用LoadRunner11来测试 AEAIPortal门户登录、两个数据分析功能的页面加载,以此来阐述LoadRunner基本使用方法,同时掌握单机运行环境下AEAI Portal的常规页面加载性能参数。

2  工具介绍

2.1  基本介绍

LoadRunner 是一种预测系统行为和性能的工业标准级负载测试工具,通过模拟多并发用户实时并发负载及实时性能监测的方式来确认和查找问题。

本文安装的是LoadRuner11,从菜单上看,如下图,LoadRunner的核心应用(组件)主要为三部分:

  1. Virtual User Generator(Vugen)—用户脚本生成器,用于录制、设置脚本;
  2. Controller — 控制器,用于设计和运行场景;
  3. Analysis — 分析工具,用于分析压力测试结果。

而顶部LoadRunner,可以认为是一个入口程序,如下图:

可以分别调用启动Virtual User Generator(虚拟用户脚本生成器)、Controller (控制器)、Analysis(分析工具)。

2.2 常规过程

熟练使用LoadRunner之后,可以直接点击菜单来启动Virtual User Generator录制脚本,录制完毕后,编辑完善脚本(如:设置集合点、设置事务、设置思考时间),然后以单用户模拟测试运行一下,确认效果是否正确。

接着,在Virtual UserGenerator界面点击菜单上的工具—》创建Controller场景,直接启动对应脚本的Controller,在控制器界面上可以设置:模拟用户数、启用虚拟用户策略、压力测试时间、用户停止策略等,设置完毕,可以运行测试场景进行压力测试,在测试过程中可以实时看到压力测试运行情况。

测试后完毕后,在Controller界面点击菜单上的结果—》分析结果,来启动分析工具,默认就对Controller的测试结果文件进行多维度分析,以图表方式展现出来。

在下面的测试步骤环节会对上面的三个过程进行详细说明。

2.3 相关名词

  1. 虚拟用户(Virtualuser)脚本:在loadrunner中用Vuser模拟实际用户的操作来使用应用程序,整个过程可以录制下来生成脚本文件,以usr后缀结尾,脚本主要有三部分组成,vuser_init,action, vuser_end,其中action部分可以根据设置循环执行。通常情况下录制的脚本不能直接使用,需要编辑完善,如:设置集合点(Rendezvous)、设置事务(Rendezvous)、设置思考时间(lr_think_time)等。
  2. 事务(Transaction):可以认为是一个业务操作,可以是一个页面加载,也可以是一次表单提交,当然也可以是几个操作的集合,在loadrunner中可以设置子事务(sub_transaction)。LoadRunner 运行到该事务的开始点时,LR就会开始计时,直到运行到该事务的结束点,这个事务的运行时间在结果中会有反映。
  3. 集合点(Rendezvous):设置集合点,可以达到绝对的并发,在测试计划中,可能会要求系统能够承受1000 人甚至更多同时提交数据,在LR 中可以通过在提交数据操作前面加入集合点,当虚拟用户运行到提交数据的集合点时,LR 就会检查同时有多少用户运行到集合点,从而达到测试计划中的需求。集合点经常和事务结合起来使用。集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。
  4. 思考时间(lr_think_time):用户在执行两个连续操作期间等待的时间称为“思考时间”,使用lr_think_time 函数模拟用户思考时间,可以编辑已录制的 lr_think_time 语句,也可在脚本中手动添加更多lr_think_time 语句。
  5. 场景(Scenario):场景是一种文件,以lrs为后缀,使用Controller进行编辑,一般可是设置模拟用户数、启用虚拟用户策略、压力测试时间、用户停止策略等。

3 总体思路

以admin账户登录AEAIPortal,然后点击决策分析中的业务分析、现金流情况两个统计分析页面加载。把整个过程都录制在action中,接着编辑脚本,把登录操作剪切至vuser_init脚本中,接着在action部分插入集合点,把默认页面加载、业务分析、现金流程流情况通过插入事务的起止标识函数,来分隔成三个事务。

然后在Controller中设计场景,action循环执行10次,执行过程监视执行。

4 测试步骤

4.1 录制脚本

启动Visual User Generator,点击新建按钮,弹出如下界面:

选择Web(Http/HTML),点击“创建”按钮,显示界面如下:

注意:各项属性,一定要设置跟上图匹配。然后,点击“选项”显示如下界面:

选择基于HTML的脚本,然后点击“HTML高级按钮”,

设置如上图,然后点击“确定”关闭当前窗口,再点击“确定”,接着再点击“确定”,loadrunner会启动浏览器,还会显示出录制工具条(有时会现在)

在启动的浏览器地址栏录入:http://localhost:8080/portal/login.jsp,回车,显示登录页面,如下:

录入用户名、密码、验证码(注意:由于验证码是随机生成,所以在压力测试期间,需要屏蔽验证码校验,AEAI-Portal自带是否启用验证码校验开关设置),点击“登录”进入Portal主页面,如下图:

点击决策分析—》业绩分析,加载页面:

点击决策分析—》现金流情况,加载页面:

最后,点击如下图的录制工具条上的停止按钮(蓝色方块)

接着会生成脚本,如下图:

点击保存(ctr+s),把脚本保存为portal_test。

4.2 调整脚本

4.2.1  user_init部分

把登录页面加载部分以及登录操作脚本从action部分剪切至user_init部分,这样就需要定位登录截止位置的代码,其实很容易定位,只需查找:web_submit_data,且有登录相关参数的代码片段,然后把action最顶部的代码至登录完毕的代码剪切至user_init部分,最终效果如下图所示:

然后在登录代码前插入,开始事务脚本:

弹出窗口:

录入事务名为login,然后点击“确定”,最终如下:

然后,再插入结束事务脚本:

点击“确定”,如下:

4.2.2  隐藏域处理

由于AEAI Portal的统一身份登录页面,每次加载都有两个随机生成的隐藏域令牌(execution、lt),这两个令牌值需要登录时候提交校验的。因此,在这里要做处理,从登录页面查找两个隐藏域的值,保存起来,然后再提交表单时候,把这两个参数值以变量方式替换:

首先在登录页面加载代码前插入:

点击“确定”,设置如下:

点击“确定”,在脚本中插入代码:

同理设置lt,处理完毕如下:

现在已把隐藏域变量保存起来,在表单提交的时候需要使用,通过变量替换方式使用保存的变量:

把变量名放置于以大括号中实现变量的替换,如:{lt},{execution}。在这里还可以通过,loadrunner的输出脚本把变量输出在loadrunner日志中显示出来:

来验证获取的变量是否正确,如下图所示:

4.2.3  Action部分

现在user_init部分代码已调整完毕,接下来开始调整action部分的脚本,点击左边代码列表部分的action,切换至action部分脚本,如下:

接着,在顶部先插入“思考时间”,点击插入—》新建步骤,如下:

在弹出窗口上,选择思考时间,如下:

点击确定,然后设置为3秒,如下:

点击“确定”,再点击“确定”。

接着,插入集合,如下:

填写“start”,点击“确定”

分析脚本,要把脚本分成主页面加载、业绩分析、现金流情况三个事务,这样就需要在对应代码前插入“开始事务”,在对应代码后插入“结束事务”,如下:

个人主页页面加载业务开始,如下图:

个人主页页面加载业务结束,如下图:

业务分析页面加载业务开始,如下图:

业务分析页面加载业务结束,如下图:

现金流分析页面加载业务开始,如下图:

现金流分析页面加载业务结束,如下图:

现在已调整完毕脚本,点击保存,然后点击工具—》创建Controller场景:

4.3 设计方案

在弹出窗口,设置如下:

调整Vuser数为100,然后点击确定,启动Contoller,如下图:

双击全局计划处的启动Vuser,弹出窗口如下:

调整默认启动用户数,其中同时表征100个用户一起启动,下面的选项表示,每次多少人一组方式分组启动,后面的时间表征每组之间的时间间隔,调整完毕如下:

然后点击“确定”。

然后双击全局计划处所在“持续时间”所在的行,如下:

双击后显示如下窗口:

设置为“完成前一直运行”,如下图:

然后点击“确定”。

在场景组处默认组所在行上有右键,如下:

点击“运行时”设置,弹出窗口,如下:

设置迭代次数为10,如下图:

然后点击“确定”。

方案现在已经设置完毕,点击“保存”(ctrl+s),把场景也命名为“portal_test”,如下图:

4.4 启动测试

点击“启动”按钮来,启动测试,如下图:

启动后底部的Tab切换至“运行”,如下所示:

在图上A、B、C、D部分都从各维度显示实时运行情况,尤其是底部显示的每个事务运行耗时的最大值、最小值、平均值、标准值、以及最后一个耗时,一般来说,平均值跟标准值偏离越大说明,耗时分别越离散,或者说越不稳定,反之则说明越稳定。

接着使用laodrunner的分析器来对测试结果做分析:

点击菜单上:结果—》分析结果,就可以启动分析工具,且默认分析刚才运行的测试结果。

4.5 分析结果

如下图所示:

通过点击做左上侧的树形菜单显示不同纬度的分析结果,其中平均事务响应时间如下图所示:

点击底部表格上的保存图标,就可以把结果存为cvs格式:

然后用excel打开,整理如下(在单机32位jdk、 100个用户、20个并发性能测试结果,全部通过测试,没有失败)


度量


事务名


图的最小值


图的平均值


图的最大值


图的中间值


图的标准偏差


AchievementAnalysis


业绩分析


0.355


2.252


3.606


2.417


0.945


CashFlow


现金流统计


0.585


1.397


2.549


1.385


0.618


login


登录


0.369


0.642


1.19


0.473


0.3


PersonalCenter


主页面


0.736


2.245


4.705


2.148


1.143

5 备注说明

Loadrunner可以做很多复杂的测试,但是在本文中没有被提及其他复杂的测试设置,如:如何从文件或者数据库,或者随机获取提交表单的参数(如:用户名、密码等),以及变量参数化设置、测试CS系统等等,这些需要在后续使用过程中深入学习、熟练掌握。

基于LoadRunner测试AEAI Portal文档   下载

时间: 2024-12-19 09:35:14

基于LoadRunner测试AEAI Portal的相关文章

基于LoadRunner的web测试

随笔: loadRunner测试Web项目 下载:HP_LoadRunner_12.02_Community_Edition_T7177-15059 安装成功有三个快捷方式: 1:Virtual User Generator 2:Controller 3:Analysis 首先要进入安装目录有一个WebTours文件夹,最后有一个启动服务,先启动,启动完成可以进入http://127.0.0.1:1080/ 看是否成功,这个网站目前没发现有什么用 然后打开Virtual User Generat

AEAI Portal门户平台学习路径

1.概述 本文根据AEAI Portal的特点,为AEAI Portal门户平台初学者提供相对合理的学习路径,希望能帮助读者快速掌握AEAI Portal相关技能. 2.认识与部署 2.1 认识 Portal是一种Web应用,"portal是一种web应用,通常用来提供个性化.单点登录.聚集各个信息源的内容,并作为信息系统表现层的宿主.聚集是指将来自各个信息源的内容集成到一个web页面里的活动". AEAI Portal是国内(沈阳数通畅联软件技术有限公司)发布的一款Portal产品.

AEAI Portal V3.5.2门户集成平台发版说明

AEAI Portal门户集成平台为数通畅联的核心产品,本着分享传递的理念,数通畅联将Portal_server.Portal_portlet两个项目开源,目的在于满足客户与伙伴的OEM需求,以及为广大IT爱好者的集成工具提供多一种选择,多一种便利.希望通过开源中国,分享该产品,在交流学习中,使更多的人受益.本次发版的产品AEAI Portal V3.5.2为AEAI Portal V3.5.1版本的升级版,产品下载地址: http://pan.baidu.com/s/1mgj3SV2. AEA

LoadRunner测试AJAX

什么是AJAX? Ajax, shorthand for Asynchronous JavaScript and XML, is a web development technique for creating interactive web applications. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind th

loadrunner测试TCP协议服务器性能

最近对服务器的性能感兴趣,于是开始研究了一阵子loadrunner如何做采用TCP协议交互的服务器的性能测试,对loadrunner不是很熟悉,所以一开始也走了一些弯路,现将学习的过程记录下来,为以后做参考吧. TCP协议的服务器的性能测试,我想大家都会选择loadrunner的winsocket协议进行测试,我也是采用此种方式.下面将逐一记录如何使用此协议做性能测试. 1.采用DLL文件方式进行测试 由于与服务器连接的客户端的DLL文件我手头有,同时其对应的头文件也有,所以一开始试想的是采用l

LoadRunner测试50人同时登陆下单

LoadRunner测试50人同时登陆下单 一.LoadRunner简介 LoadRunner,是一种预测系统行为和性能的负载测试工具.通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试.企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期. LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能. 二.名词解释 1.集合 集合点的意思时等到特定的用户数后再一起执行某

LoadRunner测试ajax框架,回放后系统中没有产生数据解决方法

LoadRunner测试ajax框架的系统时,录制回放都没有报错,但是回放后系统中没有产生数据,数据始终不能写入数据库.查了一下原因,应该是录制的脚本不完善的问题,因为JS是在客户端执行的程序,LR只能监控客户机与服务器之前的通信. 解决方法: Recording options> HTTP Properites> Advanced > Headers: 选择"Record headers not in list", 然后点ok. 重新录制一遍脚本,会发现脚本里多出一

LoadRunner测试结果分析02 转载至zhangzhe的新浪博客

LoadRunner测试结果分析之我见 上述测试过程的重点在于事务,而LoadRunner生成的测试结果图并不局限于事务上,其中还有是关于Vusers.Errors.Web Resources.Web Page diagnostics的测试图. 1. 对于Vusers的测试图有3种:Running Vusers.Vusers Summary.Rendezvous,其中Running Vusers是关于虚拟用户加压.施压.减压的情况图: Vusers Summary是用户运行结果的综述图:Rend

loadrunner测试c/s架构的应用系统

用LoadRunner测试c/s架构的软件,怎样去选择协议,困扰了我很久,看到这篇文章,感觉有点收获,所以特意转了过来,希望对大家有用. 首先,什么是协议?协议无非就是一个约定,关于数据包发送的格式的约定,就是说如果大家都这样发送,那么通信就能够成功,如果大家都各按各的来,那么就没办法进行通信了.那么接下来就是LR录制时的工作原理了,LR的录制和WR不一样,它不关心你的对象识别什么的,不关心你的什么窗口之类的,LR有一个Agent进程,来专门监控客户端和服务器之间的通信,然后用自己的函数进行录制