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 盘外挂字典继 ...
随机推荐
- 在InstallShield中发布单一的Setup.exe文件
原文:在InstallShield中发布单一的Setup.exe文件 InstallShield默认的Release模式下,生成了一个setup.exe文件,一个msi文件,以及一些其它的杂项文件. ...
- twitter接口开发
前一阵子研究了下twitter接口,发现网上的资料不是很多.遂花了些心血,终于有所收获~ 现在有时间赶紧整理出来便于自己以后查阅,也想帮助有困难的同学们.废话不多说,现在就以最简洁的方式开始了.注意: ...
- CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin
原文 CentOS 7 / RHEL 7 上安装 LAMP + phpMyAdmin 发表于 2014-11-02 作者 Haoxian Zeng 更新于 2014-12-12 之前根据在 Lin ...
- TextView——setCompoundDrawables说明
Drawable drawable = mContext.getResources().getDrawable(R.drawable.duringtime); drawable.setBounds( ...
- 第2章 简单工厂模式(Sample Factory)
原文 第2章 简单工厂模式(Sample Factory) 一般用到的场景:对象多次被实例引用,切有可能会发生变化 拿我们的简单三层举例子 先定义dal层 1 2 3 4 5 6 7 8 cl ...
- Android批量图片加载经典系列——使用二级缓存、异步网络负载形象
一.问题描写叙述 Android应用中常常涉及从网络中载入大量图片,为提升载入速度和效率,降低网络流量都会採用二级缓存和异步载入机制.所谓二级缓存就是通过先从内存中获取.再从文件里获取,最后才会訪问网 ...
- POJ 2352 && HDU 1541 Stars (树状数组)
一開始想,总感觉是DP,但是最后什么都没想到.还暴力的交了一发. 然后開始写线段树,结果超时.感觉自己线段树的写法有问题.改天再写.先把树状数组的写法贴出来吧. ~~~~~~~~~~~~~~~~~~~ ...
- SQL Prompt——SQL智能提示插件
数据库是大家在项目开发中肯定会用到的,C#项目用的最多的就是微软自家的SQL Server了.不可否认,微软的Visual Studio开发平台很好用,很直观的体现就是智能提示.敲几个字符,相关的信息 ...
- 数学思想方法-分布式计算-linux/unix技术基础(3)
夹: ~表示当前用户的主文件夹 .它代表了当前文件夹 ..它代表的父文件夹 链接文件 使用不同的文件名指的是相同的数据或程序.硬链接 在相同的物理文件系统,创建一个硬链接 -bash-4.2$ fin ...
- 基于Qt语音识别功能
基于在最近的研究Qt语音识别平台下.在此记录12 首先,语音识别做三件事 1.记录用户的语音文件到本地 2.将用户语音编码 使用flac或者speex进行编码 3.使用第三方语音识别API或者SDK进 ...