如图1-204所示,点击Run-Time Data Table以后,可以看到脚本在运行过程中所使用的所有数据记录,分别是test1、test2、test3。到此,大家应该没有任何疑问了吧?的确是运行了3次业务,切实地输入了各不相同的测试数据。想知道这些测试数据哪里来的吗?答案现在正式揭晓,如图1-205所示。
图1-205
有没有似曾相识的感觉?在上一个小节中的实例就已经和它打过交道了,它就是QTP的Data Table。请大家注意当前脚本使用的是Global Sheet而不是Local Sheet!在“关键字输入”这一列中输入了3行测试数据,这就是实际运行时输入的数据。
测试数据是怎么来的,我们已经搞清楚了。但是相信读者现在一定还有另外一个疑问,那就是QTP为什么会执行3次,脚本中并没有做任何循环!这就要引出本小节内容的第一个知识点了。
1.Global Sheet是一个全局变量!有几行数据,程序就要回放几次
所以,这也就很清楚地解释了为什么QTP运行了3次,就是因为当前的Global Sheet中有3行测试数据。第1次执行使用第一行数据test1,第二次执行使用第二行数据test2,第三次执行使用第三行数据test3,依此可以一直类推下去。
现在设置了3行测试数据,这些数据不一定是我们每次都需要的,那该怎么办?删除它们?等需要了再添加?那多麻烦。QTP提供了一个很有用的功能,那就是Data Table iterations设置,先来认识一下它,调用它的方法如下。
QTP上方菜单栏→File→Settings→Run打开后的结果如图1-206所示。
图1-206
如图1-206所示,这就是Data Table iterations设置界面,默认选中的是Run on all rows(图中标记2),即DataTable中有几行数据就运行几次,刚才的实例根据业务要求设置了3行数据,所以它会去运行3次。在很多情况下,自动化测试数据只需要1个,那么此时就可以选中Run one iteration only这个选项(图中标记1),这样就完全可以不必去删除本次不会用到的业务数据了。最后一个选项(图中标记3)叫Run from row X to row Y,这个也非常好理解,就是设置一个范围,QTP就会根据设定的范围进行迭代运行,当然,千万不要将范围超出最大的范围(在本实例中最大范围是3)。到此,就要引出另一个知识点了。
2.Global Sheet这个全局变量是受Data Table iterations控制的
那么,读者要问了:“现在Global Sheet和Local Sheet都通过实例讲解过了,那它们之间有什么区别呢?”让我们再次引出另一个知识点。
3.Local Sheet是个局部变量,它并不受Data Table iterations控制,无论有多少行数据,它只运行一次(前提是Global Sheet没有数据,或只有一行数据,或设置为只运行一次)
让我们来看一个实例,把Global Sheet的数据都清空,然后在Local Sheet中建立3行测试数据,如图1-207和图1-208所示。
图1-207
与1-208