Logger 类是我们在 Notes 项目中定义使用的日志工具,可以支持多层级、多类型的日志记录。在例四中,我们用到了其中的三个日志函数:
1、logDetail(expression):记录步骤基本信息
2、logCompareFatal(expected, actual, vp):记录步骤验证结果,如果比较失败,停止当前用例。
3、logCompare(expected, actual, vp):记录验证点,返回 boolean 值表示比较结果
我们之所以对关键步骤验证用到 logCompareFatal,是因为这些步骤不能正确执行的话,后面的验证和后续步骤也就失去继续执行的意义。与其浪费时间执行无意义的操作,不如停止用例,及时做出错误清理,同时记录错误信息,如截屏,和输出验证信息。通过完善的步骤检查和日志记录,我们可以在脚本发现错误的时候借助日志分析直接定位到出现问题的步骤。同时,您可能注意到我们在 exists 和 waitForNonExistence 函数中使用了超时设置,可以在保证被测程序有足够响应时间的情况下,尽可能的节约测试执行时间。如果您希望了解关于执行环境清理以及步骤间等待的更多细节,请参考本系列的第二篇文章。
日志的艺术
日志对自动化测试而言至关重要,而好的日志工具可以帮助我们提高测试脚本的输出质量以及问题定位分析效率。在 Notes 项目中,我们实现了自定义的 Logger 类以支持各种特定的输出需求。下面,让我们一起来看一看日志中都可以包括一些什么样的内容。
图 2. Notes 自动测试用例日志
如图 2 所示,Notes 的日志输出是一个 html 格式的文件,提供了验证点结果,用例结果和发生错误的截图。Notes 的日志工具支持以下功能:
1、自动记录测试步骤 (TESTPLAN)
2、隐藏和显示不同级别日志的选择按钮
3、按照关键词筛选显示日志内容
4、截图链接 (IMAGE)
5、被测产品日志链接 (IMAGE 和 NOTES LOG FILE)
6、记录生成日志的位置 ("CALLSTAMP")
7、记录日志生成的时间 (TIMESTAMP)
8、记录测试环境配置信息 (SETTINGS)
自动记录测试步骤:这一功能自动记录了每一步操作的执行过程,可以帮助我们分析步骤是否已经正确执行。在下一节中,我们会详细介绍。