我的(python)关键字库中有一个返回列表的函数,但是当我将其传递给机器人测试用例时,出现错误“变量@ {LIST}的值不是列表或类似列表的错误” 。这是我的代码
机器人代码:
Generate Data
@{LIST}= Create Data
Do Thing For All Values In List
:FOR ${value} IN @{LIST}
\ Do The Thing ${value}
Python代码:
def create_data():
data = []
for i in range(0, 10):
data_val = do_a_bunch_of_selenium_automation(i)
data.append(data_val)
return data
如何正确执行此操作?谢谢大家。
答案 0 :(得分:1)
在问题代码中,您正在正确地遍历列表。但是,您正在一个测试用例中创建数据,然后尝试在另一个测试用例中使用它。在第一个测试用例中,数据位于局部变量中。
如果要在测试用例之间共享数据,则需要将变量设置为测试套件变量,可以使用内置关键字Set suite variable
Generate Data
@{LIST}= create data
set suite variable @{LIST}
答案 1 :(得分:-1)
说实话,您的例子对我有用。做了一些补充,以得到一个可行的示例,但没什么大不了的:
ListCreationLibrary.py
class ListCreationLibrary(object):
ROBOT_LIBRARY_VERSION = 1.0
def __init__(self):
pass
def create_data(self):
data = []
for i in range(0, 10):
data_val = self.do_a_bunch_of_selenium_automation(i)
data.append(data_val)
return data
def do_a_bunch_of_selenium_automation(self, i):
return "some_string" + str(i)
test_script.robot
*** Settings ***
Library ListCreationLibrary
*** Test Cases ***
TC
${list_example} Create Data
Do Thing For All Values In List ${list_example}
*** Keywords ***
Do Thing For All Values In List
[Arguments] ${LIST}
:FOR ${value} IN @{LIST}
\ Do The Thing ${value}
Do The Thing
[Arguments] ${value}
Log ${value}
将两个文件放在同一目录中,您应该可以。