成功不是赢在起点,而是在转折点!!

QTP的DataTable命令及操作汇总

上一篇 / 下一篇  2012-05-11 17:33:06 / 个人分类:测试工具

DataTable的操作包括:51Testing软件测试网 zH/e'`'b
DataTable.GetSheet(dtSheet)
?r-I0WPq`_0DataTable.GetSheetCount
9^6Z0S H4]V0DataTable.GetSheet.GetRowCount51Testing软件测试网:{qW%d ];\Tt-z
DataTable.GetSheet.GetParameterCount51Testing软件测试网9ClY#bw[cl
DataTable.GetSheet(sSheetName).GetParameter("ColumName").ValueByName(iRowNumber)51Testing软件测试网kdAEb
DataTable.GetSheet.GetCurrentRow51Testing软件测试网}F3wEW9V
DataTable.GetSheet.SetCurrentRow(RowNumber)51Testing软件测试网"[k7R {%W N!yWW |A
DataTable.Value(ParameterID , SheetID) or DataTable (ParameterID , SheetID)
XZy6uw0DataTable.AddSheet(SheetName)51Testing软件测试网!B-E VWlUa3R1g*\#^
DataTable.DeleteSheet(SheetName)
;x2l8L,`5V$Fq,].D0DataTable.Export(filename)51Testing软件测试网k S1ZM8b+SZ
DataTable.ExportSheet(filename,SheetName)51Testing软件测试网rJ4b H:r R
DataTable.Import(FileName)51Testing软件测试网"N3l8@*Q XV9P
DataTable.ImportSheet(FileName, SheetSource, SheetDest)51Testing软件测试网 MO8LuX"r0S `&~b
1.得到datatable总行数的命令:GetRowCount
axLb)A)Q(]2Y0描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中最长的列中的总行数。51Testing软件测试网lu v8vLc
语法:DataTable.GetRowCount51Testing软件测试网'SQtyqoI
返回值:数字
,dk#p}$G&kg/L~0示例:51Testing软件测试网5z,Rt)Bk*vL?
以下示例使用 GetRowCount 方法查找 MySheet 运行时数据表中最长的列中的总行数,并将其写入报告。
_?7WY eULY9V0rowcount = DataTable.GetSheet("MySheet").GetRowCount51Testing软件测试网7qIfPIy-D9L-~
Reporter.ReportEvent 2, "数据工作表中有 " &rowcount, "行。
]${fq3N02.得到datatable运行时的动态列数:GetParameterCount
9hol ` }[U!o0语法:DTSheet.GetParameterCount 
VY.|9}1h6`D1AL0例: paramcount = DataTable.GetSheet("MySheet").GetParameterCount51Testing软件测试网8o ?Q&T&@q
3.GetCurrentRow方法
IT {5bh\T,C8\,H0描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中的当前(活动)行。51Testing软件测试网9L's `*`@/u6U-Q
语法:DataTable.GetCurrentRow51Testing软件测试网}m GG+S;P ][){
返回值:数字
%v;jAZ*EG0示例:51Testing软件测试网@!b}XA/_)zs Y
以下示例使用 GetCurrentRow 方法检索当前在运行时数据表中使用的行,并将其写入报告。51Testing软件测试网4t$MEQdcN R\
row = DataTable.GetCurrentRow
D$Te4[qh;E8v0Reporter.ReportEvent 1, "行号", row
,hK1}:I&JW-kM04. 设置当前active的行数(第一行为1):SetCurrentRow
0T!g ord1O?H wEa)G0语法:DataTable.SetCurrentRow(RowNumber)
-mP X;|U f#|8f0例: DataTable.SetCurrentRow(tb_i+1) 51Testing软件测试网iJ*jS!H _!S.P
DataTable.GetSheet("Action1"). SetCurrentRow(tb_i+1)
'?_8}T4J5s.Y0'注:此命令可在循环运行中不断指向下一行数据51Testing软件测试网2e4Y.esFe\r n$DJ
你也可以用GetCurrentRow来获取Action1的行,然后再用SetCurrentRow来保持两个Action的当前行一致:51Testing软件测试网M+O.T4v3[
CurrRow = DataTable.GetSheet("Action1").GetCurrentRow
V4]/^6Hs0by0DataTable.GetSheet("Action2").SetCurrentRow(CurrRow)
9s3k_.r`l t i05.查询、设置datatable的数值:51Testing软件测试网7b ^k(U ypW^
语法:To find the value:51Testing软件测试网6d+q@ k}9Ht
DataTable.Value(ParameterID , SheetID51Testing软件测试网 C+^A`aAD[x w
or : DataTable(ParameterID , SheetID51Testing软件测试网&@ w a9{V1h/Roi
To set the value:51Testing软件测试网F$x Y@.G%d
DataTable.Value(ParameterID , SheetID)=NewValue51Testing软件测试网)_B`XR4Gz
or : DataTable(ParameterID , SheetID) =NewValue5
4V jB?T [F0DataTable("Col", "Action2") 就是读取Action2的Col列。51Testing软件测试网YX*WR!e;kd?2_`
同样,表也可以用数字代替:51Testing软件测试网0T aa;c#b [
DataTable(1, 2) 这样就是读取第二个Action表的第一列
^0]I,p6g~0还有一种写法:
X0N P"W.N@0DataTable(1, "Action2") 这样就是读取Action2的第一列,不管第一列叫什么名字,都能读51Testing软件测试网 s*R ^ VVG
还有一种赋值方法
'uj7ae(x+r0aParam2=DataTable("AccountsNumber",dtGlobalSheet)51Testing软件测试网Ld[p1ztz
还有一种赋值方法,但是有一个前提就是:必须只能是测试只包含一个操作的情况:
v-`V PJ*O#PleP0aParam3=DataTable("AccountsNumber",dtLocalSheet)
+[%nZ~i}wR0例: DataTable.Value("Destination", "ActionA")="New York" 51Testing软件测试网^[&t!Q-n @
DataTable.Value(2,3)="New York"
(Y"WcV.S"}0DataTable("Destination", dtlocalSheet)="New York" 51Testing软件测试网vPj0F1I(s
Call_date= DataTable.Value("Date","add Conference Call") '为Call_date赋值51Testing软件测试网J)hr/]M-E Wrg

6. 取datatable特定行的数据:51Testing软件测试网?-ad3y]
DataTable.GetSheet("Action1").GetParameter("test\").ValueByRow(4)
EL4PWWWE/I07 AddSheet 方法51Testing软件测试网'K FXYAt9QE/S
描述:向运行时数据表中添加指定工作表并返回该工作表,以便可以直接在同一语句中设置新工作表的属性。51Testing软件测试网z9[)][U7_2oKTRj
语法:DataTable.AddSheet(SheetName)
D Di6e8^6d;F#pr0示例:
@8Dy a%@8c0以下示例先使用 AddSheet 方法在运行时数据表中新建工作表"MySheet",然后向新工作表中添加参数。
#mRi)g h9Nr0Dim Variable
hoWs$bc0Variable=DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")51Testing软件测试网b-q"\-QM
8 DeleteSheet方法51Testing软件测试网 A:U;SJ \,b,Z*c
描述:从运行时数据表中删除指定工作表。51Testing软件测试网g`L9R9_/o)`
语法:DataTable.DeleteSheet SheetID
)tA:A\:\0示例:
/@2u+n5Xwjb;H0以下示例使用 DeleteSheet 方法从运行时数据表中删除工作表"MySheet"。
x+w1@_9L*z6q0DataTable.DeleteSheet "MySheet"51Testing软件测试网#f!XqE0P8\Tu
9 Export方法51Testing软件测试网R!F2F{a
描述:在指定位置保存运行时数据表的副本。51Testing软件测试网%B1iN1j8q
语法:DataTable.Export(FileName)51Testing软件测试网j _.Jx+aj$^
示例:51Testing软件测试网T WJh9O J+T_
以下示例使用 Export 方法将测试的数据表副本保存在 C:\flights.xls 中。
v{[2y.s0DataTable.Export ("C:\flights.xls")
/g"r3RE9mb!l"\010 ExportSheet方法
~Zpk4C_ A2v'U0描述:将运行时数据表的指定工作表导出到指定文件中。
'CUd iZ;aoP0P[[5[0如果指定文件不存在,则将创建一个新文件并保存指定工作表。
+rL9hj1{/SO)y h0如果当前文件存在,但是该文件不包含具有指定工作表名称的工作表,则将插入该工作表作为文件的最后一个工作表。
.H]$tde-We2\0如果当前文件存在且包含指定工作表,则导出的工作表将覆盖现有工作表。
5_\ r"SDs0语法:DataTable.ExportSheet(FileName, DTSheet)51Testing软件测试网:A |nm+lM%@
DTSheet 变量 要导出的运行时数据表工作表的名称或索引。索引值从 1 开始。 
u2E.L:^+\,g0示例:51Testing软件测试网Me,X9aRhdr
以下示例使用 ExportSheet 方法将运行时数据表的第一个工作表保存到 name.xls 文件中。51Testing软件测试网|wp9c#y:W
DataTable.ExportSheet "C:\name.xls" ,151Testing软件测试网"d!bQ&x5P\2_
DataTable.ExportSheet "C:\name.xls" , " MySheet "
#X7FACe'Bn`[\A011 GetSheet方法51Testing软件测试网0Oa7]Q _&?C:T
描述 :返回运行时数据表中的指定工作表。51Testing软件测试网!Zl,CDq5^a
语法 :DataTable.GetSheet(SheetID)51Testing软件测试网J\ zN HS S
SheetID 变量 标识要返回的工作表。SheetID 可以是工作表名称或索引。
Mk/M'Ho h4nv0索引值从 1 开始。 
j"@y7jGO3Em0返回值:DTSheet 对象51Testing软件测试网;A?Tp+M)@jH
示例:51Testing软件测试网\5D s&P Xa4d
以下示例使用 GetSheet 方法返回运行时数据表的"MySheet"工作表,以便向其中添加参数。51Testing软件测试网9I7h4[H/CC*r$g
MyParam=DataTable.GetSheet ("MySheet").AddParameter("Time", "8:00")51Testing软件测试网,?y)a hP
您还可以使用该方法向"MySheet"本地表中添加参数(注意,不会返回值)。
8E nxy r3gd0DataTable.GetSheet ("MySheet").AddParameter "Time", "8:00"51Testing软件测试网'Y'f-z;@$xLq%_`
12 GetSheetCount方法
~$}]Uj1ad4^0描述:返回运行时数据表中的总工作表数。
S1Loz]yS0语法:DataTable.GetSheetCount51Testing软件测试网-L2QL g4H(}
返回值:数字
w7vHeo5~0示例:51Testing软件测试网E-])K{\;SI
以下示例使用 GetSheetCount 方法查找运行时数据表中的总工作表数,并将其写入报告。51Testing软件测试网t$^]dE t
sheetcount = DataTable.GetSheetCount
M.t){U7h/mn.g0Reporter.ReportEvent 0, "工作表编号", "数据表中有" & sheetcount & "个工作表。51Testing软件测试网xrN~KL
13 Import方法51Testing软件测试网2R!}5nD$C}U:Q
描述:将指定的 Microsoft Excel 文件导入运行时数据表。
)l D8ap v'l0注意:51Testing软件测试网? zOTG!j.XD
导入的表必须与测试或组件匹配。列名必须与测试或组件中的参数匹配,并且工作表名称(用于测试)必须与操作名匹配。
I4]!G8r/zg3W%GN,G0如果导入的 Excel 表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。51Testing软件测试网YU`R:n)uV
语法:DataTable.Import(FileName)
Mf(@2o"Yk:| M#y-B{$[]0FileName 字符串型 要导入的 Excel 表的完整路径。 
k-qV9gp1vc.^/H0示例:51Testing软件测试网R0{NX;H
导入的表将替换现有运行时数据表(包括所有数据表)中的所有数据。51Testing软件测试网T(FU^gud
以下示例使用 Import 方法将 flights.xls 表导入运行时数据表。51Testing软件测试网!L;}#K&Am{
DataTable.Import ("C:\flights.xls")51Testing软件测试网x/y4Y4Vj2r
14 ImportSheet方法51Testing软件测试网8Ps'a-dY]DU
描述:将指定文件的工作表导入运行时数据表的指定工作表。导入的工作表中的数据将替换目标工作表中的数据(请参阅 SheetDest 参数)。51Testing软件测试网hb5BTw'Wnh*p/O
注意:51Testing软件测试网,C6R j-@-Z\c
导入的工作表中的列标题必须与工作表导入操作中的数据表参数名匹配。否则,测试或组件可能会失败。
7}+J&GR+_z/?0导入的工作表会自动采用它所替换的工作表的名称。51Testing软件测试网Ay.@2}W FR
如果导入的 Excel 工作表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。51Testing软件测试网n9_;~3a:C'R{
语法:DataTable.ImportSheet(FileName, SheetSource, SheetDest)51Testing软件测试网EdIb C4]}q
FileName 字符串型 要从中导入工作表的 Excel 表的完整路径。 51Testing软件测试网Wt6K&` @
SheetSource 变量 要从文件导入的工作表的名称或索引。索引值从 1 开始。 51Testing软件测试网H c4p jjV}
SheetDest 变量 数据表中要用 SheetSource 替换的工作表的名称或索引。索引值从 1 开始。 51Testing软件测试网o7](H-UJE i{
示例:51Testing软件测试网~pf'F,yIV/t
以下示例使用 ImportSheet 方法将 name.xls 表的第一个工作表导入测试的运行时数据表中的Action1工作表。
:c9P*hKyA0DataTable.ImportSheet "C:\name.xls" ,1 ," Action1"51Testing软件测试网ah4f~j#uOv
DataTable.ImportSheet "C:\name.xls" ,1 ," Global"51Testing软件测试网M,|`0G;?X"t
Qtp中不要使用Global表,会出现死循环现象。51Testing软件测试网8EXi+i`{v*eSr


TAG:

 

评分:0

我来说两句

吼吼哈哈

吼吼哈哈

成功不是赢在起点,而是赢在转折点!!

日历

« 2024-05-15  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 6970
  • 日志数: 8
  • 图片数: 1
  • 建立时间: 2009-11-05
  • 更新时间: 2014-02-08

RSS订阅

Open Toolbar