3、详解两种可变长参数的用法 【robot framework】

本文详细介绍了RobotFramework中如何使用单值可变长参数(*args)和自由命名可变长参数(**kwargs)。通过示例展示了如何在设置、测试用例和关键字中使用这些特性,并说明了如何处理参数数量和名称的灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

跟Python一样,robot支持用户写两种可变长参数的keyword,对应Python语法的(*kwargs)和(**kwargs)。

1、单值可变长参数

在Robot Framework中,可变长参数通常使用@{args}语法来表示。这种语法允许你将不定数量的参数传递给关键字。下面是一个简单的例子,演示了如何在Robot Framework中使用可变长参数

*** Settings ***

Library    Collections


*** Test Cases ***

Example Test

    # 调用关键字,传递可变长参数

    ${result}    Run Keyword And Return Status    Example Keyword    arg1    arg2    arg3


    # 打印结果

    Log    Result: ${result}


*** Keywords ***

Example Keyword

    [Arguments]    @{args}

    Log    Received arguments: ${args}

    ${length}    Get Length    ${args}

    Log    Number of arguments: ${length}

在上面的例子中,我们定义了一个测试用例 Example Test 和一个关键字 Example Keyword。关键字使用 [Arguments] @{args} 定义了可变长参数。在测试用例中,我们调用了 Example Keyword 并传递了三个参数:arg1、arg2、arg3。

关键字内部,我们使用 Log 关键字打印了接收到的参数 ${args},并使用 Get Length 关键字计算了参数的数量,并将结果打印出来。

运行这个例子,你将看到测试用例输出中包含了传递的参数和参数的数量。

注意:Collections库中的 Get Length 关键字用于获取列表的长度,这里用来展示如何处理可变长参数的数量。你可以根据实际需要选择其他方式来处理可变长参数。

2、自由命名的可变长参数

在Robot Framework中,可以使用&{kwargs}语法表示自由命名的可变长关键字参数。这样的参数允许你在调用关键字时传递任意数量的关键字参数。下面是一个例子,演示了如何在Robot Framework中使用自由命名的可变长关键字参数:

*** Settings ***

Library    Collections


*** Test Cases ***

Example Test

    # 调用关键字,传递自由命名的可变长关键字参数

    ${result}    Run Keyword And Return Status    Example Keyword    arg1=value1    arg2=value2    arg3=value3


    # 打印结果

    Log    Result: ${result}


*** Keywords ***

Example Keyword

    [Arguments]    &{kwargs}

    Log    Received keyword arguments: ${kwargs}

    ${num_args}    Get Length    ${kwargs}

    Log    Number of keyword arguments: ${num_args}

在上面的例子中,我们定义了一个测试用例 Example Test 和一个关键字 Example Keyword。关键字使用 [Arguments] &{kwargs} 定义了自由命名的可变长关键字参数。在测试用例中,我们调用了 Example Keyword 并传递了三个关键字参数:arg1、arg2、arg3,分别对应值value1、value2、value3。

关键字内部,我们使用 Log 关键字打印了接收到的关键字参数 ${kwargs},并使用 Get Length 关键字计算了参数的数量,并将结果打印出来。

运行这个例子,你将看到测试用例输出中包含了传递的关键字参数和关键字参数的数量。

这样,你可以在关键字内部处理任意数量的关键字参数,而不需要提前知道参数的名称。

3、两种可变长参数的混合使用

用例一,这是Process库中的Run Process关键字。它的签名是command, *arguments, **configuration,这意味着它接受要执行的命令(command)、其参数作为可变数量的参数(*arguments),最后是可选的配置参数作为自由命名参数(**configuration)。

*** Test Cases ***

Free Named Arguments

    Run Process program.py arg1 arg2 cwd=/home/user

    Run Process program.py argument shell=True env=${ENVIRON}

用例二,我们创建一个用于运行上述示例中program.py的Keyword。这个Run Program接受所有位置参数和命名参数,并将它们连同要执行的命令的名称一起传递给Run Process。


 

*** Test Cases ***

Free Named Arguments

    Run Program    arg1    arg2    cwd=/home/user

    Run Program    argument    shell=True    env=${ENVIRON}


*** Keywords ***

Run Program

    [Arguments]    @{args}    &{config}

    Run Process    program.py    @{args}    &{config}

更多参考:

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#variable-number-of-arguments

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值