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 盘外挂字典继 ...
随机推荐
- 最受欢迎telnet
点击开关在模拟器,它相当于实PC经由控制线连接真实开关 由于我使用telnet远程登录到交换机的话.因为telnet工作在TCP/IP模型的应用层,现在让应用层通信的话,我首先要保证网络层通信,通信, ...
- 【LeetCode】Algorithms 题集(三)
Search Insert Position 意: Given a sorted array and a target value, return the index if the target is ...
- Oracle 多行转多列
Oracle 多行转多列,列值转为列名 前段时间做调查问卷,客户创建自定义问卷内容,包括题目和选项内容; 之后需要到处问卷明细,,,,麻烦来咯 于是到网上到处搜索,没有直接结果;于是又找各种相似的 ...
- jQuery Easy UI Accordion(可伸缩的面板)包
Accordion 可伸缩的面板组件.基于panel,示为以下的比率: <!doctype html> <html lang="en"> <head& ...
- UVA315- Network(无向图割点)
题目链接 题意: 给出一张无向图,求割点的个数 思路:非常裸的题目.直接套用模版就可以. 代码: #include <iostream> #include <cstdio> # ...
- js日期操作
1.最基本的日期操作 var mydate = new Date(); set/get FullYear,Month,Date,Hour,Minutes,Second可以随意拼接 toLocale ...
- 20天android学习
20多天的实习(事实上,一个人学习的东西)要结束, 其余的都只有读研. 此20许多天,我学到了很多东西, 至android的发展也有一定的了解.之后写这篇文章主要是完成研究可以学得很快再次回升 1.安 ...
- windows下系统移植到linux下出现的问题
今天遇到了一个之前没有遇到的问题,记录一下. 我们是在windows下进行开发的,最终系统是部署在linux服务器上. 在windows一切正常,但是部署到linux下时,有些功能不能用了.通过log ...
- codeigniter 操作mysql的PHP代码--更新
支持标准前缀 1)查询没有平等,有平等的 $this->db->get_where('host',array('host'=>'ddd','id !='=>0))->ro ...
- lua学习笔记10:lua简单的命令行
前面反复使用的命令行,好学喜欢命令行: 一 格公式 lua [options][script][args] 两 详细命令 -e 直接命令传递一个lua -l 加载文件 -i 进入交互模式 比例如.端子 ...