从多个关键字调用构建机器人框架列表
Posted
技术标签:
【中文标题】从多个关键字调用构建机器人框架列表【英文标题】:Build a Robot Framework list from several keyword calls 【发布时间】:2022-01-06 05:52:39 【问题描述】:我有几个返回基本字符串的 Robot Framework 关键字。
@keyword
def keyword_one():
return 'one'
@keyword
def keyword_two():
return 'two'
在机器人测试用例中,我尝试使用这些项目构建一个列表,但我无法弄清楚如何做到这一点。
*** Test Cases ***
Test Case List
@my_list= Create List Keyword One Keywork Two
我尝试了几种语法,但无法正常工作。 当然,像下面这样的工作(硬编码值)。
*** Test Cases ***
Test Case List
@my_list= Create List one two
感谢您的帮助。
【问题讨论】:
【参考方案1】:在我写这篇文章的时候,机器人没有内联调用关键字的能力,所以你想要的不是直接可能的。
不过,您可以编写自己的关键字来执行此操作。关键字可以接受多个关键字作为参数,并使用内置库中的run keyword
来运行关键字。
例如,以下关键字定义创建了一个关键字,该关键字从多个关键字创建结果列表:
用python编写的关键字
如果您想尝试一下,请将文件命名为 example.py
from robot.libraries.BuiltIn import BuiltIn
builtin = BuiltIn()
def create_list_from_keywords(*keywords):
result = []
for keyword in keywords:
result.append(builtin.run_keyword(keyword))
return result
示例测试
*** Settings ***
Library example.py
*** Keywords ***
Keyword one
return from keyword one
Keyword two
return from keyword two
*** Test cases ***
Example
@actual= create list from keywords Keyword one Keyword two
@expected= create list one two
Should be equal $actual $expected
基于机器人的关键字定义
如果您对 python 不满意,这里有一个基于机器人的关键字定义:
Create list from keywords
[Arguments] @keywords
[Return] @result
@result= create list
FOR $keyword IN @keywords
$keyword result= Run keyword $keyword
Append to list $result $keyword result
END
【讨论】:
感谢您提供完整的答案,这正是我想要的!【参考方案2】:此时您正在将关键字添加到列表中,而不是运行这些关键字返回的值
您需要调用关键字来获取返回值并将它们添加到列表中,例如
*** Test Cases ***
Test Case List
$keyword_one_val Keyword One
$keyword_two_val Keyword Two
@my_list= Create List $keyword_one_val $keyword_two_val
log to console $my_list
哪个输出:
['one', 'two']
【讨论】:
以上是关于从多个关键字调用构建机器人框架列表的主要内容,如果未能解决你的问题,请参考以下文章