1. 布置虚拟机:
a) 更换vdi:第一IDE控制器主通道即C盘,qtptest(192.168.0.12:\QTPVDI\qtptest.vdi)
第一IDE控制器从通道即D盘,
第二IDE控制器主通道E盘
第二IDE控制器从通道F盘,Fpan(192.168.0.12:\QTPVDI\Fpan.vdi)
Ps:可以布置自己开发的应用,上面是自动化测试需要布置的条件。
b) 设置网络适配器连接方式为NAT,系统内存需要调大一些,1600M或以上。
c) 启动虚拟机,右键我的电脑,管理-磁盘管理-导入外部磁盘-重新激活磁盘(个别可能需要增加盘符)
2. 启动QTP,牢记必须先打开qtp,再打开网页。
a) 打开QTP前,关闭所有网页。选择插件Active X,Flex,Web插件。(产品由这三种插件编译)
b) Automation-Recording and Run Settings,如下图,其中1,是说每次录制从已经打开的页面开始录制(也是必须在打开qtp后再打开此网页),2,是说,重新打开一个网页,红框内显示的是地址。
c) 录制:设置完上面一项后,点击Record.
d) 录制过程中添加检查点:Insert-Checkpoint-Standard CheckPoint(标准检查点是最容易通过的检查点,也是各种插件都可以插入的检查点,不要插入图片检查点Bitmap Checkpoint,因为所有的图片每次加载的id和大小以及分辨率会变化,导致回放不成功),下图是录制产品登陆的过程和对登陆用户zhangsan进入平台后添加检查点
在上图中,name值可以自己起,但是最好和这个组件本来的名字相对应,方便产品更进时容易明白和更改。下面的时间,一两秒都可,也可以不改。
e) 添加检查点后可以继续录制,也可以结束,点击Stop。
f) 录制结束后,对应上面截图中的代码,我们可以看对象库里的组件。Resources-Object Respository这是对象库(快捷键ctrl+R)对象库如下图,左边红框内为对象组件,就是页面上的元素,右边红框,是对应左边组件的属性。
在下图中,参照代码一起看对象库,可以看到父对象是browser,然后是page-webEdit-登陆按钮/password/username。在这里和html的设置是一样的,右边的黄色框体是针对左边password的属性设置,这里显示的几个Description Properties就是qtp对这个WebEdit组件的默认属性记录,如果这里的属性组合起来不能识别到网页上的一个组件,那qtp就会报错。所以需要开发对每个组件的id和automationname值起一个唯一的名字。
g) 回放:在qtp回放时如果你最初采取的是从当前页面开始录制,你就要恢复到那个页面的初始状态,记得:如果你录制过程中添加了网页需要唯一的东西就要删除这个,否则回放就会失败,因为qtp回放的过程和你录制的过程是一模一样的,它是真实的操作这个页面,比如你录制了一个登陆QQ,你回放前就得关闭这个QQ,否则回放提示你已经登陆过了;如果你最初采取的是打开网页录制,那就在回放前关闭所有网页,否则造成qtp无法识别哪个是你打开的网页。
h) 再说回放后的结果:左边红色框体说的是你对象库中的对象有没有完成既定的动作,绿色对勾表示完成,右边红色框体内的Passed表示有检查点的那个检查动作通过。如果Warnings不为0,左边必有一个”!”,感叹号最下级别的那个对象组件,说明qtp在网页上找它的时候识别困难,这就需要你更改对象库里的综合识别属性,warning不代表不通过,只是说脚本不够强健,就像开发写的java,只是强度不够硬。(开发可以不太计较这些)。
如果Passed为0,而有Done,也表示脚本回放成功。只要Failed值不为0则表示脚本没有通过。
i)说下qtp录制和回放的原理:qtp在录制的时候会把你点到的这些对象都存放在对象库里,当你回放的时候,qtp就会在页面上找这些对象,如果网页上的对象的属性和对象库里的相同,那就会通过passed或Done,如果不相同,就会Failed。所以就需要页面上每个组件对象有唯一的标识(id)和名字(automationname)