首页 QTP描述性编程

QTP描述性编程

举报
开通vip

QTP描述性编程 一开始接触QTP太强了,可以录制回放啊。可以像使用录音机一样,可以一遍又一遍的回放录音内容。有了QTP,我们就不用一遍又一遍的测试了。 但慢慢发现,QTP如果一遍又一遍的运行程序,需要一个对象仓库的东东。在录制的时候,QTP将测试过程中所使用到得软件对象都录制到对象仓库中。再我们使用的时候,只需要给出对象的名称,有这个名称就可以在对象仓库中找到该对象,自然而然可以操作这个对象。但有一个问题,就是对象仓库中的对象必须和正在运行的软件的对象一摸一样才行。 但实际在软件开发过程中,经常要添加新功能,完善已经实现的功...

QTP描述性编程
一开始接触QTP太强了,可以录制回放啊。可以像使用录音机一样,可以一遍又一遍的回放录音内容。有了QTP,我们就不用一遍又一遍的测试了。 但慢慢发现,QTP如果一遍又一遍的运行程序,需要一个对象仓库的东东。在录制的时候,QTP将测试过程中所使用到得软件对象都录制到对象仓库中。再我们使用的时候,只需要给出对象的名称,有这个名称就可以在对象仓库中找到该对象,自然而然可以操作这个对象。但有一个问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 ,就是对象仓库中的对象必须和正在运行的软件的对象一摸一样才行。 但实际在软件开发过程中,经常要添加新功能,完善已经实现的功能。在这个过程,新版本发布时软件功能变了,可能有的时候只是位置变了。这种情况下可恶的事情发生了,QTP就不认识新发布的软件。最坏的话,以前录制的脚本需要重新录制。太悲惨了。 其实下面这个例子特别和对象仓库识别对象的过程特别像: 假设你认识一个好朋友名字假设叫小i哈,我们脑子里面会有这个朋友面貌、性格、身高等。过了一段时间,这个小i对自己各个方面都非常不满意,就去全身全方位整容了。面貌变了,变漂亮了;性格也变了,变温柔;,身高也变了,变高了。这个时候,我们再和小i面对面的时候,我们把自己的大脑记忆拿出来,和站在面前的小i对比,发现我们已经不认识她了。我们就不敢过去拉她手了。 这里面有个类比关系: 小i可以认为是被测试的软件。 我们的大脑记忆可以认为是对象仓库。 整容前的小i可以认为是被测试软件的旧版本。 整容后的小i可以认为是被测试软件的新版本。 拉手可以看成对被测软件的操作 我们人是如此,所以QTP也是如此。所以我们大脑需要重新存储小i的面貌、性格、身高。哎又占了我们很多的大脑空间,悲惨啊。 哎,这让我想起了前段时间看过一部韩国电影《美女的烦恼》,一个唱歌超好听的丑女+肥女,为了追求自己的幸福,所以做了全面的整容,整容后变得漂亮无比。有一次进了公安局,让她好朋友保释,最要好朋友进了公安局竟然没有认出她来。最后这个整容后的美女把自己的身份证拿了出来给朋友看,最终朋友才相信了眼前的事实。 对啊,有标示人的身份可以用身份证啊。无论朋友样貌、身高、性格怎么变,身份证暂时是不会变的。那以后我们可以少浪费点脑细胞,别记住朋友面貌了,别记住她前天穿了蓝色的衣服,昨天换了黑色的裤子,今天带了绿色的帽子。都别记了。朋友见面,亮出身份证就可以了。 QTP发现对象仓库这种机制的不灵活,所以自己增加了另外一种比较灵活的方法。称之为描述性编程。 通过描述性的编程,只要通过能够标示软件对象的关键属性(类似前面所说的身份证识别朋友的方法),就可以知道是操纵的那个对象,然后就可以对该对象操作了。 下面举了描述性编程一个例子,使用QTP实现对计算器1-10的累加和,并把结果输出到Excel 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 中。 注意:本例子直接拷贝到QTP中就可以运行,但只适用简体中文版windows系统 注意:例子比较简单,所以就没写注释。只是抛砖引玉。 Set WshShell=createobject("Wscript.shell") Set Wshexec=Wshshell.Exec("%SystemRoot%\system32\calc.exe") Set desc=description.Create Dim i For i=1 to 10 esc("text").value=i If desc("text").value=10 Then Window("text:=计算器").WinButton("text:=1").Click desc("text").value=i-10 Window("text:=计算器").WinButton(desc).Click else Window("text:=计算器").WinButton(desc).Click End If Window("text:=计算器").WinButton("window id:=92").Click Next sum=Window("text:=计算器").WinButton("window id:=403").ToString time1=Now() Variable=DataTable.AddSheet ("MySheet").AddParameter(sum,time1) wait 10 Wshexec.Terminate() QTP描述性编程(descriptive programming) 1 、 descriptive programming 概述 通 常情况下,当在录制一个操作时, QTP 会将被操作对象加入到对象库里( Object Repository )。一旦对象存在于对象库里,我们就可以在专家 视图里通过添加相关的对象方法来对该对象进行操作。我们可以通过引用层次型对象库里的对象描述( Object Description )来添加相应的方 法。因为 QTP 对象库中的每个对象都具有唯一名称,所以在引用时对象名是必须需要指定的。然后在测试运行期间, QTP 在对象库中根据这个对象的名称和父对象来查找对象,并使用为这个测试对象存储的测试对象描述,在网站或应用程序中 标识 采样口标识规范化 下载危险废物标识 下载医疗器械外包装标识图下载科目一标识图大全免费下载产品包装标识下载 该对象。 例 如我们用 QTP 录制 Yahoo Mail 登录情况时我们需要输入用户名,于是在录制时我们就会录下一个 WebEdit 对象,它的缺省逻辑名为 “login” ,该编辑字段位于名为 “Yahoo! Mail - The best” 的页面上,并且该页面在浏览器中使用名称 Yahoo! 进行录制。 那么如果我们想要应用该对象,就可以在专家视图输入以下信息: Browser("Yahoo!").Page("Yahoo! Mail - The best").WebEdit("login").Set “xxx” 或者我们也可以调用一些方法,获取改对象在运行时的对象名,如: Browser("Yahoo!").Page("Yahoo! Mail - The best").WebEdit("login").GetROProperty(“name”) 然 而,我们可以发觉到,上面的例子在处理对象时,对象已经存在于对象库里,因此我们可以应用这个对象的逻辑名。实际使用中,情况往往并非如此简单,我们经常 会遇到很多在页面上动态产生的对象,换而言之,对象库里没有这些对象,我们也无从引用。因此我们必须采用其他的技术来完成这类操作,这也就是我们需要讲解 的 Descriptive Programming 。为了满足上面提到的动态对象的处理问题, QTP 允许用户通过将对象属性编码到测试脚 本里来动态识别对象,这就是我们通常意义下称为的 Descriptive Programming 。通过这种方式,我们可以指示 QTP 不通过引用对象库和 对象名来对实际对象进行操作。具体操作中,我们只需要为 QTP 提供对象的一组属性和值,这样 QTP 就可以来识别相应的对象并对其进行操作。这相当于,告诉 QTP 要识别对象的一些关键特征,根据这些特征 QTP 就可以一一匹配然后识别出来这个对象。而且,更为重要的是,通过这种 Descriptive Programming 的方式,还可以让 QTP 识别具有某些相同属性的对象。我们先来举个例子来看一下:我们假设当前的 Windows 系统中打开了若干的 Yahoo 主页面(多于一个),现在我们要关闭所有的正在浏览 Yahoo 主页面的浏览器。对于上面那个例子来说,我们先看一个简单一点的情况,假设只有且仅有一个 Yahoo 主页面:那么我们可以用下面的方法来 Window("Text:=Yahoo! - Microsoft Internet Explorer").Close 我 们可以看到语句里我们要查找的对象是 Window 窗口标题为 “Yahoo! - Microsoft Internet Explorer” ,然后把它关 闭,具体的语法说明我们稍后为解释。但是上面的语句仅仅适合前面提到的条件 “ 只有且仅有一个 Yahoo 主页面 ” ,如果有多个同样的窗口就会出错,原因是通 过语句可以匹配到多个对象,而 QTP 不知道应该对哪个对象进行关闭动作。我们需要进一步的缩小匹配范围: Dim i i = 0 while (Window("Text:="Yahoo!" - Microsoft Internet Explorer", "index:="&i).exist) Window("Text:=Yahoo! - Microsoft Internet Explorer", "index:="&i).close i = i +1 wend 这里我们可以看到,对于具有相同属性的对象,我们可以通过 index 参数来对其进行区别,第一个对象为 index=0 ,第二个为 index=1 等等,依次类推。当然我们还可以通过 CreationTime 和 Location 参数来定位对象,这里就不详细叙述了。 通 过上面的例子,我们对 Descriptive Programming 有一个基本了解了,下面我们详细讲解一下 Descriptive Programming :在具体实现中,我们有两种类型的 Descriptive Programming 方法。可以列出直接在 测试语句中描述对象的属性和值的集合;或者向 Description 对象中添加属性和值的集合,然后在语句中输入 Description 对象的名称。 下面我们分别举例介绍。 2 、直接在语句中输入编程描述通过多个指定描述对象的 property:=value 对,可以直接在语句中描述对象,这是最直接有效的方法。常规语法为: TestObject("PropertyName1:=PropertyValue1", "..." , "PropertyNameX:="PropertyValueX""} TestObject - 测试对象的类。 PropertyName:=PropertyValue - 测试对象的属性及其值。各个 property:="value" 对之间应用逗号和引号分开。例如:以下语句指定 Mercury Tours 页面中名为 author 且索引值为 3 的 WebEdit 测试对象。当测试运行时, QTP 将查找具有匹配属性值的 WebEdit 对象,并输入文本 jojo 。 Browser("Mercury Tours").Page("Mercury Tours").WebEdit("Name:="Author"", "Index:="3"").Set "Mark Twain" 我们也可以从从描述中的特定位置(从 Page 对象描述开始)开始使用 Descriptive Programming 。 Browser("Mercury Tours").Page("Title:="Mercury" Tours").WebEdit("Name:="Author"", "Index:="3"").Set "jojo" 此外,如果我们希望在在一个测试或组件中多次使用相同的 Descriptive Programming ,则可以将创建的对象赋值给变量,这样使用会方便很多。 例如:我们需要完成下面一系列操作 Window("Text:=HyperSna").WinButton("Caption:= 日期 ").Click Window("Text:=HyperSna").WinButton("Caption:= 时间 ").Click Window("Text:=HyperSna").WinButton("Caption:= 确定 ").Click 那么,为了方便其见,我们可以将 Window("Text:=HyperSna") 赋值到一个变量,然后再使用,参见下面的代码: Set WinHyper = Window("Text:="HyperSna"") WinHyper.WinButton("Caption:= 日期 ").Click WinHyper.WinButton("Caption:= 时间 ").Click WinHyper.WinButton("Caption:= 确定 ").Click 如果使用了 VBScript 里面的 With 语句,还可以简化为以下代码: With Window("Text:="HyperSna"") .WinButton("Caption:= 日期 ").Click .WinButton("Caption:= 时间 ").Click .WinButton("Caption:= 确定 ").Click End With 下面我们来看一个更为详细的例子,在 QTP 产品缺省安装里面自带了一个网上订机票的示例称为 Mercury Tour ,我们看一下在订票过程中何时需要用 Descriptive Programming 。首 先登入系统后,如果需要订票,就要先搜索航班,此时系统要求输入订票乘客的数量,假设我们在第一次录制脚本时选择了 1 个 Passenger ,并成功完成订 票。然后,我们需要参数化乘客数量来测试订票系统,我们会发现回放会失败。原因在于,不同的乘客的数量导致在订票时需要输入每个乘客的姓名,而录制时,只 输入了一个乘客的姓名。而乘客姓名的输入框是随着乘客数量的变化而动态生成的,我们不可能从对象库里得到没有录制的对象,因此必须使用 Descriptive Programming 。 在录制单个乘客时,我们得到的录制语句是: Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passFirst0").Set "Michael" Browser("Welcome: Mercury Tours").Page("Book a Flight: Mercury").WebEdit("passLast0").Set "Wang" 显然 WebEdit("passFirst0") 和 WebEdit("passLast0") 是录制时产生的对象并存放到对象库里的。通过对象库,我们可以看到对象的属性如下 系 统对于发生多个 FirstName 时,命名规则是 passFirst0 , passFirst1… 依次类推。因此只要通过简单的 Descriptive Programming 就可以完成动态 FirstName 与 LastName 的识别工作。这里我们假设参数化的乘客数已经赋值给 intPassNum ,下面是脚本中的关键语句: counter = 0 For i = 0 to (intPassNum) Browser("Find a Flight:").Page("Book a Flight:").WebEdit("name:="passFirst""&i).Set "Michael" Browser("Find a Flight:").Page("Book a Flight:").WebEdit("name:="passLast""&i).Set "Wang" counter = counter + 1 Next 3 、使用 description 对象 使 用 Description 对象可以返回包含一组 Property 对象的 Properties 集合对象。 Property 对象由属性名和值组成。然 后,可以在语句中指定用返回的 Properties 集合代替对象名。(每个 property 对象都包含一个属性名和值)。 要创建 Properties 集合,可以使用以下语法输入 Description.Create 语句: Set MyDescription = Description.Create() 创 建 Properties 对象(例如,以上示例中的 MyDescription )后,就可以输入语句,以便在运行会话期间在 Properties 对象中 添加、编辑、删除或检索属性和值。这样,就可以在运行会话期间,使用动态方法确定哪个属性以及多少个属性应包含在对象描述中。 在 Properties 集合中填充一组 Property 对象(属性和值)后,可以在测试语句中指定用 Properties 对象代替对象名。 例如,假设我们需要完成以下一个操作: Window("Error").WinButton("text:=OK", "index:="1"").Click 我们可以通过 Description 对象来实现同样的功能,参加下面的代码: Set MyDescription = Description.Create() MyDescription("text").Value = "OK" MyDescription("index").Value = 1 Window("Error").WinButton(MyDescription).Click Set MyDescription = Nothing 在QTP中使用描述性编程是一个提高QTP脚本利用率的很好的方式。 通常QTP是通过对象库来识别不同的对象,而描述性编程是QTP另外一种能够识别对象的途径,它不依赖于对象库,通过增加一些对象的描述来识别对象的。 说明:本例子是以Flight飞机订票系统的登陆界面为测试页面进行描述的。 步骤 新产品开发流程的步骤课题研究的五个步骤成本核算步骤微型课题研究步骤数控铣床操作步骤 一:录制脚本 Dialog("Login").WinEdit("Agent Name:").Set "Holly" Dialog("Login").WinEdit("Password:").SetSecure "46ef0dc7efe5834c73673898279af1204fea51a7" Dialog("Login").WinButton("Cancel").Click 共录制3步操作,输入Agent Name, Password, 点击Cancel按钮 步骤二:初级描述性编程 Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Agent Name:").Set "Holly" Dialog("Regexpwndtitle:=Login").WinEdit("Attached text:=Password:").Set “Mercury” Dialog("Regexpwndtitle:=Login").WinButton("Class Name:=WinButton", "text:=Cancel").Click 在这里要注意有三点: 1)如果需要两个以上特性来描述一个对象,需要使用逗号(,)对描述性语言进行分割 2)使用:=来连接属性和属性值,并且:=两边不能有空格 3)使用SPY查看对象的属性名和属性值(Tools -> Object Spy) 步骤三:描述性编程提高 Dim descEditLogin Set descEditLogin = Description.Create() descEditLogin("Class Name").Value = "Dialog" descEditLogin("Regexpwndtitle").Value = "Login" Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly" Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury" Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click 在这里需要注意有两点: 1)把经常使用到的对象定义为一个对象变量,方便以后调用,减少代码工作量和错误 2)使用SPY获取对象的属性和属性值 步骤四:使用自定义的环境变量 在File>>Settings>>Environment中选择user-defined,增加一个变量 dlgLogin = “Login” 这样脚本可以被修改为: Dim descEditLogin Set descEditLogin = Description.Create() descEditLogin("Class Name").Value = "Dialog" descEditLogin("Regexpwndtitle").Value = Environment.Value("dlgLogin") Dialog(descEditLogin).WinEdit("Attached text:=Agent Name:").Set "Holly" Dialog(descEditLogin).WinEdit("Attached text:=Password:").Set "Mercury" Dialog(descEditLogin).WinButton("Class Name:=WinButton", "text:=Cancel").Click 当然,参数化的方式很多,这边介绍的是使用环境变量 步骤五:从XML文件导入环境变量 dlgLogin Login 可以使用手工导入,也可以使用LoadFromFile自动导入 总结: 优点是当对象的一些属性变更后,脚本更容易维护。 比如说对于一个通用对象,比如save, reset, cancel等按钮,一个页面有3个,30个页面就有90个对象, 假如save变成保存,reset变成重置,cancel变成取消,那么对象库就会产生很大的变动。 而使用了描述性编程只需要在导入的XML文件中修改一个值就可以了。 当然描述性编程的作用远远不止这些,这次只是抛砖引玉,希望大家共同进步。 QTP的工作原理有点类似人类社会的某些场景.比如一个朋友委托你带东西给A,如果你认识A,这表明A的容貌特征以及一些联系已经在你脑海有了印象,那么你只要找到了A的住所,那么这个任务就很容易完成了,如果你根本就不认识A,则这个任务就很难完成了. 那在QTP中有没有一种方法,无须在对象库中记录任何关于某个对象的信息,就可以完成对该对象的操作呢,有.那就是描述性编程,其工作原理就象上面这个例子. 在QTP中,有一按钮对象,对它的操作如下: Dialog("Login").WinButton("OK").Click 但是如果我们在对象库中删除这个对象后,执行这句话就会出错,提示找不到对象,在这个时候,我们就可以通过描述性编程给他指定对象及其他的一些属性,修改如下 Dialog("Login").WinButton("text:=OK").Click 上面脚本中,通过WinButton("text:=OK")明确告诉QTP去寻找文本属性为OK的按钮,于是QTP正确识别到该对象,顺利的执行了脚本 这种不需要在对象库中存储对象的信息,就可以执行对象操作的方法,就是QTP中比较高级的用法:描述性编程(descrīptive progamming).描述性编程和传统的QTP脚本的区别是:他把需要识别的对象的属性从对象库中转移到了脚本里面,通过在脚本里面的特殊语法格式.来告诉QTP识别对象的方法.描述性编程更加灵活,因为他不需要经过录制这个步骤,可以直接通过编程的方式操作任何一个你想操作的对象,只要你在测试脚本代码里提供给QTP识别该对象的足够信息 描述性编程的语法格式如下: micClasas("property1:=value1","property2:=value2") micClass标志某个对象的类别,括号里面通过jproperty:=value的形式告诉QTP识别该对象的必要属性.我们继续修改一下测试脚本: Dialog("Login").WinButton("text:=OK").Click 修改后: Dialog("Login").WinButton("nativeclass:=Button","text:=OK").Click F5执行,结果运行顺利.这次修改,我们使用了一个通用的对象类WinObject,而把按钮当作一个基本属性nativeclass:=Button,同样可以完成对该按钮的操作 由上面的叙述我们可以看出来,描述性编程没有严格的要求,只要遵循一个原则:在代码中告诉QTP足够他识别该对象的属性,QTP就可以不通过对象库,而是通过描述性编程的方式完成对指定对象的操作.所以描述性编程没有什么神秘的,他无非是把原来存储在对象库中的信息提到代码中来了而已. ------附:QTP工作原理:     1.录制的时候,QTP将我们操作过的所有对象都记录下来,保存在对象库object repository中,记录的形式是一个逻辑名加上若干识别属性;     2.运行脚本时,QTP分析该脚本要执行那个对象的操作,然后根据该语句中的逻辑名,在对象库中查找该对象的详细记录,然后在运行的真实披头散发软件中按图索骥,找到需要操作的对象,把语句规定的操作施加在该对象上.施加的主要动作就是把操作的相关消息时间放入到该对象窗口的消息循环队列中;       3.所以,一个完整的脚本测试应该包括两部分,一个是测试脚本的代码,一个是对象库。 下面是一段实例代码: '描述性编程 SystemUtil.Run "C:\Program Files\Internet Explorer\iexplore.exe","","C:\Documents and Settings\extcnleili","open" Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Page").Sync Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Navigate "http://www.dict.cn/" '用一个主属性定位多个对象 Set ButDesc = Description.Create ButDesc("micclass").Value = "Link" msgbox Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Dict.CN 海词 在线词典 在线翻译 在线学习_2").ChildObjects(ButDesc).count '用多个属性定位一个对象 Set a = Description.Create a("micclass").Value = "Link" a("text").Value = "翻译" 'a("href").Value = "http://www.dict.cn/fy/" 'a("html tag").Value = "A" 'Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Dict.CN 海词 在线词典 在线翻译 在线学习_2").Link(a).Click '对象的赋值,必须使用 set 否则出错 set b=Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Dict.CN 海词 在线词典 在线翻译 在线学习_2").Link(a) b.Click 'Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Dict.CN 海词 在线词典 在线翻译 在线学习_2").Link("翻译").Click wait(10) Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Dict.CN 海词 在线词典 在线翻译 在线学习_2").WebEdit("q").Click Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Dict.CN 海词 在线词典 在线翻译 在线学习_2").WebEdit("q").Set "man" Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("Dict.CN 海词 在线词典 在线翻译 在线学习_2").WebButton("搜 索").Click Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").Page("man的英语解释词典意思 - Dict.CN").Sync Browser("Dict.CN 海词 在线词典 在线翻译 在线学习").CloseAllTabs 从网上摘得很有用的一段话: miclass是windows 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 控件的内置属性,而class name并不是标准控件的属性之一,而是QTP做的二次封装,也就是说,当对象在QTP记录之后,也就是QTP对对象进行二次封装之后才会有class name这个属性,而当我们使用childobjects,对象并没有被记录到QTP对象库中,也就是QTP还没有对对象进行封装,所以是没有class name这个属性的,我们通过class name这个属性当然找不到了 或者说当使用childobjects()函数时,它可能并不支持查询条件为class name,所以会报general run error VBScript 语句 描述 语言元素 将控制权交给一个 Sub 或 Function 过程。 Call 语句 声明一个类的名称。 Class 语句 声明用于替换文字值的常数。 Const 语句 声明变量并分配存储空间。 Dim 语句 当某个条件为 True 时或在某个条件变为 True 之前重复执行一个语句块。 Do...Loop 语句 重新初始化固定大小的数组的元素和释放动态数组的存储空间。 Erase 语句 执行一条或多条指定语句。 Execute 语句 在一个脚本的全局命名空间中执行一条或多条语句。 ExecuteGlobal 语句 退出 Do...Loop、For...Next、Function 或 Sub 代码块。 Exit 语句 重复地执行一组语句达指定次数。 For...Next 语句 针对一个数组或集合中的每个元素重复执行一组语句。 For Each...Next 语句 声明一个 Function 过程的名称、参数和代码。 Function 语句 根据一个表达式的值而有条件地执行一组语句。 If...Then...Else 语句 激活错误处理。 On Error 语句 强制显式声明一个脚本中的所用变量。 Option Explicit 语句 声明私有变量并分配存储空间。 Private 语句 声明一个 Property 过程的名称、参数和代码,该过程取得(返回)一个属性的值。 Property Get 语句 声明一个 Property 过程的名称、参数和代码,该过程指定一个属性的值。 Property Let 语句 声明一个 Property 过程的名称、参数和代码,该过程设置对一个对象的引用。 Property Set 语句 声明公共变量并分配存储空间。 Public 语句 初始化随机数生成器。 Randomize 语句 声明动态数组变量并在过程级别上分配或重新分配存储空间。 ReDim 语句 包括程序中的解释性说明。 Rem 语句 根据一个表达式的值,相应地执行一组或多组语句。 Select Case 语句 将一个对象引用赋给一个变量或属性。 Set 语句 声明一个 Sub 过程的名称、参数和代码。 Sub 语句 给定条件为 True 时执行一系列语句。. While...Wend 语句 对单个对象执行一系列语句。 With 语句
本文档为【QTP描述性编程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_573349
暂无简介~
格式:doc
大小:115KB
软件:Word
页数:13
分类:互联网
上传时间:2012-01-20
浏览量:27