实训 LoadRunner测试脚本的参数化模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实训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("login.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都会使用同一个用户名和口令登录系统。如果要模拟更加真实的应用场景(例如,不同权限的用户执行同一个操作),就有必要将用户名和口令用变量代替,为变量的取值准备一个“数据池”并设定变量的取值规则,这样每个VU在执行的时候就能根据要求取不同的值。
当然,要进行参数化的场合远远不止用户名和口令的处理。设想这样一种情况,需要模拟多个用户同时操作一个页面,该页面要求用户输入一条信息记录,且规定记录内容不能重复。对于这种情况,如果不采用参数化的方式,则必须为每个可能的VU使用一个不同的脚本。采用参数化方式时,只需要将输入的内容设置为参数,在参数池中给出大于VU 的数据即可。
1.3任务描述
“参数化”是LoadRunner的脚本处理过程中最常用的操作技巧之一。LoadRunner在录制脚本的时候,只是忠实的记录了所有从客户端发送到服务器的数据,而要进行性能测试,在环境变化(例如,需要使用不同的用户名和口令)时就必须让脚本适应环境变化的能力。可以通过将要更改的内容设为“参数”,然后允许参数以某种方式和形式取值,在脚本运行时就可以通过预先设定的规则,在脚本运行时取不同的值。
要求:完成客户信息的注册任务
(1)对以上数据分别实行参数化,通过回放脚本实现不同用户的注册功能。
(2)添加注册事务
(3)加入集合点
(4)加入验证用户成功注册的检查点
(5)更改运行时日志选项将参数化数据的替换过程在执行日志中显示
1.4覆盖的知识点
录制脚本、参数化、事务、集合点
1.5实训参考步骤
LoadRunner提供了对参数化很好的支持,最简单的方法是通过上下文菜单直接对脚本中的某部分内容进行参数化操作,具体操作方法如下:
(1)在脚本中选择需要参数化的内容,单击右键,从弹出菜单选择Replace with a parameter 命令,如图
(2)在弹出的对话框中给出参数的名称、类型,图中给出的参数名为username,参数的类型为File。File类型可以利用数据文件为参数提供数据池,并设置参数依据某种规则从数据池中取出替代脚本中的参数。
注意:将某个参数类型设置为File或Table后,可以手工编辑数据文件形成参数的数据池,这里特别需要注意的是数据文件一定要以一个空行结束,否则最后一行输入的数据不会被参
数所使用。
(3)单击该对话框的Properties按钮可以设定参数数据池的内容以及参数的取值方式。
在该对话框中增加参数和设定参数的属性。
指定参数的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表示“在参数每次出现时更新参数的值”。对Each Iteration而言,一个VU执行时,每次迭代时更新参数的值,如果在一个迭代过程中参数出现了多次,参数取相同值。而对Each Occurrence而言,如果一个迭代过程中某参数出现了多次,每次都取不同值。Once表示VU 执行过程中,只在第一次迭代时为参数取一次值,以后每次迭代取相同值。
Select next row指明以何种方式从数据池中获取数据,该选择共有三个选项,Sequential
(顺序取值),Random(随机取值),Unique(每次取唯一值)。
根据Select next row和Update value on 的不同设置组合,VU运行过程中为参数取不同的值。举例说明:
例:假设为某个类型为File的参数Username设置表B1所示的数据池,该参数所在的脚本中包含该参数的部分要求迭代2次,执行脚本的VU数量为2个,脚本需要迭代的部分有两个地方使用了参数Username。则在不同设置时参数取值见表B2描述。