QTP DataTable全攻略(1)
上一篇 / 下一篇 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)的更多相关文章
- [C#]画图全攻略(饼图与柱状图)(转)
http://blog.chinaunix.net/uid-15481846-id-2769484.html 首先建立一个c#的类库. 打开vs.net,建立一个名为Insight_cs.WebC ...
- Python 自动化测试全攻略:五种自动化测试模型实战详解
随着移动互联网的发展,软件研发模型逐步完善,软件交付质量越来越受到软件公司的重视,软件测试技术特别是自动化测试技术开始在软件系统研发过程中发挥着越来越重要的作用. 与传统的手工测试技术相比,自动化测试 ...
- 【C#代码实战】群蚁算法理论与实践全攻略——旅行商等路径优化问题的新方法
若干年前读研的时候,学院有一个教授,专门做群蚁算法的,很厉害,偶尔了解了一点点.感觉也是生物智能的一个体现,和遗传算法.神经网络有异曲同工之妙.只不过当时没有实际需求学习,所以没去研究.最近有一个这样 ...
- 生成 PDF 全攻略【2】在已有PDF上添加内容
项目在变,需求在变,不变的永远是敲击键盘的程序员..... PDF 生成后,有时候需要在PDF上面添加一些其他的内容,比如文字,图片.... 经历几次失败的尝试,终于获取到了正确的代码书写方式. 在此 ...
- 从小工到专家 ——读《Java程序员职场全攻略》有感
从小工到专家 ——读<Java程序员职场全攻略>有感 <Java程序员职场全攻略>是以故事的形式,向读者介绍Java程序员的职场经验.作者牛开复在北京从事软件开发,已经是一 ...
- Android屏幕适配全攻略 (转载)
http://blog.csdn.net/jdsjlzx/article/details/45891551 https://github.com/hongyangAndroid/AndroidAuto ...
- Moon.Orm3.8技术全攻略
Moon.ORM技术全攻略 一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从 ...
- TestLink安装全攻略
TestLink安装全攻略 此文章转自该链接--http://www.cnblogs.com/Tcorner/archive/2011/07/26/2117296.html 安装前准备 需要下载xam ...
- 取代奶瓶Minidwep-gtk破解WPA 全攻略
取代奶瓶Minidwep-gtk 破 WPA 全攻略 目录 1. CDlinux 下使用 minidwepgtk 获取握手包并使用自带的字典破解 2. 自带的字典破解不出密码时使用 U 盘外挂字典继 ...
随机推荐
- android学习记录(三)百度地图错误---只有一个电话显示帧,没有地图内容。
安卓开发新手百度地图,刚开始碰到一个问题,没有地图信息,还有就是它只有一帧. 如图所示: 上网寻找说是key的问题,然后又一次申请.还是不行. 最后再次看了自己的Manifest文件,发现自己的< ...
- Timer Swing
一个Swing的例子,按钮控件上中文出现乱码: 试了网上的设置Font,或将汉字使用new String(str.getBytes(),"GBK")对展示的汉字进行编码.都无效. ...
- 【iOS开展-50】使用它来创建一个新的类的实现代码包,因此,不自觉地练习简单MVC实验,附带动画
接下来说说代码封装最后一个个案. 最后一种情况看:[iOS开展-48]九宫格案例:自己主动布局.字典转模型运用.id和instancetype差别.xib反复视图运用及与nib关系 (1)代码封装的原 ...
- Centos7系统配置上的变化(二)网络管理基础
原文 Centos7系统配置上的变化(二)网络管理基础 上篇简单介绍了CentOS 7 在服务和网络方面的一点变化,先前很多烂熟于心的操作指令已经不适用了,不管是否习惯,总要接受.熟悉这些变化. 写上 ...
- hdu 5060 War
War Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- MySQL当您插入列无效的数据插入
1.错误叙述性说明 com.mysql.jdbc.exception:jdbc4.MySQLSyntaxErrorException:Unknown column 'man' in 'field li ...
- Nyoj 吝啬的国度(图论&&双DFS)
描述在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来.现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你 ...
- PHP memcache实现消息队列实例
现在,memcache于server缓存广泛应用.下面我来介绍一下memcache消息队列中等待的样本实现,有需要了解的朋友可以参考. memche消息队列原则key上做文章.后消息或者日志. 然后通 ...
- Quartz.Net任务统一调度框架
山寨版Quartz.Net任务统一调度框架 TaskScheduler 在日常工作中,大家都会经常遇到Win服务,在我工作的这些年中一直在使用Quartz.Net这个任务统一调度框架,也非常好用, ...
- Cocos2d-x学习笔记(两)Cocos2d-x总体框架
原创文章.转载请注明出处:http://blog.csdn.net/sfh366958228/article/details/38680123 前言 上一节我们简单分析了HelloWorldproje ...