51Testing丛书连载:(三十)精通QTP——自动化测试技术领航

发表于:2012-1-16 11:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:余杰 赵旭斌    来源:51Testing软件测试网

1.8.2.3  Global Sheet  VS  Local Sheet

  如果有这样一个测试需求—进行3次百度搜索的业务流程,但是每次输入的关键字必须不一样,此时QTP该怎么完成?请看参考答案,见如下脚本:

'打开网页 -- 1

SystemUtil.Run "www.baidu.com"

'输入关键字“test1”并点击搜索

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebEdit("关键字输入框").Set "test1"

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebButton("百度一下").Click

'关闭网页

Browser("百度一下,你就知道").Close

'相同代码 -- 2

SystemUtil.Run "www.baidu.com"

'只变更测试数据

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebEdit("关键字输入框").Set "test2"

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebButton("百度一下").Click

Browser("百度一下,你就知道").Close

'相同代码 --3

SystemUtil.Run "www.baidu.com"

'只变更测试数据

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebEdit("关键字输入框").Set "test3"

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebButton("百度一下").Click

Browser("百度一下,你就知道").Close

  正确答案已经公布了,运行成功,自动化测试脚本成功实现!但是,这就是我们想要的吗?但是如果要输入10次不同的测试数据呢?甚至于上百次呢?难道也要跟着复制→粘贴100次吗?那这脚本该有多庞大啊!

  有什么更好的解决方法吗?答案是肯定的,那就是接下来要介绍的Global Sheet。在上一个小节中,所讲的实例是用Local Sheet(Action1)来完成的,那么接下来就来看下面这段代码,看看用Global Sheet是否能够圆满完成任务,脚本如下所示:

'打开百度首页

SystemUtil.Run "www.baidu.com"

'DataTable里的值传递给一个变量

testData = DataTable.Value("关键字输入","Global")

'使用该变量,并将其填入关键字输入框

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebEdit("关键字输入框").Set testData

Browser("百度一下,你就知道").Page("百度一下,你就知道")._

WebButton("百度一下").Click

'关闭网页

Browser("百度一下,你就知道").Close

  该脚本仅用了几行代码就能完成3次业务循环吗?而且还要用不同的数据?别着急,我们来运行一下该脚本,看一下运行结果,是否自动化测试圆满完成了,如图1-203所示。

图1-203

  图1-203是QTP的另一个重要模块“测试报告(Test Results)”,这个在后面的章节会详细介绍,这里读者只需要看运行结果就行了。我们可以看到,QTP运行了3次迭代,这就证明了QTP的确进行了3次业务循环。那接下来,再来证明这3次业务循环所用的测试数据都是完全不同的,如图1-204所示。

图1-204

41/41234>
《2023软件测试行业现状调查报告》独家发布~

精彩评论

  • 海马11
    2016-2-07 09:56:39

    Action设置为 Run one iteration only才对

  • 43220056
    2014-11-11 11:09:02

    我也不明白"“在最后,还总结了一些Global和Local之间的逻辑规则,大致为以下几点"
    我自己试验的也是M*N,不是作者说的那样,为什么呢

  • 如果弯弯
    2013-3-14 21:23:03

    “在最后,还总结了一些Global和Local之间的逻辑规则,大致为以下几点......”我记得不是这样的吧,Global 有M行数据,Aciton1有N行数据的话,全部设置为“run on all rows”我怎么记得是执行M*N次呢,是我理解错误了么

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号