8)你怎样在一个action中调用另一个action?
调用action有两种方法:
(1)调用复制的action。用这种方法,操作对象存储库、脚本和时间戳将被复制到目标测试脚本。
(2)调用现有的action。用这种方法,操作对象存储库、脚本和时间戳不会被复制,但一个调用(参考)将在源脚本的action上生成。
9)什么是虚拟对象?
应用程序可能包含有着像标准对象行为的对象,但不被QTP识别。您可以把这些对象定义为虚拟对象并将它们映射到标准的类,比如按钮或一个复选框。QTP在运行的会话中在虚拟对象上模拟用户的动作。在测试结果里,虚拟对象被当成标准的类对象展示出来。
例如,假设你想记录一个测试包含用户单击的位图的Web页面。位图包含几个不同的超链接区域,每个区域打开一个不同的目的页面。当你记录一个测试,Web站点匹配单击位图的坐标并且打开目标页面。
在运行的会话中启用QTP以点击所需坐标,你可以为一个区域的位图定义一个虚拟对象,其中包括那些坐标,并将其映射到按钮类。当运行一个测试时,QTP单击一个被定义为虚拟对象位图所在区域,这样网址就可以打开正确的目的地页面了。
10)如何使用QTP执行跨平台测试和跨浏览器测试?你能用一些例子解释说明吗?
创建单独的Actions,以满足不同的操作系统和浏览器的需要。
跨平台测试:
用内置的环境变量挖掘操作系统信息。
如:平台=环境(“操作系统”)。然后基于平台需要调用你记录在那个特定的平台的actions。
跨浏览器测试:
使用代码Browser("Core Values").GetROProperty("version"),可提取浏览器和它的相关版本。例如:Internet Explorer 6或Netscape 5,基于这个值您可以调用与浏览器相关的actions。
11)对象的逻辑名字是什么?
逻辑名字是QTP 在库里创建一个可唯一地与应用里的其他对象识别的对象时起的名字。它被QTP用来映射对象库中对象名相应的描述。如:Browser("Browser").Page("Guru99") ,在这里,Guru99 是对象的逻辑名字。
12)什么是描述性编程?
通常情况下,一个对象及其属性必须被记录在对象资源库,让QTP执行操作。
用描述性编程,你不用在对象资源库里储存对象及其属性值,而是在脚本里提到属性值对。
描述性编程背后的这种思想不是想绕开对象库,而是帮助识别静态对象。
13)运用描述性编程的时候,你用什么属性来识别浏览器网页?
可以用名字属性。
如:ex:
Browser("name:="xxx"").page("name:="xxxx"").....
或者,我们也可以用属性"micClass"。
如:ex:
Browser("micClass:=browser").page("micClass:=page")....