QTP 学习笔记 :对象库(进阶篇2)

                                          数据池(DataTable)的应用

阶段要点:

                测试数据和脚本分离

                Global Sheet 和 Local Sheet 

                Test Data Sheet 与 Run-time Data Sheet

一、测试数据和脚本分离

简单来说,使用DataTable的一个主要作用就是进行测试数据的参数化

而进行参数化又涉及到两个内容:GlobalSheet 和 Local Sheet,

我们就把这两个重点放在一起进行讲解

首先看一个例子,稍后详细介绍

测试搜索框输入三次相同数据:


显然第二种方法更加简练但实际情况中,输入相同数据对于搜索框是没有什么用的,所以延伸下面例子:



循环显示LocalSheet里面的不同测试数据,由此引出我们的另一个知识点

GlobalSheet 和 Local Sheet

学过编程语言应该知道,变量有全局变量局部变量,其实和这两个词理解差不多

GlobalSheet :全局性,有几行数据脚本就执行几次

Local Sheet:不论测试多少数据,脚本只执行一次,可以理解成迭代

GlobalSheet 是老大,所以倘若GlobalSheet 里面有数据就首先执行,没有才会执行Local Sheet

二、Test Data Sheet 与 Run-time Data Sheet

Test Data Sheet :DataTable里面一开始固定的测试数据,静态数据

Run-time Data Sheet:QTP执行过程中,将测试数据填入到DataTable,运行结束,测试数据消失

两个脚本的数据中转:EMO转出(以后会具体介绍)

                                  DataTable

具体思路就是:(重点

第一个脚本:首先通过GetRoPorerty()获得运行对象的属性值

                    动态把值传入 DataTable中GlobalSheet的某个指定列

第二个脚本:动态读取该值并判断

                     脚本运行,Run-time数据消失,查看TestReport可见运行时测试数据

因为只讲理论太枯燥,就直接上实例:

判断百度搜索内容是否和结果页面出现的内容一致


看到这,你可能会问为什么只能传入到GlobalSheet,因为只有他是可以被共享的,即使是同一脚本

划分不同Action,仍然需要使用GlobalSheet。

三、灵活使用DataTable(重点

1.动态添加新列赋值

    DataTable.GlobalSheet.AddParameter "cloumn","value"

    DataTable.LocalSheet.AddParameter "cloumn","value"        

2.动态增加新行赋值

   DataTable.GetSheet("Action1").setCurrenRow(2)

   DataTable.value("演示","Action1")="新值"

   或DataTable.value(1,2)="新值"    //一列二行的数据填入"新值"

3.动态获取指定列值

   get_value=DataTable.Value("演示","Global")

   拓展:

   循环获取Action1的N列数据

   for i=1 to n

   msge DataTable(i,"Action1")

   两个Action,保持读取行数一致

   直接定位行数:DataTable.GetSheet("Action2").setCurrenRow(2)

   变量传递:CurrenRow=DataTable.GetSheet("Action1").GetCurrenRow

                    DataTable.GetSheet("Action2").setCurrenRow(CurrenRow)

4.动态获取指定行的值

   get_rowvalue=DataTable.GetSheet("Action2").getParameter("演示").ValueByRow(2)

5.动态获取当前行和设置当前行

CurrenRow=DataTable.GetSheet("Action1").GetCurrenRow  //获取当前行

DataTable.GetSheet("Action2").setCurrenRow(2)                   //设置当前行

DataTable.GetSheet("Action1").AddParameter "演示2","value2"   

CurrenRow2=DataTable.GetSheet("Action1").GetCurrenRow     //定位到演示2的value行

6.获取总行数

allrows=DataTable.GetSheet("Action1").GetRowCount

                             下一篇:对象库(进阶篇3)继续加油哦偷笑

猜你喜欢

转载自blog.csdn.net/qq_39581184/article/details/80545150
QTP