QTP学习小记___20100323
上一篇 / 下一篇 2010-03-23 15:59:55 / 个人分类:QTP学习历程
有好几天都没有更新日志了.有点懒。最近这两天有在继续我的QTP历程。结合之前网上的一些例子,终于很认真的把QTP相关编程的常用实例详解看完。结合一些实际操作,记录有点杂七杂八的东东。
1、Option Explicit(这个是从百科中查找到的,因为在实例中查看到这东东,将其贴在这里)
Option Explicit 语句 在模块级别中使用,强制显式声明模块中的所有变量。语法Option Explicit说明如果使用,Option Explicit 语句必须写在模块的所有过程之前。如果模块中使用了 Option Explicit,则必须使用 Dim、Private、Public、ReDim 或 Static 语句来显式声明所有的变量。如果使用了未声明的变量名在编译时间会出现错误。如果没有使用 Option Explicit 语句,除非使用 Deftype 语句指定了缺省类型,否则所有未声明的变量都是 Variant 类型的。注意 使用 Option Explicit 可以避免在键入已有变量时出错,在变量的范围不是很清楚的代码中使用该语句可以避免混乱。
编译器的默认设置将是 Option Explicit On。
示例
本示例使用 Option Explicit 语句强制所有变量的显式声明。试图使用未声明的变量将导致编译时错误。Option Explicit 语句只用在模块级。
Option Explicit ' Force explicit variable declaration.
Dim MyVar As Integer ' Declare variable.
MyInt = 10 ' Undeclared variable generates error.
MyVar = 10 ' Declared variable does not generate error.
说通俗点,就是为了避免混乱,使用 Option Explicit 之后,必须对变量进行声明才可以使用!
举个简单的例子:
<script. language="vbscript">
< !--
Option Explicit \' 要求在脚本中声明所有的变量
Dim Mystring
Mystring="This is my string"
-- >
< /script>
PS:很多高人都说当我们的程序代码很多的时候,最好还是使用Option Explicit 进行强制声明。这样出问题的时候更方便查找。
2、关于Datatable的import方法。
也就是在脚本运行过程中,导入一个EXCEL文件中的值至DATATABLE中,但在在导入的过程中切记,EXCEL的格式需要与DATATABLE的字段名一致。同时我在运行过程中还发现,假设DATATABLE中有五条数据,如果我在运行过程中进行判断,当ROW=2的时候导入数据,则我的脚本将只执行两行数据就结事了,余下的五条数据不再执行。另外,当我们导入的EXCEL中是多个SHEET有数据的情况,我们不能用DATATABLE的IMPORT方法,有专门的一个IMPORTSHEET。其相关语句如下:
DataTable.Import(FileName)
DataTable.ImportSheet(FileName,SheetSource,SheetDest)
EG:
DataTable.Import ("C:\flights.xls")
DataTable.ImportSheet "C:\name.xls" ,1 ,"name"
3、关于函数SPLIT:返回基于 0 的一维数组,其中包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, start]]])
Split 函数的语法有以下参数:
参数 描述
expression 必选。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。
delimiter 可选。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。
count 可选。被返回的子字符串数目,-1 指示返回所有子字符串。
compare 可选。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。
PS:关于SPLIT函数,通常都用于字符串的拆分,根据关键字符拆分、截取数据如下所示:
Dim nowdate,arydate
'获取系统日期
nowdate=date()
arydate=split(nowdate,"-")
'MsgBox("当前日期为:"&arydate(0)&"年"&arydate(1)&"月"&arydate(2)&"日")
'循环将年、月、日分别打印到测试执行报告中(LBound(数组名):取数组下标min;UBound(数组名):取数据上标max)
For i=LBound(arydate) to UBound(arydate)
Reporter.ReportEvent micPass, "testing", "返回值数组中的元素[" & i & "]:"&arydate(i)
Next
在如上的例子中,还有两个函数,即是LBOUND()和UBOUND(),其中LBOUND()是返回数组的最小可用下标值,而UBOUND()是返回数组的最大可用下标值。
关于这两个函数的释义如下:
LBound函数。返回指定数据维的最小可用下标。
语法
LBound(arrayname[, dimension])
LBound 函数的语法有以下参数:
参数 描述
arrayname 数组变量名,遵循标准变量命名约定。
dimension 指明要返回哪一维下界的整数。使用 1 表示第一维,2 表示第二维,以此类推。如果省略 dimension 参数,默认值为 1。
说明
LBound 函数与 UBound 函数共同使用以确定数组的大小。使用 UBound 函数可以找到数组某一维的上界。
任一维的默认下界都是 0。
UBound函数。返回指定数组维数的最大可用下标。
语法
UBound(arrayname[, dimension])
UBound 函数的语法有以下参数:
参数 描述
arrayname 必选。数组变量名,遵循标准变量命名约定。
dimension 可选。指定返回哪一维上界的整数。1 表示第一维,2 表示第二维,以此类推。如果省略 dimension 参数,则默认值为 1。
说明
UBound 函数与 LBound 函数一起使用,用于确定数组的大小。使用 LBound 函数可以确定数组某一维的下界。
所有维的默认下界均为 0。对于有这样维数的数组,UBound 函数返回以下结果:
Dim A(100,3,4)
语句 返回值
UBound(A, 1) 99
UBound(A, 2) 2
UBound(A, 3) 3
另外,在以上例子中还有一个REPORTER语句行。关于REPORTER相关释义如下:
ReportEvent Method
Description
Reports an event to the test results.
Syntax
Reporter.ReportEventEventStatus,ReportStepName,Details[,Reporter]
Example
The following examples use theReportEventmethod to report a failed step.
Reporter.ReportEvent 1, "Custom Step", "The user-defined step failed."
or
Reporter.ReportEvent micFail, "Custom Step", "The user-defined step failed."
如上例子的Reporter的结果为:
返回值数组的元素[0]:2010
返回值数组中的元素[1]:3
返回值数组中的元素[2]:23
4、关于函数DATEDIFF():返回两个日期之间的时间间隔。
描述
返回两个日期之间的时间间隔。
语法
DateDiff(interval,date1,date2[,firstdayofweek[,firstweekofyear]])DateDiff函数的语法有以下参数:
参数 描述 interval 必选。字符串表达式,表示用于计算date1和date2之间的时间间隔。有关数值,请参阅“设置”部分。 date1, date2 必选。日期表达式。用于计算的两个日期。 firstdayofweek 可选。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。 firstweekofyear 可选。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
设置
interval参数可以有以下值:
设置 描述 yyyy 年 q 季度 m 月 y 一年的日数 d 日 w 一周的日数 ww 周 h 小时 n 分钟 s 秒 firstdayofweek参数可以有以下值:
常数 值 描述 vbUseSystem 0 使用区域语言支持 (NLS) API 设置。 vbSunday 1 星期日(默认) vbMonday 2 星期一 vbTuesday 3 星期二 vbWednesday 4 星期三 vbThursday 5 星期四 vbFriday 6 星期五 vbSaturday 7 星期六 firstweekofyear参数可以有以下值:
常数 值 描述 vbUseSystem 0 使用区域语言支持 (NLS) API 设置。 vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。 vbFirstFourDays 2 由在新年中至少有四天的第一周开始。 vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。
说明
DateDiff函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用DateDiff计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。要计算date1和date2相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当interval为“一周的日数”(“w”)时,DateDiff返回两个日期之间的星期数。如果date1是星期一,则DateDiff计算到date2之前星期一的数目。此结果包含date2而不包含date1。如果interval是“周”(“ww”),则DateDiff函数返回日历表中两个日期之间的星期数。函数计算date1和date2之间星期日的数目。如果date2是星期日,DateDiff将计算date2,但即使date1是星期日,也不会计算date1。
如果date1晚于date2,则DateDiff函数返回负数。
firstdayofweek参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果date1或date2是日期文字,则指定的年度会成为日期的固定部分。但是如果date1或date2被包括在引号 (" ") 中并且省略年份,则在代码中每次计算date1或date2表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
在interval为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff返回 1 表示相差一个年份。
EG:
a=datediff("h",now,"2009-12-12")
b=datediff("yyyy",now,"2009-12-12")
c=datediff("q",now,"2009-12-12")
d=" 我想离开啊 "
e=trim(d)
print "现在的日期为:"&now
Print "现在与2009/12/12相差时间为:"&a
Print "现在与2009/12/12相差年为:"&b
Print "相差季度为:"&c
Print d
Print e运行结果为:
现在的日期为:2010-3-23 16:28:44
现在与2009/12/12相差时间为:-2440
现在与2009/12/12相差年为:-1
相差季度为:-1
我想离开啊
我想离开啊看完了QTP常用编程详解,真正地很认真的去深入接触QTP才一个多月的时候。其实我并不太清楚在实际的项目过程中会不会用到它,更或许完全使用它。虽然未知因素太多,但多多益善吧。每天进步一点点是卓越的开始,好好努力。另外发现,自己得好好把VB的帮助文档好好地看看。努力努力。
TAG:
标题搜索
日历
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
1 | 2 | 3 | 4 | 5 | 6 | ||||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 29 | 30 |
我的存档
数据统计
- 访问量: 42174
- 日志数: 48
- 建立时间: 2009-07-04
- 更新时间: 2012-04-28