RobotFramework测试框架(8)--用户关键字

本文介绍了RobotFramework中关键字的分类,包括系统关键字和用户关键字,以及如何通过Arguments和Teardown进行参数传递和后置操作。重点讲解了RETURN语句和CalculateSum关键字的例子,以及如何在Python代码中处理列表数据的不同方法。
摘要由CSDN通过智能技术生成

RF中的关键字可以理解为类“函数”的机制,可分为系统关键字和用户关键字。
1)系统关键字通过脚本开发相应的类和方法,从而实现某一逻辑功能。
2)根据业务的需求利用现有的系统关键字或自定义的关键字,把多个重复的步骤集合在一起组成用户关键字。

用户关键字一般存放在资源文件中。

RF关键字同python中函数的机制一样,支持不带参数,带参数,带返回值几种形式的关键字。
用户关键字的设置有
● Documentation:文档;
● Arguments:关键字的传入参数;
● Teardown:和Case的类似,设置关键字执行完成时的动作;
● Timeout:和Case的类似,运行超时的时间设置;● Return Value:返回值。

关键字 Arguments

不带参数

单击应用中心菜单
    Click Element   locator

带参数

切换iframe
    [Arguments]     ${locator}
    Select Frame    ${locator}

带默认参数

打开浏览器
    [Arguments]     ${url}  ${browser}=chrome
    Open Browser    ${url}    ${browser}

关键字 [Teardown]

用户关键字中进行后置操作

关键字 RETURN

假设我们有一个关键字,名为Calculate Sum,这个关键字的功能是接收两个数字作为参数,计算它们的和,然后返回结果。

首先,在Robot Framework的.robot文件中定义这个关键字:

*** Keywords ***
Calculate Sum
    [Arguments]    ${num1}    ${num2}
    ${sum}=    Set Variable    ${num1} + ${num2}
    [Return]    ${sum}

在这个例子中,[Arguments]用于定义关键字的输入参数,${num1}${num2}是传入的两个数字。Set Variable关键字用于计算这两个数字的和,并将结果存储在${sum}变量中。最后,[Return]语句用于返回这个计算结果。

接下来,在测试用例中调用这个关键字,并处理返回的结果:

*** Test Cases ***
Sum Test
    ${result}=    Calculate Sum    10    20
    Log    The sum is: ${result}

在这个测试用例中,Calculate Sum关键字被调用,并传入10和20作为参数。关键字执行后返回的结果被存储在${result}变量中。然后,使用Log关键字将结果打印到日志中。

执行这个测试用例时,你会在日志中看到类似这样的输出:

The sum is: 30

这表明Calculate Sum关键字成功执行,并返回了正确的结果。通过RETURN语句,我们实现了关键字间的数据传递,使得测试更加灵活和模块化。

请注意,RETURN语句只返回关键字的结果,并不会结束整个测试用例的执行。测试用例会继续执行后续的步骤,直到所有步骤都完成。

py文件定义关键字

在Robot Framework(RF)中,关键字(Keywords)通常用于定义测试用例中的可重用步骤。虽然Robot Framework本身并不直接支持在关键字定义中直接传递列表作为参数(因为它使用空格分隔的语法),但你可以通过几种方法间接地实现这一功能。

以下是一些方法,你可以使用它们来在Robot Framework的关键字中传递类似列表的数据:

方法 1:使用分隔符分割字符串

你可以在关键字中接收一个由特定分隔符(如逗号)分隔的字符串,然后在关键字内部将其分割为列表。

关键字定义(Python):

from robot.api import logger
from robot.libraries.BuiltIn import BuiltIn

def my_keyword(items_str, delimiter=','):
    items = items_str.split(delimiter)
    for item in items:
        logger.info(f"Processing item: {item}")

Robot Framework测试用例:

*** Settings ***
Library    my_library.py

*** Test Cases ***
Example Test
    My Keyword    item1,item2,item3

方法 2:使用字典或JSON字符串

如果你的数据结构更复杂,你可能希望使用字典或JSON字符串。然后,你可以在关键字内部使用Python的json模块来解析它。

关键字定义(Python):

import json
from robot.api import logger

def my_keyword(json_str):
    try:
        data = json.loads(json_str)
        for key, value in data.items():
            logger.info(f"Processing {key}: {value}")
    except json.JSONDecodeError as e:
        logger.error(f"Invalid JSON: {e}")

Robot Framework测试用例:

*** Settings ***
Library    my_library.py

*** Test Cases ***
Example Test
    My Keyword    '{"item1": "value1", "item2": "value2"}'

在这里插入图片描述

方法 3:使用变量文件或环境变量

对于更复杂的数据集,你可能希望使用变量文件(如YAML或JSON文件)或环境变量来存储数据,并在测试用例中引用它们。然后,你可以在关键字中读取这些文件或变量。

方法 4:使用自定义库和类

你还可以创建一个自定义的Python库和类,该类具有用于处理列表数据的方法。然后,你可以在Robot Framework测试用例中实例化该类并调用其方法。这种方法提供了更大的灵活性和控制力。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值