「这是我参与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包
在robot库文件Libraries中,我们可以看到RobotFramework内置的系统关键字
我们随机打开一个库如Builtin查看内部实现方式如下
2. 创建导入Python库
根据上述,查看了RobotFramework 官方内置库的实现的方式,依葫芦画瓢方式创建自定义库。
创建自定义RobotFramework库需要三个步骤:
-
在python安装目录Lib\site-packages下新建文件目录。(文件目录名字就是库名)如:PYCLibrary
-
在新建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
-
同时,在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
注意:库没有导入成功时,库名会被高亮成红色
-
在RIDE工具栏,点击K标记按钮进入,选择Source栏选择 PYCLibrary库可以查看到我们创建的有三个关键字
-
进入到 Testcase 中,我们创建一条用例,使用testlib_login方法
testpyc testlib login Juejin 1234567
-
单独运行textpyc,结果日志输出如图所示
4. 报错现象
我们在导入库,会遇到系统提示关键字库标红现象,我们需要进行如下步骤:
-
自动关键字的Python包需要放置Python安装目录Lib\site-packages下
-
Python包文件结结构需要满足如下
/--custLibrary /--- __init__.py /---Keyword.py
-
在系统环境变量中添加PYTHOPATH,值为自定义Python包路径
-
在命令行中输入如下命令,可以查看自定义关键字Python包的路径及名称
>python
>>> import sys
>>> sys.path
- 在RIDE中添加Library库路径
总结
本期,主要对Robotframework框架创建自定义关键字库步骤进行实操和学习。
以上是本期内容,欢迎大佬们点赞评论,下期见~~