Chapter 6 准备负载测试脚本.docx

上传人:b****7 文档编号:10602512 上传时间:2023-02-21 格式:DOCX 页数:10 大小:89.09KB
下载 相关 举报
Chapter 6 准备负载测试脚本.docx_第1页
第1页 / 共10页
Chapter 6 准备负载测试脚本.docx_第2页
第2页 / 共10页
Chapter 6 准备负载测试脚本.docx_第3页
第3页 / 共10页
Chapter 6 准备负载测试脚本.docx_第4页
第4页 / 共10页
Chapter 6 准备负载测试脚本.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

Chapter 6 准备负载测试脚本.docx

《Chapter 6 准备负载测试脚本.docx》由会员分享,可在线阅读,更多相关《Chapter 6 准备负载测试脚本.docx(10页珍藏版)》请在冰豆网上搜索。

Chapter 6 准备负载测试脚本.docx

Chapter6准备负载测试脚本

<本文属原创,如需转载请与本人联系>

第六章    准备负载测试脚本

在前面的课程当中,你已经可以看到脚本可以准确模拟你的应用程序。

你看到了在现实中回放的脚本模拟虚拟用户的典型的事务处理过程。

然而这些只是在模拟一个单一的用户的行为,如果模拟多个用户同时工作,你的程序会不会慢到无法工作的程度呢?

因此,接下来,将准备负载测试的脚本,并对其进行设置,来收集其集中的反应时间。

在下边的课程中我们将会设计到如下的话题:

--[if!

supportLists]-->Ø        

--[endif]-->如何衡量事务处理

--[if!

supportLists]-->Ø        

--[endif]-->如何模拟多个用户

--[if!

supportLists]-->Ø        

--[endif]-->如何确认页面内容

--[if!

supportLists]-->Ø        

--[endif]-->如何生成调试信息

--[if!

supportLists]-->Ø        

--[endif]-->测试成功了么

如何衡量事务处理

      为了配置需要而准备一个应用程序时,你需要测量某些特殊的动作持续的时间-登录花多少时间,航班预定花多少时间,等等。

      在LoadRunner中,你可以将你要测量的动作指定为事务(transaction)。

LoadRunner将会统计这些事务执行的时间。

你可以在彩色编码图(color-codedgraph)或者报告(report)中查看相关结果。

你可以根据这些信息来判断找个应用程序是否满足了最原始的需求。

      在步骤(step)前设置一个”startTransaction”,在步骤结束设置“EndTransaction”可以将一个用户的步骤标志成事务类型。

在回放过程中LoadRunner测量事务开始和结束标志之间的时间。

      你可以在你的脚本的任何地方设置事务(transaction),每个事务开始标志必须对应一个事务的结束标记。

--[if!

supportLists]-->1. 

--[endif]-->在login步骤中插入“StartTransaction”

在tutorial.usr脚本的测试树中,,右单击第一步出现:

SubmitForm:

login.pl.

选择InsertBefore,打开“AddStepdialogbox”.

选择StartTransaction,单击OK。

“StartTransactiondialogbox”被打开了

--[if!

vml]-->

--[endif]-->

在TransactionName框中输入login,单击OK。

VuGen会在SubmitForm:

login.pl步骤前插入一个事务标记。

--[if!

supportLists]-->2. 

--[endif]-->插入EndTransaction步骤

在测试树中,右单击SubmitForm:

login.pl,选择InsertAfter,打开“AddStep”对话框,选择EndTransaction后单击OK,打开“EndTransaction”对话框。

--[if!

vml]-->

--[endif]-->

在transactionname中输入login,接收默认状态LR_AUTO.,单击OK,LoadRunner会在SubmitForm:

login.pl后填加事务结束标记。

--[if!

vml]-->

--[endif]-->

--[if!

supportLists]-->3. 

--[endif]-->标记search_flight事务

在测试树中,右单击步Image:

SearchFlightsButton这一步,选择InsertBefore.-->StartTransaction→OK,在TransactionName中输入search_flight,单击OK

右单击步Image:

SearchFlightsButton这一步,选择InsertAfter.-->EndTransaction→OK,在TransactionName中输入search_flight,单击OK

--[if!

supportLists]-->4. 

--[endif]-->标记book_flight事务

在测试树中,右单击步SubmitForm:

reservations.pl_2这一步,选择InsertBefore.-->StartTransaction→OK,在TransactionName中输入book_flight,单击OK

右单击步SubmitForm:

reservations.pl_2这一步,选择InsertAfter.-->EndTransaction→OK,在TransactionName中输入book_flight,单击OK

--[if!

supportLists]-->5. 

--[endif]-->标记check_itinerary事务

在测试树中,右单击步Image:

ItineraryButton这一步,选择InsertBefore.-->StartTransaction→OK,在TransactionName中输入check_itinerary,单击OK

右单击步Image:

ItineraryButton这一步,选择InsertAfter.-->EndTransaction→OK,在TransactionName中输入check_itinerary,单击OK

--[if!

supportLists]-->6. 

--[endif]-->标记search_flight事务

在测试树中,右单击步Image:

SignOffButton这一步,选择InsertBefore.-->StartTransaction→OK,在TransactionName中输入logoff,单击OK

右单击步Image:

SignOffButton这一步,选择InsertAfter.-->EndTransaction→OK,在TransactionName中输入logoff,单击OK

如何模拟多个用户

在你的模拟过程中,你从Denver预定了一个航班。

然而在现实生活中,你可以从不同的地方预定机票,为了改善你的测试,你需要检查除了Denver以外的其他目的地是否可以正常工作。

为了完成这步,你需要为脚本设置参数,这意味着你要找到Denver,然后用一个参数来替换它。

在参数(parameter)文件中,你将会看到这个参数的值。

当你执行脚本时,虚拟用户将会从参数文件中获得值:

LosAngeles,Frankfurt等,因此可以模拟一个旅行代理机构。

--[if!

supportLists]-->1.  

--[endif]-->找到你想要改变的数据

在测试树中,双击SubmitForm:

reservations.pl这一步,打开SubmitFormStepProperties对话框。

--[if!

vml]-->

--[endif]-->

右侧栏中的ABC图标标识已经指定了参数。

--[if!

supportLists]-->2. 

--[endif]-->指定这个给定的值是个可变的值

在第一行选择depart值为Denver

单击ABC图标,打开SelectorCreateParameter对话框

--[if!

vml]-->

--[endif]-->

--[if!

supportLists]-->3. 

--[endif]-->建立参数

--[if!

vml]-->

--[endif]-->

指定参数名origin,使用File的参数类型,单击OK。

VuGen将会将ABC图标换成参数的图标。

--[if!

supportLists]-->4. 

--[endif]-->单击临近的参数图表(origin),在弹出的菜单中选择参数属性,打开属性对话框。

--[if!

supportLists]-->5. 

--[endif]-->指定一些样本值来改变数据

单击AddRow.VuGen将会在表格中增加一行,将值换成LosAngeles。

单击AddRow.VuGen将会在表格中增加一行,将值换成Frankfurt.。

单击AddRow.VuGen将会在表格中增加一行,将值换成Sydney。

--[if!

supportLists]-->6. 

--[endif]-->定义出数据改变的方式

保持默认值,VuGen会按照顺序来取得路线值-非随机

Selectnextrow:

Sequential

Updatevalueon:

Eachiteration

--[if!

supportLists]-->7. 

--[endif]-->单击Close关闭参数属性对话框,单击OK关闭步骤(step)属性对话框。

现在你已经指定了出发的城市,在你执行负载测试时,Vuser将会用这个参数值来代替录制的值Denver。

执行脚本时,执行日志会显示出每次循环中替代的参数值,在第一次循环时,Vuser使用Denver,第二次使用LosAngeles,依次类推。

--[if!

supportLists]-->8. 

--[endif]-->修改脚本以执行服务器端的动态数据

应用程序范例使用了动态数据来处理航班信息。

这就需要参数化或者相互关联以保证多个用户运行而不会出错。

第五课提供了处理动态值的细节,但是为了练习起见,你可以在你的脚本中包含动态值

--[if!

vml]-->

--[endif]-->转换到Scriptview.,选择View>ScriptView,或者单击ScriptView按钮。

找到以“Name=outboundFlight”开始的那行,并在前边加反斜线(//),修改后的行应该如下:

//“Name=outboundFlight”,......

--[if!

vml]-->

--[endif]-->转换到Treeview.模式,选择View>TreeView,或者单击TreeView按钮。

如何确认页面内容

在执行测试时,你经常需要确定某些内容是否包含在返回的页面当中,checkpoint可以保证在你的脚本执行过程中某些期望的信息会显示在页面上,你可以插入两种类型的checkpoint:

--[if!

supportLists]-->Ø        

--[endif]-->textcheckpoint检查页面上是否存在某个文本

--[if!

supportLists]-->Ø        

--[endif]-->imagecheckpoint检查页面上是否存在某个图片

MercuryTours页面中,你可以用chekpoit保证在你登录后显示正确的屏幕

查找一个图片

      现在你可以为flightconfirmationimagesplash_flightconfirm.gif填加一个检查点来查找到这个图片。

--[if!

supportLists]-->1. 

--[endif]-->选择包含你要查找的图片的页面

选择包含文本检查点的页面,选择SubmitForm:

reservations.pl_3步,在右侧可以显示其镜像。

--[if!

supportLists]-->2. 

--[endif]-->插入图片检查点

选择Insert>NewStep.打开AddStepdialog对话框展开WebChecks并选择ImageCheck.单击OK.打开ImageCheckProperties对话框。

--[if!

supportLists]-->3. 

--[endif]-->指定图片

在Specification标签中,选择Imageserverfilename,在editbox.输入图片的名字,splash_flightconfirm.gif。

--[if!

supportLists]-->4. 

--[endif]-->保存脚本

在回放过程中,VuGen查找图片splash_flightconfirm.gif并在日志中指明是否找到了它。

如何生成调试信息

从某种角度看,在执行测试过程中,你经常需要输出一些信息,指出你当前的位置和其他的一些信息,这些输出信息既可以显示在日志当中,也可以显示在控制台输出窗口中。

你可以发出一个标准的输出信息或者错误信息。

在这个教程的范围中,我们将会插入错误信息,而不是检测真正的出错信息,处理错误信息的一种值得推荐的方法是查看错误状态,如果状态为失败,你发出一个错误信息。

请参考相关功能的在线例子。

在我们的应用需求中,我们想在完成整个预定过程后输出一个错误信息。

插入输出和错误信息

--[if!

supportLists]-->1. 

--[endif]-->选择位置

选择最后一步,Image:

SignOffButton.在右侧可以看到它的镜像。

--[if!

supportLists]-->2. 

--[endif]-->插入输出信息

选择Insert>NewStep.打开AddStep对话框.向下华东并选择OutputMessage.

单击OK.打开OutputMessage对话框.在MessageText中输入“Theflightwasbooked”

单击OK.OutputMessage被加到了树中.

--[if!

supportLists]-->3. 

--[endif]-->插入错误信息

选择Insert>NewStep.打开AddStep对话框.向下华东并选择ErrorMessage.

单击OK.打开OutputMessage对话框.在ErrorText中输入“Anerrorhasoccurred”

单击OK.ErrorMessage被加到了树中.

--[if!

supportLists]-->4. 

--[endif]-->选择File>Save或者单击Save

测试成功了么

      在这节中,你可以执行全部的脚本,查看执行日志,你可以查看文本和图片的检查点,同时检查事务和参数。

      默认情况下,由于图片占用的内存空间比较大,图片的检测点同时是设置成不可执行的,如果你想完成图片的检测点,你要在run-timesetting中将其设置为可用。

--[if!

supportLists]-->1. 

--[endif]-->将图片检查设置为可用

打开Run-Timesettings(F4),并选择InternetProtocol:

Preferences节点,选择Enableimageandtextcheck选项,单击OK关闭Run-TimeSettings对话框。

--[if!

supportLists]-->2. 

--[endif]-->执行脚本

单击执行按钮或者按下快捷键F5.VuGen开始执行脚本,并界在输出窗口中生成日志,等待脚本执行完毕。

--[if!

supportLists]-->3. 

--[endif]-->确定文本检测点

单击日志,并按下Ctrl+F打开查找对话框,查找web_reg_find.将会显示如下:

Registeringweb_reg_findwassuccessful.这并不是真正的文本检查—它只是为了在提交表单后VuGen可以检查文本,再次查找(F3)下一个web_reg_find.将会显示如下:

Registeredweb_reg_findsuccessfulfor“Text=Thankyou”(count=1).

这表明文本已经找到,如果有人改变了网页并删除了“Thankyou”,接下来的结果将会显示没有找到指定的文本。

--[if!

supportLists]-->4. 

--[endif]-->定位文字检测点

按下Ctrl+F查找web_image_check.查找结果显示为:

“web_image_checksucceeded(1occurrence(s)found.Alt='',Src=”splash_flightconfirm.gif.

这表明图片已经找到了,如果有人改变了页面,并且删除了这个图片,在后续的执行过程中将会显示没有找到图片。

--[if!

supportLists]-->5. 

--[endif]-->定位事务的开始点

单击执行日志按下Ctrl+F打开查找对话框,查找”Transaction”.找到的结果将显示为蓝色

--[if!

supportLists]-->6. 

--[endif]-->检查替代参数

单击执行的日志或者按下Ctrl+F打开Find对话框,查找单词”Parameter”.在日志中含有通知“origin”=“Denver”.再次查找(F3)下一个替换.注意VuGen在每次迭代中是如何取值的。

--[if!

supportLists]-->7. 

--[endif]-->保存:

File>Save或者单击Save

--[if!

vml]-->

--[endif]-->

下一节

现在你已经建立了一个脚本并将其用于负载测试,你可以进行第七章的学习,创建负载测试的情境。

 

发表于@2007年08月24日 17:

19:

00 |评论(loading...)|编辑|举报|收藏

旧一篇:

LR8.0中文手册_Chapter5回放过程中的一般问题 | 新一篇:

LR8.0中文手册_Chapter7创建负载测试的情境

查看最新精华文章请访问博客首页相关文章

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1