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

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

但在某些情况下,你需要定制新的关键字来增强你的测试库,Robot Framework是用Python实现的。但是,你的测试库可能是使用Java或C#编写的。

这篇文章将详细介绍如何定制Robot Framework的关键字库。

定制 Python 测试库

最简单的实现方法是在Python中创建一个模块或类,其方法名直接映射成为关键字的名称,方法的参数即是关键字的参数,方法中的异常则成为关键字的错误信息,方法中控制台的标准输出被存储为关键字的日志,方法的返回值即为关键字的返回值。

创建测试库并设置名称和参数

为你的测试库命名,以便可以在Robot Framework测试脚本中使用相同的名称导入。然后定义方法和参数,如下图所示:

设置测试库作用域

Robot Framework 运行时,每个测试用例之间彼此独立,这意味着每个测试用例都会创建测试库的新的实例。但是在某些情况下,有时测试用例需要共享使用同一个公共库。

可以通过设置类属性ROBOT_LIBRARY_SCOPE来控制测试库的作用域。此属性接收字符串,可以设置为下面三种值:

TEST CASE: 为每个测试用例创建一个新实例

TEST SUITE: 为每个测试套件创建一个新实例

GLOBAL: 测试执行时只创建一个实例

提供文档

你可以使用ROBOT_LIBRARY_DOC_FORMAT属性在源代码中指定文档格式。

导入测试库

现在可以将测试库导入到测试用例中。

你可以搜索、查询新创建的关键字。

调用新创建的关键字,组装你的测试脚本,并执行。

定制C# 测试库

为了实现拓展定制C#测试库,Python for.NET(pythonnet)将作为主要的软件包,它可以使Python无缝地与.NET 4.0+公共语言运行库(CLR)集成。

准备C#测试库

在下面的例子中,我使用了一个购物车解决方案,工程很简单:

Copy to Clipboard

这是添加图书到购物车和计算总价的代码:

创建Python测试库

使用同第一点一样的方式创建一个Python模块或类,并使用pythonnet导入上一步的C#测试库(DLLs),在Python项目中导入.Net模型。

现在你就可以使用Python语言重新设计关键字,直接调用来自C#库的函数。

创建测试用例

将测试库导入测试项目并开始创建测试用例

执行测试用例并查看运行报告

结论

尽管你可以使用以上方法来扩展测试库,尽量减少创建重复的代码,以尽可能多地使用现有的库。但是,不正确的实现也会使脚本的执行效率降低,给调试和分析问题带来更多困难。

联系我们告诉你的意见和项目中遇到的问题。?