A.6 参数化
当我们录制完成脚本后,需要对脚本进行进一步的修改,添加参数化功能来确保脚本能够动态运行。下面我们通过一个实例来说明为什么需要使用参数化?
例如,录制一个用户在论坛发帖的操作,无论如何回放,得到的结果都是发送相同的帖子内容及标题,与用户的真实情况有较大的区别,如图A.75所示。
这是由于脚本中的内容都是静态造成的,只有通过参数化处理将静态的内容变为动态才能解决这个问题。
图A.75 参数化的目的
A.6.1 参数化的操作
首先编写一个简单的脚本,如下所示:
Action()
{
lr_eval_string("text");
return 0;
}
关于lr_eval_string()函数的作用我们稍后再做介绍。在这个Action中选中text,然后单击鼠标右键,如图A.76所示。
在弹出的快捷菜单中选择Replace with a Parameter,将选中的部分替换成参数,如图A.77所示。
在这里可以修改参数的名称及参数的文件类型,此处选择默认即可,单击OK按钮,得到以下脚本:
Action()
{
lr_eval_string("{NewParam}");
return 0;
}
图A.76 选择需要参数的内容 图A.77 参数名和类型设置
这里的{NewParam}在VuGen中会以紫色显示,说明这是一个参数。NewParam是参数名,而{}是用来说明这个参数的边界的,在General Options/Parameterization中可以设置参数的边界字符。
这样就完成了参数化的操作。参数值被保存在Parameter List中,按【Ctrl+L】组合键或者单击工具栏中的Parameter List按钮。打开参数列表窗口,如图A.78所示。
这里有很多选项,我们先不考虑它们的具体含义,单击Add Row按钮,并添加对应的内容,如图A.79所示。
图A.78 Parameter List参数管理界面 图A.79 为参数添加多条记录
添加完成后单击右下角的Close按钮关闭整个Parameter List窗口,整个参数内容设置完毕,回放一下,会发现完全没有任何效果。这里还要多做两件事情:
1.设置运行的次数
打开Run-Time Setting,找到Run Logic,设置Run的迭代次数为4次。
2.打开Log,显示参数存取值信息
打开Run-Time Settings中的Log选项,选中Enable logging并且使用Always send messages,在Log的等级中设置使用Extended log并且选中Parameter substitution。
设置完成后,关闭设置对话框,再来运行一次脚本,就会看到Replay log窗口中出现了每次参数取值的结果。
Starting iteration 1. Starting action Action. Action.c(3): Notify: Parameter Substitution: parameter "NewParam" = "text" Ending action Action. Ending iteration 1. Starting iteration 2. Notify: Next row for parameter NewParam = 2 [table = NewParam]. Notify: Getting new value for parameter 'NewParam': table = 'NewParam.dat' column = '0' row = '2'. Starting action Action. Action.c(3): Notify: Parameter Substitution: parameter "NewParam" = "text1" Ending action Action. Ending iteration 2. Starting iteration 3. Notify: Next row for parameter NewParam = 3 [table = NewParam]. Notify: Getting new value for parameter 'NewParam': table = 'NewParam.dat' column = '0' row = '3'. Starting action Action. Action.c(3): Notify: Parameter Substitution: parameter "NewParam" = "text2" Ending action Action. Ending iteration 3. Starting iteration 4. Notify: Next row for parameter NewParam = 4 [table = NewParam]. Notify: Getting new value for parameter 'NewParam': table = 'NewParam.dat' column = '0' row = '4'. Starting action Action. Action.c(3): Notify: Parameter Substitution: parameter "NewParam" = "text3" Ending action Action. Ending iteration 4. |
版权声明:51Testing软件测试网获作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。