使用Robot Framework的内置模块

使用Python实现的测试库可以使用Robot Framework的内置模块, 例如, 获取正在执行的测试用例信息, 以及它们在使用的配置信息.

尽管这种和框架通信的机制非常强大, 但是在使用时需要格外小心, 因为并不是所有的API都是被设计来供外部调用的, 它们可能会因为版本的变化而发生巨大的改变.

可用的API

从Robot Framework 2.7版本开始, API文档 单独部署在 :Read the Docs 服务上. 如果你不确定如何使用某个特定的API, 请在 mailing list 里提问.

使用内置库

可使用的最安全的API莫过于 BuiltIn_ 库里的关键字方法. 这些关键字极少变动, 并且每次变动前先将老的用法废弃掉. 其中一个最有用的方法是 replace_variables, 它允许访问当前可用的变量.

下面的例子说明了怎样可以获取到一个很有用的 自动变量 ${OUTPUT_DIR} 的值. 除了例子所示, 还可以在库中使用 set_test_variable, set_suite_variableset_global_variable 来设置新的变量.

  1. import os.path
  2. from robot.libraries.BuiltIn import BuiltIn
  3.  
  4. def do_something(argument):
  5. output = do_something_that_creates_a_lot_of_output(argument)
  6. outputdir = BuiltIn().replace_variables('${OUTPUTDIR}')
  7. path = os.path.join(outputdir, 'results.txt')
  8. f = open(path, 'w')
  9. f.write(output)
  10. f.close()
  11. print '*HTML* Output written to <a href="results.txt">results.txt</a>'

使用 BuiltIn 中的方法唯一需要注意的一点, 所有 runkeyword 方法的变体 都需要特殊处理一下, 它们必须先调用 BuiltIn 模块中的 register_run_keyword 方法注册为 _run keywords. 具体如何使用以及为什么要这么做, 请参阅 register_run_keyword 方法的文档说明.