从几个关键字调用构建机器人框架列表
Build a Robot Framework list from several keyword calls
我有几个 return 基本字符串的机器人框架关键字。
@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
感谢您的帮助。
目前您正在将关键字添加到列表中,而不是从 运行 这些关键字
返回的值
您需要调用关键字来获取返回值并将它们添加到列表中,例如
*** 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']
在我写这篇文章的时候,机器人没有调用内联关键字的能力,所以你想要的东西是不可能直接实现的。
不过,您可以编写自己的关键字来执行此操作。关键字可以接受多个关键字作为参数,使用内置库中的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
我有几个 return 基本字符串的机器人框架关键字。
@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
感谢您的帮助。
目前您正在将关键字添加到列表中,而不是从 运行 这些关键字
返回的值您需要调用关键字来获取返回值并将它们添加到列表中,例如
*** 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']
在我写这篇文章的时候,机器人没有调用内联关键字的能力,所以你想要的东西是不可能直接实现的。
不过,您可以编写自己的关键字来执行此操作。关键字可以接受多个关键字作为参数,使用内置库中的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