QTP中,有一个Data Table面板,当QTP在编辑状态时,显示的是Design-time Data Table,当QTP处于脚本运行状态时,显示的是Run-time Data Table。Data Table面板可以通过菜单View>Data Table显示。
测试数据存储于Desing-time Data Table之中。
Design-time Data Table与Micorosoft Excle类似,用户可以使用或存储单元格中的数据,也可以在单元格中进行数学运算。用户还可以使用DataTable、DTSheet、DTParameter这3个应用对象,来操作Data Table中任意单元格中的数据。
用户可以向Data Table插入参数,并且将Data Table中的参数值输送给测试。在测试中使用Data Table参数值,可帮你实现数据驱动测试。
在测试运行过程中,QTP会相应的创建一个临的Data Table:Run-time Data Table。在运行期间,QTP会在Data Table面板中显示Run-time数据,这样当Data Table发生任意变化时,你都可以从Data Table面板观察得到。
当运行结束后,Run-time Data Table就关闭,Data Table面板又重新显示以前存储的Design-time Data Table。在运行期间,向Run-time DataTable输入的任何数据都不会存储到测试中,即不会影响Design-time Data Table的数据。但是从Run-time Data Table获得的最终数据都将在测试结果窗口中显示,它们显示在测试结果窗口的Run-time Data Table项目中。
注:如果你很希望存储Run-time Data Table中的数据,可以在测试的结尾使用DataTable.Export语句,这样就可以将Run-time Data Table中的数据导出并保存为一个文件。然后你可以在Data Table面板,使用File>Import From File菜单,将文件中的数据导入到Design-time Data Table中;你也可以在测试脚本的最前面添加DataTable.Import语句,将以前测试导出的Run-time Data Table数据导入到当前测试的Run-time Data Table中。
举例:
l 有一段代码,功能是在www.baidu.com进行搜索,搜索条件是“中华人民共和国”,如下图1。图1中的表就是Design-time Data Table,因为现在是处于脚本编辑状态,而不是运行状态。
然后在脚本的最前面添加了一行语句,该语句可以在运行过程中,将搜索条件改为“中国”。如图2。
图1
图2
然后按F11逐步执行脚本,当脚本运行到第2行时,Data Table表出现了变化,如下图。(下图中的表就是Run-time Data Table,因为现在脚本正处于运行过程中。)从图的表中可以看到,搜索条件现在已变成了“中国”。
继续按F11,当脚本运行至第3行时,搜索条件已输入完成,如下图。从图中可见,脚本在网站中输入的搜索条件是Run-time Data Table中的数据,已经不是存储在Design-time Data Table中的数据。
继续按F11,当脚本执行完成后,看到测试结果如下图1。在图1中选中Run-time Data Table项,显示Run-time Data Table的最终数据。
这时,QTP又回复为编辑状态,如下图2。从图2可以看到,Design-time Data Table中的数据没有受到任何影响,也就是说,在脚本运行时对Run-time Data table数据的修改,不会对Design-time Data Table产生任何影响。
图1
图2