补充:web_link()函数详解
web_link()函数用来模拟用户单击一个超链接的操作。VuGen会记录访问页面后服务器返回的内容中有多少个超链接。当使用web_link()函数时,只要写出正确的链接名,VuGen会自动查找并访问页面中该链接名所指向的URL地址。
web_link()函数的基本语法如下所示:
web_link(“在测试结果中显示的名称”,“TEXT=需要单击的超链接名”,LAST); |
◇ 在测试结果中显示的名称
也被称作步骤名,在测试结果中显示的名称是指在脚本运行完成后,打开Test Result,在link函数后的名称(此处为sign up now),如图3.16所示。
图3.16 Test Result执行步骤
这是通过web_link(“sign up now”,….)来实现的,我们能够在测试结果中方便、快速地定位。
◇ 需要单击的超链接名
单击的链接是通过Text=来说明的,等号后的内容就是需要单击的链接。这里需要注意,如果Text后的链接名不存在,那么就会得到以下错误:
该错误信息提示单击的signupnow这个链接不存在,整个web_link函数是错误的。
“Snapshot=t2.inf”用来说明该操作后的内容会被抓图保存到文件t2.inf中。最后的LAST表明这个函数的结束。
例如:想要该脚本去点击WebTours首页上的administration链接,我们只需要将web_link函数修改为:
回放脚本看看是否正确通过,并进入管理页面。
思考:
如果一个页面中有多个同名的链接,使用web_link()该如何处理?
Ord这个关键字可以帮助你,在VuGen中很多函数都使用这个参数来判断对象的次序。
例如要单击页面上的第二个链接,那么可以这样写:
在这里需要注意,同名链接的先后顺序是根据HTML代码的解释顺序(从左往右,从上往下)来确定的。
使用HTML-base script下的A script describing user actions好处是脚本简洁,基于用户操作进行模拟,浅显易懂,并且自身就包含了对象检查过程,无须校验。其缺点是当页面中存在多个同名链接时难以区分。所以我们建议使用下面一种脚本模式:A script containing explicit URLs only (e.g. web_url, web_submit_data)。
小练习:
尝试使用该录制方式录制MsPetshop购物网站首页单击一个链接的脚本。
录制后在脚本中可以看到如下的内容:
这是单击BIRDS链接所带来的结果,在前面说过Text=后的内容是所单链接的正文,那么为什么明明界面上该链接名显示的是“BIRDS”,但这样写脚本回放会提示“无法找到这个链接”,而写成“Birds”就可以成功呢?