上一篇 / 下一篇  2009-07-27 00:14:16 / 个人分类:qtp

下面的代码可能有点乱,基本涉及到常用的datatable操作,所以个人全攻略1,是还有内容有待研究。

如果要一起研究的,复制粘贴下就可以了,只要新增一个action2.在action1上附加一个新的命名为action2

希望朋友们都一起发表下言论,我们一起研究下.

Acion1:

RunAction "action2", oneIteration
'--------------------------------------
定义变量
---------------------------------------------------------------------------------------------------------------
Dim getvalue,getvalue2,getvalue3,getvalue4,getvalue6,getvalueforow
Dim CountRunTimeRowByGlobal,CountRunTimeRowByAction
getvalue = 111
getvalue2=222
getvalue3=333
getvalue4=444
getvalue6=666
'--------------------------------------
在DataTable里增加新列 GetValue
,并赋值--------------------------------------------------------------
DataTable.GlobalSheet.AddParameter  "GetValue",getvalue
DataTable.GlobalSheet.AddParameter  "GetValue2",getvalue2
DataTable.GlobalSheet.AddParameter  "GetValue3",getvalue3

DataTable.LocalSheet.AddParameter    "GetValue4",getvalue4

'--------------------------------------
在DataTable里增加新行
并赋值
-----------------------------------------------------------------------------
DataTable.GetSheet("Action1").SetCurrentRow(2) 
'必须使用上面那句才能新增行,不然会被原值替代。最后getcurrentrow的时候就还是1行了.
DataTable.Value("GetValue4","Action1") = 777                             '或者DataTable.Value(1,2)=777

'---------------------------------------获取DataTable 中指定sheet运行时的动态列数------------------------------------------------------
CountRunTimeRowByGlobal = datatable.GetSheet("Global").GetParameterCount
CountRunTimeRowByAction = datatable.GetSheet("Action1").GetParameterCount
'msgbox CountRunTimeRowByGlobal
'msgbox CountRunTimeRowByAction
'wait 7
'这个地方我补充一下,如何即使是在调试过程中尝试操作过其本身的A,B或者其他列,QTP会记住的
'你只要运行过一次,即使没有给这些列赋值,他读出来的列就不止你新增的列数了,而且如果是在gloab
'中,还会循环运行的。这个问题我也还在研究中,尝试过edit 在format但是好像不管用,最后没办法只
'有把代码拷贝出来到新的action中运行.

'---------------------------------------
获取DataTable
中指定列的值
----------------------------------------------------------------------------------
msgvalue =  DataTable("GetValue2",GlobalSheet)
'msgbox msgvalue
'还可以读取其他action中指定列的值哦
msgvalue2  = DataTable("ToValueForAction2","action2")
'msgbox msgvalue2
'另外一种写法,这样就是读取Action2的第一列,不管第一列叫什么名字,都能读
'msgvalue2 = DataTable(1, Action2)
'这个引申的应用:循环读取action2的10列
'For i = 1 To 10
'        MsgBox DataTable(i, "Action2")
'Next
'同样,表也可以用数字代替
'msgvalue2 = DataTable(1, 2)
'msgbox msgvalue2

'这个地方我补充一下,获取的时候如果要保持两个Action读取的行数一致,必须使用下面两种方法.

'1.直接定位action2的行.  
'DataTable.GetSheet("Action2").SetCurrentRow(2)

'2. 使用变量传递保持行数一致
'CurrRow = DataTable.GetSheet("Action1").GetCurrentRow
'DataTable.GetSheet("Action2").SetCurrentRow(CurrRow)

'---------------------------------------
获取DataTable
中指定行的值
---------------------------------------------------------------------------------------------
'wait 5
getbyrow = DataTable.GetSheet("Action1").GetParameter("GetValue4").ValueByRow(2)
msgbox getbyrow

'---------------------------------------
获取DataTable
中当前列和设置当前列
------------------------------------------------------------------------------
CurrRow = DataTable.GetSheet("Action1").GetCurrentRow
'msgbox CurrRow
DataTable.GetSheet("action2").SetCurrentRow(5)
'增加action2的列数,跟行数的计算没有关系
DataTable.GetSheet("action2").AddParameter  "GetValue6",getvalue6
CurrRow2= DataTable.GetSheet("action2").GetCurrentRow
'msgbox CurrRow2

'---------------------------------------获取得到datatable总行数的命令-------------------------------------------------------
AllRowCount = DataTable.GetSheet("Action1").GetRowCount
msgbox AllRowCount

'---------------------------------------sheet级操作(增加sheet)-----------------------------------------------------------------------
Dim Variable
Variable = DataTable.AddSheet ("MySheet").AddParameter("Time", "8:00")

'---------------------------------------sheet级操作(删除sheet)-----------------------------------------------------------------------
'DataTable.DeleteSheet "MySheet"

'---------------------------------------
保存
datatable--------------------------------------------------------------------------------------
DataTable.Export("c:\ControlDataTable.xls")

'---------------------------------------
保存datatable中
sheet--------------------------------------------------------------------------------------
DataTable.ExportSheet "C:\ControlDataTable.xls" , 4

'说明三点: 1.  其实这个地方也可以使用sheet名称的,但是我以运行就debugger死了,用sheet的index就不会
       '2.  如果当前文件存在,但是该文件不包含具有指定工作表名称的工作表,则将插入该工作表作为文件的最后一个工作表。 
          '3 .  如果当前文件存在且包含指定工作表,则导出的工作表将覆盖现有工作表。

'---------------------------------------
统计datatable中sheet个数
--------------------------------------------------------------------------------------
SheetCount = DataTable.GetSheetCount
'msgbox SheetCount

'----------------------------------------
导入
datatable-------------------------------------------------------------------------------------------------------
DataTable.Import ("c:\ControlDataTable.xls")

'----------------------------------------
导入datatable中指定
sheet-------------------------------------------------------------------------------------------------------
DataTable.ImportSheet "c:\ControlDataTable.xls" ,2 ," Action1"
wait 10
'导入的工作表中的列标题必须与工作表导入操作中的数据表参数名匹配。否则,测试或组件可能会失败。
 '导入的工作表会自动采用它所替换的工作表的名称。
'如果导入的 Excel 工作表包含组合框或列表单元格、条件格式或其他特殊单元格格式,则不会导入这些格式,并且单元格在数据表中显示时包含固定值。
'DataTable.ImportSheet(FileName, SheetSource, SheetDest)
'FileName  字符串型  要从中导入工作表的 Excel 表的完整路径。 
'SheetSource  变量  要从文件导入的工作表的名称或索引。索引值从 1 开始。 
 'SheetDest  变量  数据表中要用 SheetSource 替换的工作表的名称或索引。索引值从 1 开始。

Action2:

msgbox "Geted successful"
getvalue = 5
DataTable.GetSheet("action2").AddParameter  "ToValueForAction2",getvalue
'wait 7

QTP DataTable全攻略(1)的更多相关文章

  1. [C#]画图全攻略(饼图与柱状图)(转)

    http://blog.chinaunix.net/uid-15481846-id-2769484.html 首先建立一个c#的类库.   打开vs.net,建立一个名为Insight_cs.WebC ...

  2. Python 自动化测试全攻略:五种自动化测试模型实战详解

    随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用. 与传统的手工测试技术相比,自动化测试 ...

  3. 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法

    若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...

  4. 生成 PDF 全攻略【2】在已有PDF上添加内容

    项目在变,需求在变,不变的永远是敲击键盘的程序员..... PDF 生成后,有时候需要在PDF上面添加一些其他的内容,比如文字,图片.... 经历几次失败的尝试,终于获取到了正确的代码书写方式. 在此 ...

  5. 从小工到专家 ——读《Java程序员职场全攻略》有感

    从小工到专家 ——读<Java程序员职场全攻略>有感   <Java程序员职场全攻略>是以故事的形式,向读者介绍Java程序员的职场经验.作者牛开复在北京从事软件开发,已经是一 ...

  6. Android屏幕适配全攻略 (转载)

    http://blog.csdn.net/jdsjlzx/article/details/45891551 https://github.com/hongyangAndroid/AndroidAuto ...

  7. Moon.Orm3.8技术全攻略

    Moon.ORM技术全攻略  一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从 ...

  8. TestLink安装全攻略

    TestLink安装全攻略 此文章转自该链接--http://www.cnblogs.com/Tcorner/archive/2011/07/26/2117296.html 安装前准备 需要下载xam ...

  9. 取代奶瓶Minidwep-gtk破解WPA 全攻略

    取代奶瓶Minidwep-gtk 破 WPA 全攻略  目录 1. CDlinux 下使用 minidwepgtk 获取握手包并使用自带的字典破解 2. 自带的字典破解不出密码时使用 U 盘外挂字典继 ...

随机推荐

  1. Oracle(+)号用法

    Oracle左连接.右连接.全外连接以及(+)号用法 Oracle  外连接(OUTER JOIN) 左外连接(左边的表不加限制) 右外连接(右边的表不加限制) 全外连接(左右两表都不加限制) 对应S ...

  2. Mybatis基金会: 经常问的问题FAQ

    Mybatis基金会: #{...} 和 ${...} 差额 MyBatis将 #{-} 解释为JDBC prepared statement 参数标记.而将 ${-} 解释为一个字符串替换.非常实用 ...

  3. 配置路线图RouteMap注意事项

    路线图RouteMap一个特征是First Match Win.假设没有人RouteMap实例都满足,那么.默认拒绝操作,然后配置路线图时,有一点需要特别注意.否则容易出错,这是默认的处理.通常的做法 ...

  4. 《Javascript权威指南》十六学习笔记:BOM资源---BOM基本应用

    BOM基本应用包括:管理浏览器历史记录.得到处理和解决浏览器的信息.本文介绍了这些应用程序. 一.浏览历史管理 1.history对象的方法和属性 History 对象包括用户(在浏览器窗体中)訪问过 ...

  5. oracle rac常用的命令

    oracle rac常用的命令 节点层:olsnodes 网络层: oifcfg 集群层:crsctl,ocrcheck,ocrdump,ocrconfig 应用层:srvctl,onsctl,crs ...

  6. Matlab曲面拟合和插值

    插值和拟合都是数据优化的一种方法,当实验数据不够多时常常须要用到这样的方法来绘图. 在matlab中都有特定的函数来完毕这些功能. 这两种方法的确别在于: 当測量值是准确的,没有误差时,一般用插值: ...

  7. 使用 Eclipse 的 SVN 主要插件创建项目/支/标签

    原文 阅读 Mark Phippard 该博客以及<Subversion 与版本号控制>之后,我了解到 分支/标签 是 SVN 非常棒的特性之中的一个.但我在使用推荐的 "tru ...

  8. zabbix-agent TIME_WAIT 过多

    一.系统环境 操作系统: Centos 6.4 64bit zabbix-agent 版本: Zabbix agent v2.2.7 (revision 50148) (24 October 2014 ...

  9. mac_Alfred_快捷设置

    1.安装(不说了去 Google 吧) 2.基础快捷键:option+space 3.打开应用程序:Alfred 几乎是一切程序的入口,你再也不需要找妈妈要开始菜单了.用快捷键呼出Alfred,输入任 ...

  10. C#实现对mongoDB的简单增删查改

    首先添加所需要驱动包(可通过nuget获得) using MongoDB.Bson;using MongoDB.Driver;using MongoDB.Driver.Builders; 一.设置配置 ...