QTP Datatable

 

                在使用QTP时,基本上都会接触到Datatable的使用。以前了解的Datatable只是作为参数化的一种方式,这几天接触下来发现原来Datatable是如此的强大。

                首先,DatatableMSExcel一样,可以做单元格和单元格之间的运算,比如单元格加减

      

 

可以手动添加等式,使B1=A1+Global!A1+Global!B1,也可以使B1=A1+A2.当然也可以使用excel中的一些函数,比如sum函数,B2=sum (A1:B1).等等

 

其次, Datatable使用起来很方便,同时可以进行一些sheet表单的编辑,导入,导出等等。通常测试时需要构造大量的数据,很多情况下,项目中使用的测试数据都是保存在Excel或者Database中,那么通过import from file/database可以很方便的导入测试数据。当然也可以导出表单进行数据备份或其他操作。

除了导入导出表单和数据外,Datatable还可以对Data进行加密处理。

 

选择Data->Encrypt,就可以对Datatble中的数据进行加密了。

 

第三,Datatable又是对象,包含有很多方法,QTP help中可以检索到对象的方法

 

对于Datatable对象的方法,还是做了个小小例子,体验了一下。计算器的小例子,在只执行一次iteration的基础上(Setting->Run下将Datatable iteration设置为Run one iteration only),通过对对象名称的参数化实现多行参数的加减法。

Systemutil.Run "C:/Windows/System32/calc.exe"

Dim Rowcount,i,num1

Rowcount=datatable.GetRowCount

For i=1 to Rowcount

                num1=datatable.Value("num1")             

                Window("Calculator").WinButton(num1).Click

                Window("Calculator").WinButton("+").Click

                Window("Calculator").WinButton("6").Click

                Window("Calculator").WinButton("=").Click

                Window("Calculator").WinButton("C").Click

                datatable.SetNextRow

Next

Window("Calculator").Close

Datatable做如下设置:

 

 

通过使用Datatble的方法,在只执行一次iteration的基础上实现了3,4,5,6(保证对象库中必须有3,4,5Button对象)分别与6的加法。

还有一些需要注意的:

1.对于DatatableValue Property,使用datatable的值可以是:

Datatable.Value () Datatable (),

同样也可以设置datatable的值:

Datatable.Value () =新值或Datatable () =新值;括号内的为(参数IDsheetID),其中如果sheetID省略,则表示为GlobalSheet

2. SheetID有三种表示方式:

直接使用Action的名称;

使用Action Index值,GlobalSheetIndex值为1,其余Action按照顺序Index值依次增加1;比如Action1Index值为2Action2Index值为3

使用dtGlobalSheetdtLocalSheet;需要注意的是:在实际的项目中,在项目初期对于SheetID的定义需准确,保证可移植性,避免后期项目庞大后再做修改

3. Datatable.GetRowCount,获得的是GlobalSheet的行数;要想获得LocalSheet的行数,则Datatable.GetSheet(2).GetRowCount,其中2表示SheetID. Datatable.GetSheetCount表示计算当前所有的Sheet数等等。有兴趣的大家可以自己试试Datatable的各个方法,很有意思。

先总结这些,以后有了新的发现,再作更新。

 

 

阅读更多
个人分类: QTP学习循序渐进
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭