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