2013秋季学期综合练习题

更新时间:2023-09-21 23:20:01 阅读量: 工程科技 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、 简答题

1、自动化测试用例的设计原则?

原则1:自动化测试用例的范围往往是核心业务流程或者重复执行率较高的。 原则2:自动化测试用例的选择一般以“正向”为主。

原则3:不是所有手工测试用例都可以使用自动化测试来实现的。

原则4:手工测试用例可以不用回归原点,而自动化用例往往是必须的。

原则5:自动化测试用例和手工测试用例不同,不需要每个步骤都写预期结果。

2、 请对该界面图上的数字区域进行解释?

1) 2) 3) 4) 5) 6) 7) 8)

探测手指

探测时保持探测器置顶 显示对象的区域

本地属性和鉴别属性的切换 属性和操作的切换

对象属性&对象操作的详细表 文字显示区域 具体描述区域

3、运行时对象的封装属性与自身接口属性的区别?

(1)封装接口是对象的不完全属性,有些对象的属性值是封装接口无法获取得到的。 (2)运行时的对象(RO)可以看见自身接口的所有属性,而对象库中的测试对象(TO)只可以看见被封装的一些接口。

(3)封装属性是不能修改实际运行时的对象的,只能获取属性的值,而调用自身接口就可以。

4、请描述Action的三种类型?

(1)非重用型:只能被存储它的Test调用,且只能被调用一次。 (2)重用型:可以多次被存储它的Test或别的Test调用。

(3)外部型:一个存储在别的Test中的可重用型Action,只能在调用它的Test中“只读”。 5、请描述Test DataTable与Run-time DataTable之间的区别和含义?

(1)Test DataTable—在Data table里事先准备好的、固定的测试数据,它是一组静态数据,是由自动化测试工程师人为事先填写进去的。

(2)Run-time DataTable—在QTP执行过程中,将测试数据填写到Data table里,QTP运行结束,测试数据就消失(不会保存在Data table里),但是可以在测试报告中看到它。

6、请描述VBScript中Left函数的作用、语法和参数? 作用:返回字符串最右边的指定数量的字符。 语法:Right(string, length)。 参数。

string:字符串表达式,其最右边的字符被返回。如果string参数中包含Null,则返回Null。 length:数值表达式,指明要返回的字符数目。如果是0,返回零长度字符串(\);如果大于或等于string参数中的字符总数,则返回整个字符串。

7、请描述VBScript中Right函数的作用、语法和参数? 作用:返回字符串最右边的指定数量的字符。 语法:Right(string, length)。 参数。

string:字符串表达式,其最右边的字符被返回。如果string参数中包含Null,则返回Null。 length:数值表达式,指明要返回的字符数目。如果是0,返回零长度字符串(\);如果大于或等于string参数中的字符总数,则返回整个字符串。

8、 请描述WebTable对象中GetCellData方法的作用和语法?

它的作用是获取指定单元格 (指定行、指定列)的值,是QTP提供的一个Get信息的方法。 语法:Object.GetCellData(Row,Colwww)。 <参数1>Row:必填项,表格的行号。 <参数2>Colwww:必填项,表格的列号。

9、 请解释ActionName,LocalHostName,ResultDir三个环境变量?

ActionName:返回当前运行的是哪一个Action,它的名称。 LocalHostName:返回当前运行QTP的计算机名称。

ResultDir:返回当前Test的测试报告的保存地址,不包括最后的“\\”。

10、

请解释SystemTempDir,TestDir,TestName三个环境变量?

SystemTempDir:返回系统的临时目录的路径,不包括最后的“\\”。 TestDir:返回当前测试的绝对路径,不包括最后的“\\'。 TestName:返回当前运行的Test的名称。

11、 分析:

请描述常用保留对象Desktop的实现和分析?

实现:Desktop.CaptureBitmap \

通常此对象用于出错时的截图,使用此对象来截图非常方便,只需给定生成截图的路径即可,这个在前面的章节也用过。 12、 请描述常用保留对象MercuryTimes的实现和分析?

实现:

‘计时开始

MercuryTimers(\

'****************************************** ' LOGIN MAINPAGE Wait 2

'****************************************** ‘计时结束

MercuryTimers(\

‘获取总共耗时时间

Print MercuryTimers(\

分析:

MercuryTimes保留对象是一个非常实用的对象,它对于测试应用程序的性能是非常有帮助的,此对象也是在QTP 9.2版本才开始加入的。 13、 请描述常用保留对象PathFinder的实现和分析?

实现:gbox PathFinder.Locate(\

分析:

PathFinder在QTP中的可见方法只有Locate,其参数为文件名称,其作用主要是获取到参数中的文件的完整绝对路径。 14、 请描述常用保留对象RandomNumber的实现和分析?

实现:Print RandomNumber.Value (0, 100)

分析:

执行以上脚本会得到一个0~100的随机数。注意,此处包含0和100。由于此处Value是默认属性,因此可以省略。

二、问答题

1、 模拟录制与低级别录制的区别?

将“模拟录制”应用于要在录制期间录制鼠标光标的实际移动的应用程序。这些可能包括绘制鼠标签名或者使用通过拖曳鼠标光标创建图像的绘图应用程序等。模拟录制模式分为两种:一种是相对于指定窗口的录制,另一种是相对于屏幕的录制。使用“模拟录制”录制的步骤被保存在单独的数据文件中。该文件与在其中录制模拟步骤的操作或组件一起存储,并且在以“模拟录制”模式进行录制时,QTP将向测试或组件添加一个调用所录制的模拟文件的“RunAnalog”语句。相应的Active Screen 将显示在模拟录制会话期间执行的最后一个模拟步骤的结果。

将“低级录制”应用于在不受QTP支持的环境或对象上进行录制应用程序。或者当需要在应用程序屏幕上录制操作的精确位置时,也请使用“低级录制”。当以正常模式录制时,不用关心对象控件具体在什么位置,即使该对象控件每次都移动到屏幕上的新位置也没关系。但是,如果对象控件的位置方位对于测试或组件非常重要,请切换到“低级录制”以使QTP能够按照屏幕上的x坐标和y坐标录制该对象。这样,在运行脚本的时候,该步骤只有在对象控

件位于正确的位置时才能通过。

以“低级录制”模式录制的每个步骤都显示在关键字视图和专家视图中,而“模拟录制”仅仅录制关键字视图中那个调用外部模拟数据文件的步骤。

总结。当选择“模拟录制”或“低级录制”时,需要参考一定的规则性,才能做到事半功倍的效果,在遇到实际问题时仔细考虑以下规则。

? 只有当QTP的正常录制模式不能准确录制和满足业务操作时,方可使用“模拟录制”

或“低级录制”。

? “模拟录制”和“低级录制”要求比正常录制模式更多的磁盘空间。

? 对于特定的业务步骤,可以在录制会话期间切换到“模拟录制”或“低级录制”。在以

“模拟录制”或“低级录制”模式录制了必要的业务步骤之后,就可以返回到正常录制模式来完成录制会话的其余部分。

2、 测试对象(TO)与运行时对象(RO)的区别?

TO就是被添加到对象库中的对象,RO其实就是被测试软件在运行时实际所运行的那个对象。无论是TO还是RO,它们都属于QTP封装的对象,共同使用QTP封装好的一些属性,RO就有点特殊了,它也可以调用自身接口的属性。

QTP识别对象通常就是先在对象库里添加测试对象,这些对象全部都存有一些特征属性的值,然后在被测软件运行的时候,QTP会根据脚本里的对象名字,在对象库里找到相对应的测试对象,并根据这些对象的特征属性描述,在被测试软件里搜索并找到相匹配的实际正在运行的对象,最后就可以对这些实际运行的测试对象进行操作了。如果在这个过程中没有找到任何相匹配的对象,那么QTP就会报个“找不到该对象”的错误。测试对象是为了识别运行时对象而存在的。

3、 请介绍一下获取对象属性的四个方法GetTOPropert(),GetTOProperties(),SetTOProperty(),

GetROProperty()的基本含义和公式? GetTOPropert():

(1)基本含义:获取对象库中某个对象的某个属性的值。 (2)公式:ReturnValue =对象.GetTOProperty(\封装属性名\GetTOProperties():

(1)基本含义:获取对象库中某个对象的所有属性的值。 (2)公式:ReturnValue =对象.GetTOProperties()。 SetTOProperty():

(1)基本含义:设置对象库中某个对象的某个属性的值。

(2)公式:对象.SetTOProperty“封装属性名”,“封装属性值”。 GetROProperty():

(1)基本含义:获取实际在运行时的某个对象的某个属性的值(不是从对象库里面获取)。

(2) 公式:ReturnValue =对象.GetROProperty(\封装属性名\。

4、请描述对象库编程与描述性编程的优势?

对象库的优势:

(1)可以通过Complete Word、“F7”等多个方式进行高效编程。这个特性描述性编程没有。

(2)对象库编程有一个比较好的特性,假设脚本中引用了同一个对象10多次,这个对象的名字之前取得不是太出色,项目经理要求改名。此时不需要改10多次,只需要进

入对象库,对这个对象进行更名,脚本便会批量自动更新,很高效!这个特性描述性编程也没有。

(3)对象库编程不容易打错字,因为有Complete Word,想打错字都难。但是,描述性编程没有Complete Word,所以,打错字是家常便饭。关键是,对于一个新测试员来说,他不可能有敏锐的分析手段,往往因为这么一个小错别字会浪费很多时间。其实只是一个错别字而已,往往最后被误解成脚本发生了错误,无论怎么调试都看不出来。 描述性编程的优势:

(1)不用维护庞大的对象库,不过需要维护庞大的代码。 (2) 描述性编程可以完成一些特殊的需求。

5、请详细描述QTP自带的检查点、验证点方法CheckProperty的语法和参数解释?

Object.CheckProperty(PropertyName,PropertyValue,[TimeOut])

对象.CheckProperty方法(参数“属性名”,参数“属性值”,非必填项“延时”)。 介绍括号里的参数设置部分。

(1)PropertyName:要检查的属性名,在本实例中是?value?。

(2)PropertyValue:预期结果值,在本实例中预期结果是“QTP自动化测试技术领航”,如果最后检查完毕,发现不符合预期,则会返回False,并引入QTP测试报告;反之,则返回 True,并在测试报告中以Passed显示。

(3)TimeOut:单位是milliseconds,可以不填,不填则代码瞬间验证结束,如果设置成5000 的话,则会等待 5秒钟。第 1秒如果没验证对没关系,只要在 5秒内验证对就算对。

6、 请详细描述VBScript基本语法中对变量的定义? (1)所有单引号后面的内容都被解释为注释。

(2)在VBScript中,变量的命名规则遵循标准的命名规则,需要注意的是:在VBScript中对变量、方法、函数和对象的引用是不区分大小写的。在申明变量时,要显式地申明一个变量,需要使用关键字Dim来告诉VBScript创建一个变量,并将变量名称跟在其后。申明多个同类型变量,可以用逗号分隔。

注意:VBScript中不允许在申明变量的时候同时给变量赋值。但是允许在一行代码内同时对两个变量进行赋值,中间用冒号分隔。

(3)VBScript在定义时只有一种变量类型,在实际使用中需要使用类型转换函数来将变量转换成相应的变量类型。

Cbool函数将变量转换成布尔值。

Cbyte函数将变量转换为0~255的整数。

Ccur函数、Cdbl函数和Csng函数将变量转换为浮点数值,前者只精确到小数点后4位,后两者要更加精确,数值的范围也要大的多。 Cdate函数将变量转换为日期值。

Cint函数和Clng函数将变量转换为整数,后者的范围比前者要大的多。 Cstr函数将变量转换为字符串。

7、 请详细描述VBScript中Sub函数与Function函数?

(1)Sub过程:Sub其实就是一个过程复用,没有返回值。

详解:Sub过程是包含在Sub和End Sub语句之间的一组VBScript语句,执行操作但不返回值。Sub过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果Sub过程无任何参数,则Sub语句必须包含空括号()。

(2)Function 函数:Function是一个经常会用到的函数,可以有返回值,也有参数。 详解:Function过程是包含在Function和End Function语句之间的一组VBScript语句。Function过程与Sub过程类似,但是Function过程可以返回值。Function过程可以使用参数(由调用过程传递的常数、变量或表达式)。如果Function过程无任何参数,则Function语句必须包含空括号()。Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的。Function返回值的数据类型总是Variant。

8、 请描述WebTable对象中Childltem方法的作用和语法?

它的作用就是可以虚拟一个对象 (其实不光是可以虚拟WebCheckBox对象),使它成为WebTable的一个子对象,最后对这个虚拟子对象进行操作。

语法:Object.ChildItem(Row,Column,MicClass,Index)。

<参数1>Row:必填项,表格的行号。实例中的行号是一个动态且循环的,每次循环都是对每行的第 2列值做匹配直到结束。 <参数2>Column:必填项,表格的列号。当找到指定行的时候,就需要将左侧的WebCheckBox设置成一个WebTable的子对象。既然行都已经确定了,此时就非常简单了,确定一个列就行,列又不是动态的,我们知道想要的列号一定是 1,所以,只要填进去即可。此时千万别说还不知道为什么列号应该是 1啊!

<参数3>MicClass:必填项,对象控件的类名,如List、WebButton、WebEdit等。要虚拟成什么样的对象就填什么。注意别忘了加一对双引号,也记得这个参数只能填写QTP认识的控件类别 (即Object Identification里存在的),别填出个什么“Web自定义”之类的!

<参数4>Index:必填项,这个读者只要填 0就可以了,绝大部分情况下包括本实例都不大会出现多个Index的情况,所以只需填写第 1个Index,它就是 0!

9、 请描述常用保留对象Crypt的实现和分析? 实现:

PwStr = Crypt.Encrypt(\

Dialog(\Dialog(\Dialog(\分析:

利用Crypt保留对象可以把字符串自动转化为加密形式的字样,并且每次动态生成的加密密码都是不一样的,其实,此功能就是Password Encoder,Crypt方式其实就是此工具的脚本生成形式。

生成形式。

一、判断题(共5道小题,共50.0分)1.QTP在录制过程中,遇到部分Web事件无法模拟操作,此时

的解决方案就是进入Web Event Recording Configuration设置框并将Event configuration level提升

至最高的High等级即可解决所有问题。B

? ?

正确 错误

2.Setting.WebPackage(\,这段代码可以灵活控制QTP的回放模式,“2”代表Event跟踪模式,那么如果设置成“1”的话,QTP就会切换到Mouse跟踪模式.B

? ?

正确 错误

3.第一种描述性编程中,描述多个属性时,属性间用逗号隔开,这个逗号必须是英文状态下的 .A

? ?

正确 错误

4.GetTOProperties()获取对象库中某个对象的所有属性的值。A

? ?

正确 错误

5.Ctrl+Shift+Space快捷键来能够将光标定位到调用Function的这行代码。B

? ?

二、多项选择题(共5道小题,共50.0分)1.下面描述中,哪几项是向QTP对象库添加对象的步骤。ABCD

? ? ? ?

正确 错误

第一步,点击Add Object to Local按钮,在点击后会出现一个白色手指。

第二步,拖动白色手指至待添加的对象上,点击鼠标左键。 第三步,只有被点击的对象被添加至对象库中,其父对象不会被添加至对象库中。 第四步,最终确认要添加的对象,确认无误后点击OK按钮。

2.请在以下4个选项中选择正确的选项。B

? ? ? ?

QTP停止运行的快捷键是Ctrl+Alt+F5,但不提供个性化设置。 QTP具有Event和Mouse两种回放模式。

QTP具有Slow、Normal和Fast 3种运行模式。

QTP具有两种录制模式,它们是Analog Recording和Low Level Recording。

3.请排列QTP业务操作及执行流程的顺序,1、录制 2、打开浏览器 3、回放 4、打开QTP. B

? ? ?

1234 4213 2341

? 3214

4.为什么自定义验证点就比自带的CheckProperty灵活。ABCD

A.CheckProperty使用到的ReportEvent只有两种,Pass和 Fail,而后者可以使用 4种

B.CheckProperty似乎永远只是在检查属性,自定义验证点可以检查各种各样的代码逻辑,从多角度去验证自动化测试,如For循环,条件判断,嵌套循环等,任意组合都能使用到Reporter函数

C.CheckProperty的 StepName和Details 由系统自己生成,显得生硬,自定义验证点可以自由键入自己想要的东西

D.CheckProperty没有将截图写在测试报告里的功能,而自定义验证点有 5..下面描述中,哪几项是QTP几种常见对象无法识别或识别错误的原因。ABCD

? ? ? ?

软件程序的对象控件无法被QTP识别

对象可以被QTP识别,但是加载的插件不正确

同一个界面中存在两个或两个以上的属性相同的对象 实际运行时的对象发生了改变导致与对象库不匹配

一、判断题(共5道小题,共50.0分)1.RecoveryFunction1函数中的Arguments参数,语句Print

join(Arguments, \,输出所有参数,以分号分隔。B

? ?

正确 错误

2.RecoveryFunction1函数中的Object参数,语句Print Object.GetTOProperty(\,将输出对象库中的LogicName。A

? ?

正确 错误

3.QTP隐藏对象可以通过运行“regedit”进入注册表,依次单击HKCU→Software→Mercury Interacitve→QuickTest Professional→MicTest→ReservedObjects下的所有项查看。A

? ?

正确 错误

4.ActionName变量返回当前运行的Action迭代的数据行号 (指Datatable中当前Action的数据表),如正在运行Action中的第三行数据,则返回“3”。B

? ?

正确 错误

5.数组在“定义”时下标是从1开始的,而在“访问”时下标总也是从1开始,以数组定义中数值

减一结束。B

? ?

二、多项选择题(共5道小题,共50.0分)

正确 错误

1.下面那些项是QTP场景恢复的误区。ABCD

? ? ? ?

必须是对象库中已经存在的对象错误才会自动激活 必须是QTP自身封装对象错误才会自动激活 对于VBS语言环境错误不会自动激活 当MsgBox切断测试过程时

2.自定义保留对象需要并满足以下那些条件?AC

? ? ? ?

自定义的保留对象必须是COM组件 自定义的保留对象不一定是COM组件

需要添加自定义保留对象就必须更改注册表信息 自定义保留对象不需要更改注册表信息

3.动态地去生成环境变量,主要是通过两个函数。AB

? ? ? ?

getVariable函数

generateEnvFile函数 Environment函数 ExecuteFile函数

4.VBScript中的循环控制语句有以下哪几种。ABCDE

? ? ? ? ?

For??Next循环 For??Each循环 Do??While循环 Do??Until循环 While循环

5.显示申明―Option Explicit 强制所有变量必须先申明才能使用,其优点如下。ABCD

? ? ? ?

显示申明是脚本编写人员的一种好习惯。

可以防止很多不必要的错误发生,大型项目更加明显。 减少资源占用。 代码提示的优势。

本文来源:https://www.bwwdw.com/article/deuh.html

Top