1.6.4 梳理运行时对象的封装与自身接口的属性区别
1.6.4.1 解读对象的自身接口
在上一节中,作者已经介绍过实际上运行时的对象是有两种接口的,第一个就是上一节中主要讲解的对象封装接口,另一个就是将在本小节中重点介绍的对象自身接口。首先让了解一下两种接口的区别。
封装接口是对象的不完全属性,有些对象的属性值是封装接口无法获取得到的。
运行时的对象(RO)可以看见自身接口的所有属性,而对象库中的测试对象(TO)只可以看见被封装的一些接口。
封装属性是不能修改实际运行时的对象的,只能获取属性的值,而调用自身接口就可以。
以上3条就是封装属性与自身接口属性两者间的区别,其实读者应该不难发现这两者之间有本质上的一个特性,那就是封装接口既支持(或者叫涵盖吧)对象库中的测试对象,同时也支持运行时的对象,而自身接口就只支持运行时的对象,这点千万要注意,也不要搞混了,对于初学者来说这是一个难点和容易混淆的地方。
1.6.4.2 教你如何成为一名黑客
虽然现在读者已经了解了对象分测试对象与运行时对象,运行时对象除了有封装接口之外还有一个自身接口,但是这些都是概念上的内容,相信读者还是不明白自身接口到底是什么。在这里作者卖个关子暂且不告诉大家,先来玩一个有趣的“魔术”,作者在这里扮演一个黑客的角色,将这本书的推广方“51Testing”给黑掉。在袭击51Testing官方论坛首页之前,还是先让广大读者再看一下,因为过一会它将会变得面目全非:
如图1-170所示,目前51Testing的论坛还是原样,一会,作者将“51Testing”网站给黑掉,如图1-171所示。
图1-170
图1-171
如图1-171所示,51Testing网站界面上的某些控件经过作者的“施法”已经被替换成了百度网站中的一些控件,一共发生了4处变化,已经在图1-171中标注,它们分别是。
(1)将WebButton控件“登录”改成“百度搜索”。
(2)将Image控件“51Testing的Logo”改成“百度的Logo”。
(3)将Link控件“加入51Testing(注册)”改成“加入百度(注册)”。
(4)将Link控件“登录”改成“baidu_login”。
读者现在一定是非常的兴奋(很正常,当初作者也是如此的兴奋),为什么作者的手段那么厉害,能如此轻易地攻击一个大型网站。首先,作者可以告诉广大新人,作者的“帮凶”不是别人,正是这个强大的自动化测试工具QTP。所以,作为新人的你是不是一下子对QTP产生了浓厚的兴趣?的确是这样的,一旦学会了如何去当一名“黑客”,你一定会对QTP兴趣倍增,而且一旦学会了黑客之道,也同时证明了你的QTP水平已经上了一个台阶。