概述
支持的编程语言
Robot Framework自身使用 Python 编写, 很自然的, 扩展它的测试库也可以使用相同的语言.当使用 Jython 运行时, 也可以使用 Java_ 来实现测试库.纯的Python代码, 只要其没有使用Jython不支持的模块或语法, 在两种情况下都可以运行.当使用Python时, 可以利用 Python C API 使用C语言来实现测试库, 当然, 使用Python的 ctypes 模块调用C代码则更简单.
使用这些原生支持的语言实现的测试库可以同时作为”包装器”, 调用其他语言实现的功能. 一个典型的例子就是 远程库 的实现. 当然还可以另起单独的进程来执行外部脚本或者工具.
小技巧
Python Tutorial for Robot Framework Test Library Developerscovers enough of Python language to get started writing testlibraries using it. It also contains a simple example libraryand test cases that you can execute and otherwise investigateon your machine.
提示
译注: 上面提到的Python Tutorial链接已经失效, 从 这里 看应该也不会再更新, 原内容已经迁移到 GitHub上
不同的测试库API
Robot Framework 有三种不同的测试库API.
静态(Static) API
动态(Dynamic) API
动态库类要提供一个用于获取实现的关键字名称的方法, 并提供另一个方法来执行具体给定的关键字包括参数. 这样, 要实现的关键字的名称, 可以在运行时动态决定. 其它功能, 如报告状态, 打印日志和返回结果都和静态API类似.
混合(Hybrid) API
静态API和动态API的混合. 类有一个方法用来说明实现了哪些关键字, 这些关键字必须是直接可用的. 除了不是自动发现关键字, 其它功能都和静态API类似.
所有这些API都将在本章进行详述. 所有功能都是基于静态API的工作原理, 所以首先来讨论静态API的内容. 动态库API 和 混合库API 与之的区别在随后的小节中分别讨论.
本章示例大部分都是Python实现, 但是对于Java开发者来说, 理解这些代码并不难.在某些少数情况下, Python API和Java API有所差异, 此时会分别解释.