概述

支持的编程语言

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

最简单的办法是实现一个模块(用Python), 或者类(用Python或Java), 其中的方法(methods)直接映射为 关键字名称. 关键字接受和方法相同的 参数, 通过抛异常来 报告错误, 通过往标准输出里写入来写 log, 同时可以通过 return返回结果.

动态(Dynamic) API

动态库类要提供一个用于获取实现的关键字名称的方法, 并提供另一个方法来执行具体给定的关键字包括参数. 这样, 要实现的关键字的名称, 可以在运行时动态决定. 其它功能, 如报告状态, 打印日志和返回结果都和静态API类似.

混合(Hybrid) API

静态API和动态API的混合. 类有一个方法用来说明实现了哪些关键字, 这些关键字必须是直接可用的. 除了不是自动发现关键字, 其它功能都和静态API类似.

所有这些API都将在本章进行详述. 所有功能都是基于静态API的工作原理, 所以首先来讨论静态API的内容. 动态库API混合库API 与之的区别在随后的小节中分别讨论.

本章示例大部分都是Python实现, 但是对于Java开发者来说, 理解这些代码并不难.在某些少数情况下, Python API和Java API有所差异, 此时会分别解释.