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

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

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

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

  如图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

42/4<1234>
《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号