lyyyuna 的小花园

动静中之动, by

RSS

Robot Framework 新版教程 - 使用测试库

发表于 2026-03

测试库包含了那些最底层的关键字(通常称为库关键字),它们负责与被测系统进行实际交互。所有测试用例都需要使用来自某个库的关键字,通常通过更高层级的用户关键字间接调用。本节说明如何引入测试库以及如何使用它们提供的关键字。创建测试库将在单独的章节中描述。

导入库

测试库通常使用 Settings section 中的 Library 设置导入,也可以使用 Import Library 关键字导入。

使用 Library 设置

库通常在 Settings section 中通过 Library 设置导入,其值为库名称或路径。与大多数其他数据不同,库名称或路径区分大小写和空格。如果库在某个包中,则必须使用包含包名的完整名称。

当库需要参数时,参数列在库名称之后的列中。测试库导入中可以使用默认值、可变数量参数和命名参数,与关键字参数的用法类似。库名称和参数都可以使用变量设置。

*** Settings ***
Library    OperatingSystem
Library    path/to/MyLibrary.py
Library    my.package.TestLibrary
Library    LibraryAcceptingArguments    arg1    arg2
Library    ${LIBRARY}

可以在套件文件、资源文件和套件初始化文件中导入测试库。在所有这些情况下,导入库中的所有关键字在该文件中都可用。对于资源文件,这些关键字在使用该资源文件的其他文件中也可用。

使用 Import Library 关键字

引入测试库的另一种方式是使用 BuiltIn 库中的 Import Library 关键字。该关键字接受库名称或路径以及可能的参数,方式与 Library 设置相同。导入库中的关键字在使用 Import Library 关键字的测试套件中可用。这种方式在测试执行开始时库尚不可用、需要通过其他关键字使其可用的场景中很有用。

*** Test Cases ***
Example
    Do Something
    Import Library    MyLibrary    arg1    arg2
    KW From MyLibrary

指定要导入的库

要导入的库可以通过库名称或库路径来指定。无论是使用 Library 设置还是 Import Library 关键字导入库,这两种方式的工作方式都相同。

使用库名称

指定要导入的测试库最常见的方式是使用其名称。在这种情况下,Robot Framework 会尝试从模块搜索路径中查找实现该库的类或模块。通过某种方式安装的库应该会自动出现在模块搜索路径中,但对于其他库,可能需要单独配置搜索路径。

*** Settings ***
Library    OperatingSystem
Library    CustomLibrary    possible    arguments
Library    librarymodule.LibraryClass

这种方式的最大好处是,当模块搜索路径配置好之后(通常使用自定义启动脚本),普通用户不需要关心库实际安装在哪里。缺点是将自己的(可能非常简单的)库添加到搜索路径中可能需要一些额外的配置。

使用库的物理路径

指定要导入的库的另一种机制是使用文件系统中的路径。该路径被视为相对于当前测试数据文件所在目录的路径,与资源文件和变量文件的路径处理方式类似。这种方式的主要好处是不需要配置模块搜索路径。

如果库是一个文件,路径必须包含扩展名(即 .py)。如果库实现为一个目录,当使用相对路径时必须以斜杠(/)结尾。使用绝对路径时,结尾斜杠是可选的。以下示例演示了这些不同的用法。

*** Settings ***
Library    PythonLibrary.py
Library    relative/path/PythonDirLib/    possible    arguments
Library    ${RESOURCES}/Example.py

为库设置自定义名称

库名称在测试日志中显示在关键字名称之前,如果多个关键字同名,使用时必须在关键字名前加上库名称作为前缀。库名称通常取自实现它的模块或类名称,但在以下情况下可能需要修改:

指定新名称的基本语法是在库名称后面加上 AS(区分大小写),然后是新名称。指定的名称将显示在日志中,并且在使用关键字的全名(LibraryName.Keyword Name)时必须使用该名称。

*** Settings ***
Library    packagename.TestLib    AS    TestLib
Library    ${LIBRARY}    AS    MyName

库的参数放在原始库名称和 AS 标记之间。以下示例展示了如何使用不同参数多次导入同一个库:

*** Settings ***
Library    SomeLibrary    localhost        1234    AS    LocalLib
Library    SomeLibrary    server.domain    8080    AS    RemoteLib

*** Test Cases ***
Example
    LocalLib.Some Keyword     some arg       second arg
    RemoteLib.Some Keyword    another arg    whatever
    LocalLib.Another Keyword

为测试库设置自定义名称在 Settings section 中导入库和使用 Import Library 关键字时都有效。

在 Robot Framework 6.0 之前,为库设置自定义名称时使用的标记是 WITH NAME 而非 AS。旧语法仍然有效,但已被视为弃用,最终将被移除。

标准库

一些测试库随 Robot Framework 一起分发,这些库称为标准库。BuiltIn 库比较特殊,因为它会自动引入,其关键字始终可用。其他标准库需要像其他库一样导入,但无需单独安装。

常规标准库

可用的常规标准库如下(附文档链接):

Remote 库

除了上面列出的常规标准库外,还有一个 Remote 库,它与其他标准库完全不同。它本身没有任何关键字,而是充当 Robot Framework 与实际测试库实现之间的代理。这些库可以运行在与核心框架不同的机器上,甚至可以使用 Robot Framework 原生不支持的语言实现。

更多信息请参阅单独的"远程库接口"章节。

外部库

任何不属于标准库的测试库,按定义都是外部库。Robot Framework 开源社区实现了多个通用库,如 SeleniumLibrary 和 SwingLibrary,它们并未随核心框架打包。公开可用库的列表可在 http://robotframework.org 上找到。

通用库和自定义库显然也可以由使用 Robot Framework 的团队自行实现。更多信息请参阅"创建测试库"章节。

不同的外部库可能有完全不同的安装和使用机制。它们有时还可能需要单独安装一些其他依赖。所有库都应该有清晰的安装和使用文档,并且最好能自动化安装过程。

lyyyuna 沪ICP备2025110782号-1