Python Robot Framework 之 创建自定义库

1,400 阅读3分钟

image.png

「这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战

前言

Python RobotFramework框架解析中,我们对 RobotFramework 框架进行了解和熟悉,主要分为四部分:

  • Test Data:使用表格形式进行编写的测试用例
  • RobotFramework:启动测试,进行处理数据、执行测试用例并生成日志和报告
  • Test Libraries:RF系统对测试内容不会感知,所有的动作都由RF交互个测试库来进行并返回结果给RF进行展示
  • System Under Test:测试库中使用的应用接口或者测试驱动程序

其中,Test Library 除了 RF 的 Biltin 不需要在测试用例中导入外,其他库都需要使用Library XXX库的形式提前导入。

如果要使用第三方库,需要先使用 pip 下载库,然后再使用Library导入,否则的话运行测试用例,RF内部会报 Not Found 错误,无法执行测试用例。

RobotFramework 系统非常强大,可以支持多类型的测试,并且可接入自定义库导入。

本期,将学习RobotFramework框架如何创建自定义库使用,打起精神来,Let's go~~

1. RobotFramework测试库概述

我们都知道,RobotFramework框架的强大之处在于可以导入个性化库,因此可以支持不同场景测试。

  • 本期所有的学习,都在Python 3.7 环境中进行的
  • Python 安装的第三方库都安装在python37/Lib/site-packages目录下

首先,我们通过pip 下载Robotframework的框架,可以在site-packages路径找到该RF包

image.png

在robot库文件Libraries中,我们可以看到RobotFramework内置的系统关键字

image.png

我们随机打开一个库如Builtin查看内部实现方式如下

image.png

2. 创建导入Python库

根据上述,查看了RobotFramework 官方内置库的实现的方式,依葫芦画瓢方式创建自定义库。

创建自定义RobotFramework库需要三个步骤:

  1. 在python安装目录Lib\site-packages下新建文件目录。(文件目录名字就是库名)如:PYCLibrary

    image.png

  2. 在新建PYCLibrary文件目录下,创建一个Python文件,扩展名为py。如:PYClibrary.py

    • python文件中我们需要导入 from robot.api.deco import keyword 修饰器
    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    
    # from robot.libraries.BuiltIn import BuiltIn
    from robot.api.deco import keyword
    # from robot.api import logger
    
    
    class MyClass(object):
        def __init__(self):
            pass
    
        @keyword
        def printMsg(self, msg):
            print(msg)
    
        @keyword
        def printMoreMsg(self, **msg):
            for i in msg:
                print(i)
    
        @keyword
        def testlib_login(self, username, password):
            print('username: %s' % username)
            print('password: %s' % password)
    
            if username == 'user' and password == 'password':
                print('Login OK.')
                return True
    
            print('Login Failed.')
            return False
    
  3. 同时,在PYCLibrary目录下,我们还需要创建__init__.py文件,将关键字类直接展示出来,方便RF快速查找。

    #!/usr/bin/env python
    #-*- coding: utf-8 -*-
    
    from .PYClibrary import MyClass
    
    class PYCLibrary(MyClass):
        ROBOT_LIBRARY_SCOPE = 'GLOBAL'
    

3. 使用自定义库方法

  • 在电脑桌面打开RIDE桌面后,我们先在Testcase中导入我们刚刚创建的自定义库PYCLibrary

    image.png

注意:库没有导入成功时,库名会被高亮成红色

  • 在RIDE工具栏,点击K标记按钮进入,选择Source栏选择 PYCLibrary库可以查看到我们创建的有三个关键字 image.png

  • 进入到 Testcase 中,我们创建一条用例,使用testlib_login方法

    testpyc
        testlib login    Juejin    1234567
    
  • 单独运行textpyc,结果日志输出如图所示

    image.png

4. 报错现象

我们在导入库,会遇到系统提示关键字库标红现象,我们需要进行如下步骤:

  1. 自动关键字的Python包需要放置Python安装目录Lib\site-packages下

  2. Python包文件结结构需要满足如下

    /--custLibrary
      /--- __init__.py
      /---Keyword.py
    
  3. 在系统环境变量中添加PYTHOPATH,值为自定义Python包路径

  4. 在命令行中输入如下命令,可以查看自定义关键字Python包的路径及名称

>python
>>> import sys
>>> sys.path
  1. 在RIDE中添加Library库路径

image.png

总结

本期,主要对Robotframework框架创建自定义关键字库步骤进行实操和学习。

以上是本期内容,欢迎大佬们点赞评论,下期见~~