实训 LoadRunner测试脚本的参数化_第1页
实训 LoadRunner测试脚本的参数化_第2页
实训 LoadRunner测试脚本的参数化_第3页
实训 LoadRunner测试脚本的参数化_第4页
实训 LoadRunner测试脚本的参数化_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实训 LoadRunner测试脚本的参数化1.1实训目标能够使用参数化数据解决系统压力问题能够使用数据池中数据对参数变量实施参数化能够使用数据库中数据对参数变量实施参数化具备使用不同数据对系统施加预期压力的能力1.2问题引出:观察以下示例代码web_url(MercuryWebTours, URL=http:/localhost/MercuryWebTours/, Resource=0, RecContentType=text/html, Referer=, Snapshot=t2.inf, Mode=HTML, LAST);lr_think_time(5);web_submit_form(l

2、ogin.pl, Snapshot=t3.inf, ITEMDATA, Name=username, Value=jojo, ENDITEM, Name=password, Value=bean, ENDITEM, Name=login.x, Value=53, ENDITEM, Name=login.y, Value=18, ENDITEM, LAST);代码分析:在这段代码中,用灰色背景黑色字体标识的是用户输入的用户名和口令,如果直接使用这段脚本对应用进行测试,则所有VU都会使用同一个用户名和口令登录系统。如果要模拟更加真实的应用场景(例如,不同权限的用户执行同一个操作),就有必要将用户名

3、和口令用变量代替,为变量的取值准备一个“数据池”并设定变量的取值规则,这样每个VU在执行的时候就能根据要求取不同的值。当然,要进行参数化的场合远远不止用户名和口令的处理。设想这样一种情况,需要模拟多个用户同时操作一个页面,该页面要求用户输入一条信息记录,且规定记录内容不能重复。对于这种情况,如果不采用参数化的方式,则必须为每个可能的VU使用一个不同的脚本。采用参数化方式时,只需要将输入的内容设置为参数,在参数池中给出大于VU的数据即可。1.3任务描述“参数化”是LoadRunner的脚本处理过程中最常用的操作技巧之一。LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务

4、器的数据,而要进行性能测试,在环境变化(例如,需要使用不同的用户名和口令)时就必须让脚本适应环境变化的能力。可以通过将要更改的内容设为“参数”,然后允许参数以某种方式和形式取值,在脚本运行时就可以通过预先设定的规则,在脚本运行时取不同的值。要求:完成客户信息的注册任务如果想应用该系统订购飞机票,那么首先必须注册用户信息。参考数据如下UsernamePasswordFirstnameLastnamePostcodeAddressWilson123456JohnWilson100084PekingDavis654321AdamDavis100084TianjinTony734323TonyJuni

5、or100083ShanghaiDiego123456JohnWilson100083Jilin(1)对以上数据分别实行参数化,通过回放脚本实现不同用户的注册功能。(2)添加注册事务(3)加入集合点(4)加入验证用户成功注册的检查点(5)更改运行时日志选项将参数化数据的替换过程在执行日志中显示1.4覆盖的知识点录制脚本、参数化、事务、集合点1.5实训参考步骤LoadRunner提供了对参数化很好的支持,最简单的方法是通过上下文菜单直接对脚本中的某部分内容进行参数化操作,具体操作方法如下:(1)在脚本中选择需要参数化的内容,单击右键,从弹出菜单选择 Replace with a paramete

6、r命令,如图(2)在弹出的对话框中给出参数的名称、类型,图中给出的参数名为username,参数的类型为File。File类型可以利用数据文件为参数提供数据池,并设置参数依据某种规则从数据池中取出替代脚本中的参数。注意:将某个参数类型设置为File或Table后,可以手工编辑数据文件形成参数的数据池,这里特别需要注意的是数据文件一定要以一个空行结束,否则最后一行输入的数据不会被参数所使用。(3)单击该对话框的Properties按钮可以设定参数数据池的内容以及参数的取值方式。除这种方法外,还可以通过LoadRunner工具条上的ParamList按钮打开参数列表对话框,在该对话框中增加参数和设

7、定参数的属性。指定参数的Update方式所谓参数的Update方式指名参数在何种情况下发生改变,以何种规则改变。下图是File类型参数Update方式设置的对话框内容,从图中可以看到,参数的Update方式包含Select next row、Update value on 和when out of values 3个选项。Update value on 指明了参数在何时发生改变。该选择共有3个选项:Each Iteration、Each Occurrence和Once。Each Iteration表示“在每次迭代时更新参数的值”、Each Occurrence表示“在参数每次出现时更新参数的值

8、”。对Each Iteration而言,一个VU执行时,每次迭代时更新参数的值,如果在一个迭代过程中参数出现了多次,参数取相同值。而对Each Occurrence而言,如果一个迭代过程中某参数出现了多次,每次都取不同值。Once表示VU执行过程中,只在第一次迭代时为参数取一次值,以后每次迭代取相同值。Select next row指明以何种方式从数据池中获取数据,该选择共有三个选项,Sequential(顺序取值),Random(随机取值),Unique(每次取唯一值)。根据Select next row和Update value on 的不同设置组合,VU运行过程中为参数取不同的值。举例说

9、明:例:假设为某个类型为File的参数Username设置表B1所示的数据池,该参数所在的脚本中包含该参数的部分要求迭代2次,执行脚本的VU数量为2个,脚本需要迭代的部分有两个地方使用了参数Username。则在不同设置时参数取值见表B2描述。表B1 参数Username的数据池数据UsernameAliceBobChrisDavidFrankGreenJackSmith表 B2 不同设置时参数取值Select next row取值Update value on 取值 参数取值示例SequentialEach Iteration每个VU的参数都按照同样的方式取值,第一次迭代中参数Usernam

10、e两次出现都取Alice,第二次迭代中参数Username两次出现都取BobEach Occurrence每个VU的参数都按照同样的方式取值,第一次迭代中参数Username首次出现取Alice,第二次出现取Bob;第二次迭代中参数Username首次出现取Chris,第二次出现取David。Once每个VU的参数都按照同样的方式取值,每次迭代每次出现都取Alice。Select next row取值Update value on 取值 参数取值示例RandomEach Iteration每个VU的参数都按照同样的方式取值,第一次迭代中参数Username两次出现都取相同值,其值为从数据池中随

11、机选择一个,第二次迭代中参数Username两次出现都取相同值,其值为从数据池中随机选择一个Each Occurrence每个VU的参数都按照同样的方式取值,第一次迭代中参数Username首次出现取随机值,第二次出现再取随机值;第二次迭代中参数Username首次出现取随机值,第二次出现再取随机值。Once每个VU的参数都按照同样的方式取值,每次迭代每次出现都取相同随机值。Select next row取值Update value on 取值 参数取值示例UniqueEach Iteration每个VU按照不同的方式取值,对第一个VU,第一次迭代中参数Username两次出现均取Alice;

12、第二次迭代中参数Username两次均取Bob。对第二个VU,第一次迭代中参数Username两次出现均取Chirs;第二次迭代中参数Username两次均取David。Each Occurrence每个VU按照不同的方式取值,对第一个VU,第一次迭代中参数Username第一次取Alice,第二次取Bob;第二次迭代中参数Username第一次取Chris,第二次出现取David。对第二个VU,第一次迭代中参数Username第一次出现取Frank,第二次出现取Green;第二次迭代中参数Username首次出现取Jack,第二次出现取Smith。Once每个VU按照不同的方式取值,第一个V

13、U,两次迭代中参数username每次出现均取相同值Alice。第二个VU,两次迭代中的参数每次出现均取值Bob。从上表描述可以看出,只有当参数的Select next row 设置为Unique时,才能保证每个vu在每次迭代时取不同的值。1.6 课后任务录制一个Tomcat自带的一个小程序numguess,该小程序实现的是一个非常简易的猜数字游戏,系统随机生成一个1-100之间的数字,作为标准数值,用户在文本框中输入猜测的数字,如果输入的数值比标准数值大,则告知您应该输入小一点的数字;否则相反;如果输入的正好是标准数值,那么就会出现恭喜成功的页面。知识点:录制脚本、参数化、事务、集合点参考步

14、骤:(1)录制脚本 URL=http:/localhost:8080/jsp-examples/num/numguess.jsp,启动页面,在文本框中输入数字“2”,单击submit按钮,完成一个猜数字过程。停止录制。(2)录制完成后,需要对脚本进行完善,想考查该小程序的并发处理能力及了解事务的 处理时间的情况,所以需要加入集合点和事务。改良后的脚本代码如下:Action()lr_rendezvous(集合点);lr_start_transaction(执行时间);web_url(numguess.jsp, URL=http:/localhost:8080/jsp-examples/num/n

15、umguess.jsp, Resource=0, RecContentType=text/html, Referer=, Snapshot=t1.inf, Mode=HTML, LAST);lr_think_time(5);web_submit_form(numguess.jsp_2, Snapshot=t2.inf, ITEMDATA, Name=guess, Value=2, ENDITEM, LAST);lr_end_transaction(执行时间, LR_AUTO);return 0;(3)通常,如果猜数字不正确之后,我们都会根据提示,尝试输入另外一个数字,猜这个数字是否就是那个正确的数字。这就涉及脚本参数化的问题,在这里需要对脚本中的Value=2进行参数化,将其参数化为“guessval”,相应的数据文件为“guessval.dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论