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

QTP的DataTable命令及操作汇总

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

DataTable的操作包括:51Testing软件测试网$T:YO8~!pn(nY I7}
DataTable.GetSheet(dtSheet)
R$K)qzx)?;?5E0DataTable.GetSheetCount
-hYlS;m0v H*y-j0DataTable.GetSheet.GetRowCount51Testing软件测试网 Q d9YeU*`3K@
DataTable.GetSheet.GetParameterCount
"X} e!wj0DataTable.GetSheet(sSheetName).GetParameter("ColumName").ValueByName(iRowNumber)51Testing软件测试网&ABlv2`i@6K
DataTable.GetSheet.GetCurrentRow51Testing软件测试网7s6O.n2C[q"u(k,N F
DataTable.GetSheet.SetCurrentRow(RowNumber)51Testing软件测试网3ft2\3}%qb
DataTable.Value(ParameterID , SheetID) or DataTable (ParameterID , SheetID)51Testing软件测试网 q2nj [-c [ Lb:H
DataTable.AddSheet(SheetName)51Testing软件测试网g9Sq|:@$G Q
DataTable.DeleteSheet(SheetName)
w[pQK#La m0DataTable.Export(filename)51Testing软件测试网;MR7M'a8z$[^
DataTable.ExportSheet(filename,SheetName)51Testing软件测试网t*L!o"yk ]?
DataTable.Import(FileName)51Testing软件测试网,R0~St w
DataTable.ImportSheet(FileName, SheetSource, SheetDest)
p"}vI7n3}tb2[01.得到datatable总行数的命令:GetRowCount
x Gp J8o!C/?7pb9w0描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中最长的列中的总行数。51Testing软件测试网geQ"^Dn:d
语法:DataTable.GetRowCount
lNYMdY1c3n)A$q0返回值:数字51Testing软件测试网TC!Vr ~0gc};^
示例:51Testing软件测试网_}1P7S?mvD iH#A
以下示例使用 GetRowCount 方法查找 MySheet 运行时数据表中最长的列中的总行数,并将其写入报告。51Testing软件测试网0^ uC V zA7b*[z
rowcount = DataTable.GetSheet("MySheet").GetRowCount51Testing软件测试网#FQ$eCf1k0HN x#r
Reporter.ReportEvent 2, "数据工作表中有 " &rowcount, "行。
F,Q.a4Uqh02.得到datatable运行时的动态列数:GetParameterCount51Testing软件测试网!q @/U-^zv IjW+T
语法:DTSheet.GetParameterCount 
%z0c5?h;uE+a0例: paramcount = DataTable.GetSheet("MySheet").GetParameterCount51Testing软件测试网"D5}RvE!bep
3.GetCurrentRow方法
}R!h+u#uJ0描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中的当前(活动)行。
o|\i m*cEU0语法:DataTable.GetCurrentRow51Testing软件测试网-mf*}u)p;h
返回值:数字
LIo cu`z~V]0示例:
k2q6J.k%H*A3]3Y0以下示例使用 GetCurrentRow 方法检索当前在运行时数据表中使用的行,并将其写入报告。51Testing软件测试网`E$`-R t3p
row = DataTable.GetCurrentRow51Testing软件测试网1u/Hk&N&gVR
Reporter.ReportEvent 1, "行号", row
un!i+Fp-I04. 设置当前active的行数(第一行为1):SetCurrentRow
%Wm,uK+F0语法:DataTable.SetCurrentRow(RowNumber)51Testing软件测试网et,~H3S(fE _1A
例: DataTable.SetCurrentRow(tb_i+1) 
[:SD]/m g*Q4VJ0DataTable.GetSheet("Action1"). SetCurrentRow(tb_i+1)51Testing软件测试网:r%uz'zi*jC F
'注:此命令可在循环运行中不断指向下一行数据51Testing软件测试网 [*_+c#g(r"bA+hL
你也可以用GetCurrentRow来获取Action1的行,然后再用SetCurrentRow来保持两个Action的当前行一致:51Testing软件测试网f7oGJ4l bXWz
CurrRow = DataTable.GetSheet("Action1").GetCurrentRow51Testing软件测试网jrk$In&p
DataTable.GetSheet("Action2").SetCurrentRow(CurrRow)
rs/u/X'k05.查询、设置datatable的数值:51Testing软件测试网_/O Co~ O5i+X
语法:To find the value:
d'D%G\U:j^0DataTable.Value(ParameterID , SheetID51Testing软件测试网"x"Wy;e(g.u&B+G
or : DataTable(ParameterID , SheetID51Testing软件测试网)t_%W6} L`u
To set the value:51Testing软件测试网o8q @1U9~|7s
DataTable.Value(ParameterID , SheetID)=NewValue51Testing软件测试网2K@Ic[8REs0EN
or : DataTable(ParameterID , SheetID) =NewValue551Testing软件测试网t~3y sM
DataTable("Col", "Action2") 就是读取Action2的Col列。51Testing软件测试网`Wd.l HL5oRd,q2M
同样,表也可以用数字代替:
W*^ \J!SY3w0DataTable(1, 2) 这样就是读取第二个Action表的第一列
Z^#XQS/O? TX)ku0还有一种写法:
{(n&^:@B&B0DataTable(1, "Action2") 这样就是读取Action2的第一列,不管第一列叫什么名字,都能读51Testing软件测试网R#y-wXg
还有一种赋值方法51Testing软件测试网RuZ{{+?
aParam2=DataTable("AccountsNumber",dtGlobalSheet)
jTlv5R0还有一种赋值方法,但是有一个前提就是:必须只能是测试只包含一个操作的情况:51Testing软件测试网!E&G V#?c4n&yt
aParam3=DataTable("AccountsNumber",dtLocalSheet)51Testing软件测试网{p4Sz-Lp:vApxY
例: DataTable.Value("Destination", "ActionA")="New York" 51Testing软件测试网 O.x(` V3y+YD
DataTable.Value(2,3)="New York"51Testing软件测试网.T ?K Oj-e-u$}AD
DataTable("Destination", dtlocalSheet)="New York" 
7GaS ^r|U.?1P0Call_date= DataTable.Value("Date","add Conference Call") '为Call_date赋值

j-Q,@^V9g;t0

6. 取datatable特定行的数据:
PA C/G^I0DataTable.GetSheet("Action1").GetParameter("test\").ValueByRow(4)
I1FA$uw ^&h9XTI07 AddSheet 方法
&dT;D6j{x$IC8c*B0描述:向运行时数据表中添加指定工作表并返回该工作表,以便可以直接在同一语句中设置新工作表的属性。51Testing软件测试网5K8]fR g"z TI
语法:DataTable.AddSheet(SheetName)
n-N"a%[*{\-tW0示例:51Testing软件测试网o;Z R)[/Pg
以下示例先使用 AddSheet 方法在运行时数据表中新建工作表"MySheet",然后向新工作表中添加参数。51Testing软件测试网o(j0w ^FR d
Dim Variable
im0p8}4w'BH|0Variable=DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")
ed'R a+L b08 DeleteSheet方法51Testing软件测试网B&HV ]O"\
描述:从运行时数据表中删除指定工作表。
F7n;w}Z0E/W'L0语法:DataTable.DeleteSheet SheetID
k8ku5}d9R0示例:
~ |/^E-_^x:?0以下示例使用 DeleteSheet 方法从运行时数据表中删除工作表"MySheet"。51Testing软件测试网TbSTi[U
DataTable.DeleteSheet "MySheet"51Testing软件测试网x7Z L3py$l S
9 Export方法51Testing软件测试网fu+B ^9Vs8KDh4l
描述:在指定位置保存运行时数据表的副本。51Testing软件测试网b6H2wI]T[
语法:DataTable.Export(FileName)
H"T;hbB'[/]~]4p0示例:
cSe `g5P&j0以下示例使用 Export 方法将测试的数据表副本保存在 C:\flights.xls 中。51Testing软件测试网|6k"r dF`
DataTable.Export ("C:\flights.xls")51Testing软件测试网$Y8M'cgV}6LaPi
10 ExportSheet方法
T${c6JM0描述:将运行时数据表的指定工作表导出到指定文件中。
,X-DY)g#~ B0如果指定文件不存在,则将创建一个新文件并保存指定工作表。51Testing软件测试网(x[ r;]neK
如果当前文件存在,但是该文件不包含具有指定工作表名称的工作表,则将插入该工作表作为文件的最后一个工作表。
];X PU[d0C_HDw0如果当前文件存在且包含指定工作表,则导出的工作表将覆盖现有工作表。
a3C"t mrk0语法:DataTable.ExportSheet(FileName, DTSheet)51Testing软件测试网nfb0amS~
DTSheet 变量 要导出的运行时数据表工作表的名称或索引。索引值从 1 开始。 51Testing软件测试网:aa2n!cI*RR
示例:51Testing软件测试网"m zS5Cx xN v}
以下示例使用 ExportSheet 方法将运行时数据表的第一个工作表保存到 name.xls 文件中。
Cz-k.j9QT0DataTable.ExportSheet "C:\name.xls" ,151Testing软件测试网7og,@,|kZ
DataTable.ExportSheet "C:\name.xls" , " MySheet "51Testing软件测试网M"V9t4g ~wCbF
11 GetSheet方法
X(p"k^3P0描述 :返回运行时数据表中的指定工作表。
:f5Rw%Kr A+r0语法 :DataTable.GetSheet(SheetID)51Testing软件测试网EII el:WZ pF*u*~
SheetID 变量 标识要返回的工作表。SheetID 可以是工作表名称或索引。
-` O+MX8I(bLd0索引值从 1 开始。 
_;?fTu8v0返回值:DTSheet 对象
lgVr#m0示例:
UTv+pV0以下示例使用 GetSheet 方法返回运行时数据表的"MySheet"工作表,以便向其中添加参数。51Testing软件测试网2I|*G x\1~d[b
MyParam=DataTable.GetSheet ("MySheet").AddParameter("Time", "8:00")
bEF7\M.^0您还可以使用该方法向"MySheet"本地表中添加参数(注意,不会返回值)。
5P#F4L#hFqr0DataTable.GetSheet ("MySheet").AddParameter "Time", "8:00"
;zh#NS*]012 GetSheetCount方法
$Q6e]0aiz0描述:返回运行时数据表中的总工作表数。51Testing软件测试网,ua~O\ m]0p1ka
语法:DataTable.GetSheetCount
,F9_x4Q"c2sb~0返回值:数字51Testing软件测试网2Uu4X2MTP7{3L8{
示例:
E1VG } y0以下示例使用 GetSheetCount 方法查找运行时数据表中的总工作表数,并将其写入报告。
~4I)w/L&Q"e0sheetcount = DataTable.GetSheetCount
&P9x ?!\W.d?0Reporter.ReportEvent 0, "工作表编号", "数据表中有" & sheetcount & "个工作表。
3g#DM$Wd013 Import方法
3C!f!E-`no\"zI0描述:将指定的 Microsoft Excel 文件导入运行时数据表。
T6I Tt6u2F0注意:
aWc4o.s3G0导入的表必须与测试或组件匹配。列名必须与测试或组件中的参数匹配,并且工作表名称(用于测试)必须与操作名匹配。
_-e\?W0如果导入的 Excel 表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。51Testing软件测试网MS1_7l q m
语法:DataTable.Import(FileName)
_&j:D;d7E MK3V,I!M0FileName 字符串型 要导入的 Excel 表的完整路径。 
E$~#H@'q)?2m:] G@0示例:
9k9M$V w(o*U0导入的表将替换现有运行时数据表(包括所有数据表)中的所有数据。51Testing软件测试网I5v$|l']b
以下示例使用 Import 方法将 flights.xls 表导入运行时数据表。
g%^ AIIt)U({v0DataTable.Import ("C:\flights.xls")
[^V;n YX4l014 ImportSheet方法51Testing软件测试网3L"{&cjm?"h
描述:将指定文件的工作表导入运行时数据表的指定工作表。导入的工作表中的数据将替换目标工作表中的数据(请参阅 SheetDest 参数)。51Testing软件测试网E*W~6o9\p/?v+W9j
注意:51Testing软件测试网a1X%yEkk9i7u{ D
导入的工作表中的列标题必须与工作表导入操作中的数据表参数名匹配。否则,测试或组件可能会失败。51Testing软件测试网1oNJ8`Z)l,Iu
导入的工作表会自动采用它所替换的工作表的名称。51Testing软件测试网1E e}!kp|
如果导入的 Excel 工作表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。
8x#I G&r$v/r0语法:DataTable.ImportSheet(FileName, SheetSource, SheetDest)
ng|#t,KEu} sU0FileName 字符串型 要从中导入工作表的 Excel 表的完整路径。 51Testing软件测试网AyZQ(e(Go#p!gwS
SheetSource 变量 要从文件导入的工作表的名称或索引。索引值从 1 开始。 51Testing软件测试网-H:~ie'U\ r
SheetDest 变量 数据表中要用 SheetSource 替换的工作表的名称或索引。索引值从 1 开始。 51Testing软件测试网:qM$B!R | i1b#CD
示例:
_"z0?a"z!JP},nZ0以下示例使用 ImportSheet 方法将 name.xls 表的第一个工作表导入测试的运行时数据表中的Action1工作表。
Y'k&\0Oep&\z#I(O0DataTable.ImportSheet "C:\name.xls" ,1 ," Action1"51Testing软件测试网5fb%},f)C `,m
DataTable.ImportSheet "C:\name.xls" ,1 ," Global"51Testing软件测试网o+g7k6xL#Z$D
Qtp中不要使用Global表,会出现死循环现象。

G WfR;W.I}0

TAG:

 

评分:0

我来说两句

吼吼哈哈

吼吼哈哈

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

日历

« 2024-04-12  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

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

RSS订阅

Open Toolbar