You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将Robot Framework自定义关键词纳入库中?

当然可以!把自定义关键词整理成独立的库绝对是解决你当前管理难题的好办法——不仅能让测试用例更整洁,还能大幅提升关键词的复用性和维护效率。下面我分两种最常用的方案给你详细讲操作步骤:

方案一:用Robot资源文件(.resource)管理纯Robot关键词

这个方案适合所有关键词都是用Robot Framework原生语法写的情况,操作最简单:

  • 第一步:创建资源文件
    新建一个后缀为.resource的文件(比如UIKeywords.resource),把你分散的自定义关键词统一移到这个文件里,保持原来的*** Keywords ***区块格式就行。举个例子:
    *** Keywords ***
    Login To System
        [Documentation]    登录到系统,需要传入用户名和密码
        [Arguments]    ${username}    ${password}
        Input Text    id=username    ${username}
        Input Text    id=password    ${password}
        Click Button    id=login-btn
    
  • 第二步:在测试用例文件中导入资源
    在你的测试用例文件的*** Settings ***区块里,用Resource关键字导入这个资源文件,路径可以是相对路径或者绝对路径:
    *** Settings ***
    Resource    ./resources/UIKeywords.resource
    
  • 第三步:直接使用库中的关键词
    导入后,就可以像调用普通关键词一样使用资源文件里的内容了,完全不需要修改原来的调用方式。
方案二:用Python库管理复杂逻辑的关键词

如果你的自定义关键词需要调用Python的复杂逻辑(比如数据处理、接口加密等),或者想更灵活地扩展功能,就适合用Python库的方式:

  • 第一步:编写Python库文件
    新建一个Python文件(比如APICustomLibrary.py),定义一个类,类中的方法就是你的自定义关键词。注意:
    • 方法名可以用下划线分隔,Robot会自动转为空格(比如create_user_account对应关键词Create User Account
    • 可以用robot.api.deco.keyword装饰器自定义关键词显示名称
      举个例子:
    from robot.api.deco import keyword
    
    class APICustomLibrary:
        @keyword("Create New User")
        def create_new_user(self, user_data):
            """创建新用户,传入用户信息字典"""
            # 这里写你的Python逻辑,比如调用接口、处理数据
            processed_data = self._process_user_data(user_data)
            # 假设调用接口的逻辑
            # response = requests.post(url, json=processed_data)
            return processed_data
    
        def _process_user_data(self, data):
            # 私有方法,不会被Robot识别为关键词
            data["create_time"] = "2024-05-20"
            return data
    
  • 第二步:导入Python库到测试用例
    在测试用例的*** Settings ***区块里,用Library关键字导入这个Python文件,同样支持相对/绝对路径,如果把文件放到Python的site-packages目录,直接写库名就行:
    *** Settings ***
    Library    ./libraries/APICustomLibrary.py
    
  • 第三步:调用Python库中的关键词
    在测试用例里直接使用装饰器指定的名称或者方法名对应的关键词:
    *** Test Cases ***
    Create User Test
        ${user_info}    Create Dictionary    username=marta    email=marta@example.com
        ${processed_info}    Create New User    ${user_info}
        Log    处理后的用户信息:${processed_info}
    
一些最佳实践
  • 按功能拆分库:比如把登录相关的关键词放到LoginKeywords.resource,接口相关的放到APILibrary.py,避免单个库文件过大
  • 添加详细文档:不管是资源文件还是Python库,都要给关键词加文档说明,Robot资源文件用[Documentation],Python用docstring,方便团队成员理解和使用
  • 版本控制:把库文件和测试用例一起纳入Git等版本控制系统,方便协作和回溯修改
  • 用RIDE或Robot Framework Inspector预览:这些工具可以帮你快速查看库中的关键词列表和文档,提升开发效率

内容的提问来源于stack exchange,提问作者Marta79

火山引擎 最新活动