51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4529|回复: 19
打印 上一主题 下一主题

[原创] 整理:QTP的DataTable操作

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-22 10:59:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人不才,收集网络资源后将QTP对DataTable的操作方法进行整理如下,希望帮助初学者。

DataTable的操作包括:
DataTable.GetSheet(dtSheet)
DataTable.GetSheetCount
DataTable.[GetSheet.]GetRowCount
DataTable.[GetSheet.]GetParameterCount
DataTable.GetSheet(sSheetName).GetParameter(“ColumName”).ValueByName(iRowNumber)
DataTable.[GetSheet.]GetCurrentRow
DataTable.[GetSheet.]SetCurrentRow(RowNumber)
DataTable.Value(ParameterID [, SheetID])  or DataTable (ParameterID [, SheetID])
DataTable.AddSheet(SheetName)
DataTable.DeleteSheet(SheetName)
DataTable.Export(filename)
DataTable.ExportSheet(filename,SheetName)
DataTable.Import(FileName)
DataTable.ImportSheet(FileName, SheetSource, SheetDest)
1.得到datatable总行数的命令:GetRowCount
   描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中最长的列中的总行数。
   语法:DataTable.GetRowCount
   返回值:数字
   示例:
          以下示例使用 GetRowCount 方法查找 MySheet 运行时数据表中最长的列中的总行数,并将其写入报告。
          rowcount = DataTable.GetSheet("MySheet").GetRowCount
          Reporter.ReportEvent 2, "数据工作表中有 " &rowcount, "行。
2.得到datatable运行时的动态列数:GetParameterCount
   语法:DTSheet.GetParameterCount      
   例:  paramcount = DataTable.GetSheet("MySheet").GetParameterCount
3.GetCurrentRow方法
   描述:返回运行时数据表的第一个工作表(用于测试的全局表或用于业务组件的业务组件表)中的当前(活动)行。
   语法:DataTable.GetCurrentRow
   返回值:数字
   示例:
        以下示例使用 GetCurrentRow 方法检索当前在运行时数据表中使用的行,并将其写入报告。
        row = DataTable.GetCurrentRow
        Reporter.ReportEvent 1, "行号", row
4. 设置当前active的行数(第一行为1):SetCurrentRow
    语法:DataTable.SetCurrentRow(RowNumber)
    例:  DataTable.SetCurrentRow(tb_i+1)   
             DataTable.GetSheet("Action1"). SetCurrentRow(tb_i+1)
   '注:此命令可在循环运行中不断指向下一行数据
   你也可以用GetCurrentRow来获取Action1的行,然后再用SetCurrentRow来保持两个Action的当前行一致:
    CurrRow = DataTable.GetSheet("Action1").GetCurrentRow
    DataTable.GetSheet("Action2").SetCurrentRow(CurrRow)
5.查询、设置datatable的数值:
   语法:To find the value:
                       DataTable.Value(ParameterID [, SheetID])
                 or : DataTable(ParameterID [, SheetID])
             To set the value:
                       DataTable.Value(ParameterID [, SheetID])=NewValue
                 or : DataTable(ParameterID [, SheetID]) =NewValue5
       DataTable("Col", "Action2")   就是读取Action2的Col列。
       同样,表也可以用数字代替:
           DataTable(1, 2)    这样就是读取第二个Action表的第一列
       还有一种写法:
           DataTable(1, "Action2")  这样就是读取Action2的第一列,不管第一列叫什么名字,都能读
       还有一种赋值方法
          aParam2=DataTable(“AccountsNumber”,dtGlobalSheet)
       还有一种赋值方法,但是有一个前提就是:必须只能是测试只包含一个操作的情况:
          aParam3=DataTable(“AccountsNumber”,dtLocalSheet)
    例: DataTable.Value("Destination", "ActionA")="New York"            
             DataTable.Value(2,3)="New York"
             DataTable("Destination", dtlocalSheet)="New York"            
             Call_date= DataTable.Value("Date","add Conference Call")  '为Call_date赋值

6. 取datatable特定行的数据:
        DataTable.GetSheet("Action1").GetParameter("test\").ValueByRow(4)
7  AddSheet 方法
    描述:向运行时数据表中添加指定工作表并返回该工作表,以便可以直接在同一语句中设置新工作表的属性。
    语法:DataTable.AddSheet(SheetName)
    示例:
         以下示例先使用 AddSheet 方法在运行时数据表中新建工作表"MySheet",然后向新工作表中添加参数。
         Dim Variable
         Variable=DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")
8  DeleteSheet方法
    描述:从运行时数据表中删除指定工作表。
    语法:DataTable.DeleteSheet SheetID
    示例:
          以下示例使用 DeleteSheet 方法从运行时数据表中删除工作表"MySheet"。
          DataTable.DeleteSheet "MySheet"
9  Export方法
    描述:在指定位置保存运行时数据表的副本。
    语法:DataTable.Export(FileName)
    示例:
          以下示例使用 Export 方法将测试的数据表副本保存在 C:\flights.xls 中。
          DataTable.Export ("C:\flights.xls")
10 ExportSheet方法
    描述:将运行时数据表的指定工作表导出到指定文件中。
               如果指定文件不存在,则将创建一个新文件并保存指定工作表。
               如果当前文件存在,但是该文件不包含具有指定工作表名称的工作表,则将插入该工作表作为文件的最后一个工作表。
               如果当前文件存在且包含指定工作表,则导出的工作表将覆盖现有工作表。
    语法:DataTable.ExportSheet(FileName, DTSheet)
               DTSheet 变量 要导出的运行时数据表工作表的名称或索引。索引值从 1 开始。
    示例:
          以下示例使用 ExportSheet 方法将运行时数据表的第一个工作表保存到 name.xls 文件中。
          DataTable.ExportSheet "C:\name.xls" ,1
          DataTable.ExportSheet "C:\name.xls" , " MySheet "
11 GetSheet方法
     描述 :返回运行时数据表中的指定工作表。
     语法 :DataTable.GetSheet(SheetID)
                 SheetID 变量 标识要返回的工作表。SheetID 可以是工作表名称或索引。
                 索引值从 1 开始。
    返回值:DTSheet 对象
    示例:
           以下示例使用 GetSheet 方法返回运行时数据表的"MySheet"工作表,以便向其中添加参数。
           MyParam=DataTable.GetSheet ("MySheet").AddParameter("Time", "8:00")
          您还可以使用该方法向"MySheet"本地表中添加参数(注意,不会返回值)。
           DataTable.GetSheet ("MySheet").AddParameter "Time", "8:00"
12 GetSheetCount方法
    描述:返回运行时数据表中的总工作表数。
    语法:DataTable.GetSheetCount
    返回值:数字
    示例:
          以下示例使用 GetSheetCount 方法查找运行时数据表中的总工作表数,并将其写入报告。
          sheetcount = DataTable.GetSheetCount
          Reporter.ReportEvent 0, "工作表编号", "数据表中有" & sheetcount & "个工作表。
13 Import方法
     描述:将指定的 Microsoft Excel 文件导入运行时数据表。
     注意:
           导入的表必须与测试或组件匹配。列名必须与测试或组件中的参数匹配,并且工作表名称(用于测试)必须与操作名匹配。
           如果导入的 Excel 表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。
     语法:DataTable.Import(FileName)
               FileName 字符串型 要导入的 Excel 表的完整路径。
     示例:
            导入的表将替换现有运行时数据表(包括所有数据表)中的所有数据。
            以下示例使用 Import 方法将 flights.xls 表导入运行时数据表。
            DataTable.Import ("C:\flights.xls")
14 ImportSheet方法
    描述:将指定文件的工作表导入运行时数据表的指定工作表。导入的工作表中的数据将替换目标工作表中的数据(请参阅 SheetDest 参数)。
    注意:
          导入的工作表中的列标题必须与工作表导入操作中的数据表参数名匹配。否则,测试或组件可能会失败。
          导入的工作表会自动采用它所替换的工作表的名称。
          如果导入的 Excel 工作表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。
    语法:DataTable.ImportSheet(FileName, SheetSource, SheetDest)
           FileName 字符串型 要从中导入工作表的 Excel 表的完整路径。
           SheetSource 变量 要从文件导入的工作表的名称或索引。索引值从 1 开始。
           SheetDest 变量 数据表中要用 SheetSource 替换的工作表的名称或索引。索引值从 1 开始。
    示例:
          以下示例使用 ImportSheet 方法将 name.xls 表的第一个工作表导入测试的运行时数据表中的Action1工作表。
          DataTable.ImportSheet "C:\name.xls" ,1 ," Action1"
          DataTable.ImportSheet "C:\name.xls" ,1 ," Global"
          Qtp中不要使用Global表,会出现死循环现象。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-10-22 12:25:19 | 只看该作者
绝对加精啊~~
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-10-26 17:10:50 | 只看该作者
好帖,好帖
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2009-10-27 06:38:32 | 只看该作者
谢谢楼主整理,对偶此等新手很有用
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-12-29 13:52:08 | 只看该作者
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2009-12-29 13:52:22 | 只看该作者
收藏了!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-12-30 15:54:13 | 只看该作者
谢谢lz,很有帮助,呵呵。。。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2009-12-30 15:58:42 | 只看该作者
嗯~~楼主果然不才~~ (开玩笑哈,很实用)
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2010-3-2 16:36:49 | 只看该作者
不错!收藏起!
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2010-3-3 08:41:02 | 只看该作者
不错!
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2010-3-3 09:20:40 | 只看该作者
不错哦~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2016-6-2 16:41
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2010-3-3 13:53:08 | 只看该作者
    very  good,download
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    13#
    发表于 2010-3-3 14:14:22 | 只看该作者
    好东西,感谢分享~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2010-3-3 15:00:51 | 只看该作者
    那是相当的不错~
    谢谢LZ了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2010-3-3 15:16:23 | 只看该作者
    太赞了,好东西!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
    发表于 2010-5-13 17:01:18 | 只看该作者
    haotie
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2011-3-23 15:26:11 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2011-3-28 16:57:49 | 只看该作者
    听说是好东西,我来仔细阅读下,呵呵
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2011-3-29 17:50:13 | 只看该作者
    好就一个字
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2011-6-24 14:47:16 | 只看该作者
    收藏了,谢谢分享
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-19 21:15 , Processed in 0.082721 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表