默认情况下,测试执行一完成,测试日志会立即默认打开。如果您已经关闭了浏览器,那么您可以在 Functional Test Projects 视图中的 myFunctionalTestProject_logs 节点下找到测试日志。
日志的左侧框架提供了信息的快速导航。右侧边框提供所有细节。
ScriptAssure
滚动到第一个警告处,应如图 19 所示。消息指示“Object Recognition is weak (above the warning threshold)”。这是 UI 上的组件发生变更时的情况。事实上,在两个版本之间开发人员已经对该对象的多个属性进行了变更。在遇到这样的对象时,大多数测试自动化工具没有选择,只能报错,并放弃回归集的余下部分。这是一个实际的问题,如果您进行一个要运行若干小时的回归测试套件,并且您将其设置为整夜工作,然后,您第二天早上来到办公室,发现测试失败了,而您没得到显示失败的结果。
Functional Tester 的 ScriptAssure 能够识别出,这不是它在录制过程中看到的同一个组件。回放过程中的暂停是 Functional Tester 在等着看是否出现匹配的对象。在指定的超时时间过去之后,Functional Tester 确定屏幕上的对象与它所期望的足够接近,记录一个警告,并继续使用该对象。您可以配置许多属性权值、超时值,和阀值来定制 ScriptAssure 的行为,以满足您的需求。
图 19. 测试日志中的 ScriptAssure 警告

定制日志信息
在日志中滚动到下一个事件,名为“Screen Snapshot。”该事件是您所输入的定制代码的结果。单击 Click to view full size 的链接。该屏幕快照,如图 20 所示,是在回放过程中,作为您添加到测试中的logInfo() 命令的结果而被获取。注意所使用的信用卡号为“1111 2222 3333 4444”——来自于数据池第一行的值。
图 20. 第一个屏幕快照

单击浏览器中的后退(Back)按钮,回到日志中。
研究验证点状态
在日志中找到第一个验证点(VP)。测试日志中对于此验证点的条目将被称为“Verification Point [YourOrderHasBeenReceivedYou] passed,”并且应该类似图 21。您在此 VP 处使用了正则表达式来适应动态订单号。
图 21. 通过 VP 日志事件

在日志中找到下一个验证点。该事件被称作“Verification Point [existingTable_contents] failed”。单击View Results 链接,以更近一步调查此次失败。图 22 中所示的 Verification Point Comparator 以红色强调事实,VP 失败是因为,尽管订了 CD “Symphonies Nos. 5 & 9”,但是应用程序为“String Quartets Nos. 4 & 14”下了订单。您已经分析了 ClassicsJava 应用程序的版本 B 中的回归测试。一些对代码所做的看上去不相关的变更导致了在订购过程中使用了错误的内容。这是功能回归测试中的真正价值 —— 找到操作中无意识的变更。通过 Functional Tester 进行测试自动化,Functional Tester 实现了对每个版本都能进行回归测试的目标。
图 22. Verification Point Comparator

关闭 Verification Point Comparator。
验证数据池操作
继续在日志中滚动。您会注意到同组事件再次重复。当使用数据池中的第二行数据时,该迭代出现了。您可以通过打开第二个“Screen Snapshot”事件来确认数据池的操作。信用卡号是“1234 1234 1234 1234”,来自数据池第二行的值,如图 23 所示。
图 23. 第二个屏幕快照
