检查站 QTP/UFT 与例子

什么是检查点? UFT/QTP?
A 检查站 in UFT/QTP 这是一个验证点,它将指定对象属性、页面属性或数据源的当前值与测试中先前捕获的预期值进行比较。如果当前值和预期值匹配, UFT 如果符合条件,则记录为“通过”状态;如果不符合条件,则记录为“失败”状态。
检查点将仅重放操作的脚本转换为能够验证结果的脚本。即使被测应用程序显示错误的文本、错误的图像或损坏的数据库记录,录制的脚本也能成功完成每个步骤——检查点的作用就是捕获这些差异并将其报告。
为什么要在自动化测试中使用检查点?
录制脚本只能重现一系列点击和按键操作;它永远无法确认应用程序是否产生了正确的结果。检查点通过将每个录制的操作转化为具有可衡量结果的可测试断言来弥补这一缺陷。
- 将回放转换为验证,以便每次运行都能产生明确的“通过”或“失败”结果,而不仅仅是完成的脚本。
- 尽早发现回归问题,防止缺陷影响到测试人员认为已经稳定的版本。
- 验证在人工观察期间不可见的数据,例如 XML 有效负载、数据库行或隐藏对象属性。
- 记录预期行为,以便任何阅读脚本的人都能理解该步骤的“正确”含义。
由于检查点在每次执行时都会自动运行,因此无需测试人员在每个循环后手动检查每个屏幕,这正是其优势所在。 UFT/QTP 适用于重复使用 回归测试 跨版本。
检查点的类型 UFT/QTP
UFT/QTP 它提供了多种检查点类型,以便测试人员能够在特定步骤验证应用程序中真正重要的方面——例如静态属性、文本块、位图图像、数据库记录或整个 XML 文档。选择与被测对象匹配的类型,可以确保步骤的重点突出且易于维护。
- 标准检查点: 将录制过程中捕获的对象属性的预期值与运行会话期间对象的当前值进行比较。所有插件环境均支持此功能。
- 页面检查点: 这是为网页创建的标准检查点。它会检查页面上的链接和图像总数,并可以测量页面加载时间。
- 文本检查点: 验证特定文本是否出现在网页或图形的指定区域内 Windows基于应用程序。
- 文本区域检查点: 验证文本字符串是否显示在屏幕的指定区域内。 Windows基于应用程序,根据区分大小写或通配符匹配等标准。
- 位图检查点: 通过逐像素比较实际图像和预期图像,检查图像或整个网页的位图。
- 图像检查点: 检查网页图像的属性,例如其源文件位置。与位图检查点不同,它不比较像素。
- 无障碍检查点: 验证是否符合万维网联盟 (W3C) 的网络技术指南,使残疾人士更容易使用该应用程序。
- 数据库检查点: 在记录时间运行查询并将返回的数据库值存储为预期值;在运行时再次运行相同的查询,以便比较实际值和预期值。
- 表格检查点: 动态检查表格或网格中单元格的内容,以及表格属性,例如行高和单元格宽度。它类似于数据库检查点。
- XML 检查点: 验证嵌入在网页或独立 .xml 文档中的 XML 数据、XML 模式和 XML 资源。
下表并列比较了十种检查点类型,以便您在开始录制之前选择合适的检查点类型。
| 检查点类型 | 验证 | 最适合使用 |
|---|---|---|
| 标准版 | 对象属性值 | 对任何插件对象进行通用验证 |
| 页 | 链接、图片、加载时间 | 确认网页已完全加载 |
| 文本 | 特定文本的存在 | 确认消息或标签显示 |
| 文字区 | 屏幕区域内的文本 | Windows 具有非标准文本控件的应用程序 |
| 位图 | 像素级图像匹配 | 图表、徽标、布局的视觉回归 |
| 图片 | 图像源属性 | 确认已提供正确的图像文件 |
| 无障碍服务 | W3C 合规性 | 审核网页的可访问性缺陷 |
| 数据库 | 查询结果值 | 确认后端数据与用户界面一致 |
| 表 | 网格单元格内容和布局 | 报告、搜索结果和数据网格 |
| XML | XML 数据和模式 | Web 服务和 XML 驱动页面 |
检查点与输出值:二者有何区别?
测试人员新手 UFT/QTP 人们常常将检查点与输出值混淆,因为两者都是从同一个菜单插入的,并且都读取对象的实时属性。这两个功能的作用恰恰相反。
| 方面 | 检查站 | 产值 |
|---|---|---|
| 目的 | 确认捕获的属性与预期值匹配 | 捕获运行时属性,以便后续步骤可以重用它。 |
| 通过/失败的影响 | 该步骤失败,并报告结果不匹配。 | 它本身从不通过测试 |
| 价值流向何处 | 内部比较,测试结果以合格/不合格表示 | 存储在运行时数据表或变量中 |
| 典型用途 | 确认页面标题或数据库总数 | 将生成的订单号传递给下一个操作 |
当脚本需要判断通过/失败时,使用检查点;当后续步骤需要将捕获的数据作为输入时,使用输出值。
如何在插入检查点 UFT/QTP
大多数检查点类型只能在以下情况下插入: UFT 正在录制;录制停止后,检查点菜单将无法插入新的检查点。以下步骤将插入一个标准检查点,这是最常用的检查点类型。
点击 开始 如果视频无法访问
- 打开被测应用程序并 开始录音 in UFT.
- 导航到要验证的屏幕或对象,然后右键单击检查点所属步骤之后的步骤。
- 从上下文菜单中选择“插入标准检查点”,或者从检查点子菜单中选择特定类型(位图、数据库、表等)。
- 在“检查点属性”对话框中,保留默认的检查点名称,或将其替换为描述性名称。
- 选择要验证的对象属性。每个选定的属性都会显示一个勾号;ABC 图标表示常量值,如果属性是参数化的,图标会发生变化。
- 单击“确定”。 UFT 在当前步骤之后立即插入一个 Check 语句。
- 停止录制并重放测试,以确认检查点报告为“通过”。
⚠ 常见错误: 如果检查点之前的步骤关闭或替换了它所针对的窗口, UFT 当检查点尝试读取对象时,由于该对象已不存在,因此会抛出运行时错误。 HP QTP通常,重新排列受影响的步骤,使目标对象在检查点执行时仍然打开,就足以修复它。
下面的VBScript代码片段展示了通过以下方式表达的相同想法: UFT 自动化对象模型:一个返回布尔值的 Check 语句,然后脚本通过 Reporter 对象报告该布尔值。
Dim Result ' Holds the PASS/FAIL outcome of the checkpoint Browser("Flight Reservation").Page("Flight Reservation").WinEdit("Agent Name:").Set "Diana" Browser("Flight Reservation").Page("Flight Reservation").WinButton("OK").Click ' Run the Standard Checkpoint that was inserted after the OK click Result = Browser("Flight Reservation").Page("Flight Reservation").Check(CheckPoint("Flight Reservation Window")) If Result Then Reporter.ReportEvent micPass, "Checkpoint Passed", "Flight Reservation window matches expected values" Else Reporter.ReportEvent micFail, "Checkpoint Failed", "Flight Reservation window does not match expected values" End If
本视频演示了可用的不同检查点类型 UFT/QTP包括标准检查点、位图检查点和数据库检查点的实际应用。
有效利用检查点的最佳实践
检查点的可靠性取决于其所针对的对象和属性。以下实践可确保在被测应用程序发生更改时,检查点仍然准确。
- 检查特定对象,而不是整个页面,以避免因无关的 UI 更改而导致脆弱的测试失败。
- 在执行检查点时,保持已检查对象处于打开状态;重新排序步骤通常是解决上述“找不到对象”运行时错误的一种方法。
- 比较喜欢 数据库 或者使用 XML 检查点而不是位图检查点进行数据验证——位图比较会在字体、分辨率或主题更改时中断,而这些更改与数据无关。
- 当需要在多个测试迭代中运行相同的检查时,从数据表中参数化检查点值。
- 给每个检查点命名,使其具有描述性,以便在测试结果窗口中轻松找到故障。
- 将检查点与同步机制结合使用,例如 Wait 语句或 Sync 这种方法使得在页面加载完成之前,检查永远不会运行。
