(注:以下包含实际项目为qtp自带测试飞行系统为例)
一、检查点定义
将特定属性的当前数据与期望数据进行比较的检查点,用于判定被测试程序功能是否正确CheckPoint可以分两类:QTP内置检查点和自定义检查点文章源自玩技e族-https://www.playezu.com/10177.html
二、内置检查点原理及优缺点
A.录制时,根据用户设置的验证内容,记录数据作为基线数据
B.回放时,QTP捕获对象运行时的数据,与脚本中的基线数据进行比较
C.如果基线数据和运行数据相同,结果为PASS,反之为Failed.
D.优点是 操作简单方便
E.缺点是 QTP默认的检查的属性有时不符合自己的要求,如希望得到检查的属性没有在里面, 而默认的属性不需要检查等。文章源自玩技e族-https://www.playezu.com/10177.html
三、内置检查点应用
A.录制的验证点在没有进行调整前,仅仅是给出了检查结果是通过还是错误的
B.实际的测试过程中,可以根据验证点的结果进行不同的操作
文章源自玩技e族-https://www.playezu.com/10177.html
If Window("Flight Reservation").WinEdit("Name:").Check(CheckPoint("Name:")) = True then msgbox "oh, success!" Else msgbox "oh, failure!" End If
四、自定义检查点应用及优缺点
A.使用条件语句对实际值和期望值进行对比,然后用Reporter对象报告结果检查Ticket Number
文章源自玩技e族-https://www.playezu.com/10177.html
If CStr(dbTicketNumber) = CStr(DataTable("oTicketNumber", dtLocalSheet)) Then Reporter.ReportEvent micPass, "打开订单- TicketNumber", "期望结果是:" & dbTicketNumber & ", 界面显示实际结果是:" & DataTable("oTicketNumber", dtLocalSheet) Else Reporter.ReportEvent micPass, "打开订单- TicketNumber", "期望结果是:" & dbTicketNumber & ", 界面显示实际结果是:" & DataTable("oTicketNumber", dtLocalSheet) End If
B.优点是 非常灵活,前者实现的所有检查都可以用此方法来实现;
C.缺点是 代码量大,对测试人员的要求高。文章源自玩技e族-https://www.playezu.com/10177.html
五、检查点类型介绍
1.标准检查点(Standard Checkpoint)
检查对象的属性,如可以检查某个按钮的是否被选取;文章源自玩技e族-https://www.playezu.com/10177.html
2.页面检查点(Page Checkpoint)
检查网页的特性,如可以检查加载页面所需的时间,或者检查网页是否包含损坏的链接;文章源自玩技e族-https://www.playezu.com/10177.html
3.图片检查点(Image Checkpoint)
检查应用程序或网页中的图像的值,如可以检查所选图像的源文文件是否正确;文章源自玩技e族-https://www.playezu.com/10177.html
4.位图检查点(Bitmap Checkpoint)
检查位图格式的网页或应用程序区域;如。被测应用程序中有一个按钮,显示<查看文档>其中<号码>会被输入到应用程序中其它位置窗体的四位数字代码替换。可以创建一个文本区域检查点,以确认在该按钮上显示与窗体中的号码相同;文章源自玩技e族-https://www.playezu.com/10177.html
5.文本检查点(Text Checkpoint)
检查网页或窗口中的文字内容是否正确;文章源自玩技e族-https://www.playezu.com/10177.html
6.文本区域检查点(Text Area Checkpoint)
检查网页或窗口中的文字是否在指定的区域显示;
7.表检查点(Table Checkpoint)
检查表内部信息,假设被测试应用程序包含一个表,改表列出了从纽约到旧金山所有可用航班。可以添加一个表检查点,以检查该表中的第一个航班的时间是否正确;
8.数据库检查点(Database Checkpoint)
检查由应用程序访问的数据库到内容,如使用数据库检查点来检查网站上包含航班信息的数据库内容;
9.Output Value
输出值检查,如输出网页中某一图片的属性(长宽高等);
10.可访问性检查点(Accessibility Checkpoint)
对网站区域属性进行识别,以检查是否符合可访问性规则的要求;
六、对Check Point的深入理解
A.个人认为在比较简单的和有Active Screen的情况下可以使用QTP内置的Check Point,在比较复杂的情况下可以通过编程和使用Reporter来完成.
B.在使用check方法时,必须先在Keyword View或者Active Screen中新建CheckPoint。否则无法对该对象进行check,系统报错说无法在对象仓库中找到此对象。如果插入检查点,系统会自动把相关的对象添加到对象库中。
个人认为检查点并不是一个实实在在的对象。因为你可以对同一个对象设置不同的检查点,可以把它的某个属性既设定成True,也可以设定为False。而对象库 中的对象的属性值是必须依赖于对象的实际属性值的。如果随意更改有可能无法识别。还有就是可以针对同一个对象设定多个检查点。在测试窗口中可以看到这两个 检查点的名称是区分开来的。所以我认为检查点并不是实际存在的对象,而是一些类似映射的东西。
尽管检查点并不是对象库中的实在的对象,但是它必须对应到对象库中的某个实实在在的对象,好像它的一个映像一样,而且在实际的操作过程中,QTP还是把它作为一个对象来处理的。因为我们无法像其他对象一样把“检查点对象”添加到对象库中,而QTP又认为它是个对象,所以我们无法在专家视图中直接添加检查点脚本。但是我们可以采用编程描述的方式来实现检查点的功能。
CheckPoint 是一个依赖于Object Repository(对象库)中的某个对象的“虚拟对象”。其具体含义是:如果它所依赖的QTP 对象库中的对象没有了,那么此CheckPoint 也就不存在了;这个“虚拟对象”的属性是从它所依赖的对象的属性中“抽取”出来的,它具有它所依赖的对象的一个或几个属性,但不能增加它所依赖的对象没有 的任何属性。
CheckPoint 是一个“虚拟对象”的重要原因是:每个Object都能在Object Repository找到它的Name、Class Properties,而CheckPoint 在Object Repository中就根本不存在。选择脚本中的某个对象后,在Object Property 的对话框里面有个Respository按钮,点击它后,你会看到此对象在Object Respository 的Name、Class 和 Properties。
选择一个CheckPoint后,在CheckPoint Properties 的对话框里没有 Respository 按钮,在Object Respository中也找不到此CheckPoint的Name、Class 和 Properties(因为它在对象库中根本就不存在!)。
未完待续。。。
评论