Chapter 6 准备负载测试脚本.docx
《Chapter 6 准备负载测试脚本.docx》由会员分享,可在线阅读,更多相关《Chapter 6 准备负载测试脚本.docx(10页珍藏版)》请在冰豆网上搜索。
![Chapter 6 准备负载测试脚本.docx](https://file1.bdocx.com/fileroot1/2023-2/21/57f70e95-d795-4e4f-900d-3c16c7f3a3ad/57f70e95-d795-4e4f-900d-3c16c7f3a3ad1.gif)
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创建负载测试的情境
查看最新精华文章请访问博客首页相关文章