Robot Framework 是一款开源测试自动化框架,更多用于验收测试(ATDD)和机器人流程自动化(RPA)。

框架采用关键字驱动的方式来实现测试脚本的开发,可以通过集成所有内置关键字库、第三方关键字库来构建自动化测试脚本,用户还可以使用与创建测试用例相同的语法,整合现有的关键字提取出更高级别的关键字。

前期博客中曾经介绍了如何自定义Robot Framework 的关键字库以及如何拓展,本文将继续介绍Robot Framework的拓展功能 – 监听器

监听器接口

Robot Framework内置监听器接口,可以用于获取所有与测试有关的信息并进行定制,你可以实现:监听获取测试执行的结果状态、在测试失败时自动发送邮件提醒、与其他系统进行接口通信、在测试执行中动态修改执行结果记录。

监听器本质是具有某些特殊方法的类和模块,你可以使用Python或Java语言来实现一个监听器。监听器需要使用命令行来进行指定,从而在特定的时间、测试节点执行用户实现的函数、方法、逻辑。

接下来我将使用Python语言来演示如何实现一个监听器接口。

开启监听器

通过在命令行中使用–listener,可以启动监听器,监听器的名称作为该选项的参数,监听器的名称也就是你创建的类或模块的名称。

命令行的其他用法:

Copy to Clipboard

监听器内置方法

Robot Framework会在测试脚本执行前实例化监听器对象,并执行该监听器实现(重写)的函数。在测试执行的不同节点,监听器的不同函数将被自动执行。

下表介绍了监听器提供的方法:

方法 参数 解释
start_suite data, result 测试套件执行前被调用

data和result参数表示测试套件本体和执行结果

end_suite data, result 测试套件执行结束后被调用

data和result参数表示测试套件本体和执行结果

start_test data, result 测试执行前被调用

data和result参数表示测试本体和执行结果

end_test data, result 测试执行结束后被调用

data和result参数表示测试本体和执行结果

log_message message 当任意关键字需要写入日志时被调用

message参数表示如要被写入的日志内容

message message 当Robot Framework需要写入日志时被调用

message参数表示如要被写入的日志内容

output_file path 将要写入output文件时被调用

path参数表示文件的绝对路径

log_file path 将要写入log文件时被调用

path参数表示文件的绝对路径

report_file path 将要写入report文件时被调用

path参数表示文件的绝对路径

xunit_file path 将要写入xunit文件时被调用

path参数表示文件的绝对路径

debug_file path 将要写入debug文件时被调用

path参数表示文件的绝对路径

close 所有测试都执行完成后被调用

监听器样例

获取执行信息

下面的样例代码实现了将所有测试执行信息写入临时文件

Copy to Clipboard

修改执行结果

下面的样例代码实现了为测试执行设置超时时间,如果测试执行时间超过上限时间,会自动在测试执行后修改结果为失败

Copy to Clipboard

结论

拥有强大的拓展库和插件的Robot Framework框架可以大量减少脚本编写时间,节省人力成本,并使手工工程师能够完成自动化脚本的编写。

如果想了解更多关于Robot Framework的使用和更多关于界面自动化的最佳实践,请联系迪原