这里有三个文件list.robot,code.json是输入文件,库文件compareLib.py 当我运行这个程序时,它总是返回False,我期待真实,因为列表中存在30 所有文件都存在于同一文件夹中
*** Settings ***
Library SudsLibrary
Library JSONLibrary
Library OperatingSystem
Library compareLib.py
*** Test Cases ***
test json data1
# load file in json object
${json_obj}= Get file code.json
${obj}= evaluate json.loads('''${json_obj}''') json
log ${obj}
${value} = Get Value From Json ${obj} $..code_id
#variable ${value} return list [20,30,40] from code.json file
log to console ${value}
${compare} set variable 30
${contain} = contain_number ${value} ${compare}
log to console ${contain}
示例code.json文件从数组开始'['然后是三个块{}然后是数组关闭块']'
lib文件
这里arg1是列表[20,30,40],arg2是30,我期待True,但它返回false
def contain_number(arg1,arg2):
if arg2 in arg1:
return True
else:
return False
答案 0 :(得分:0)
问题是当你将$ {compare}变量从robotframework传递给python函数时,它就像unicode字符串一样
所以comaprison就像这样 ([30,40,30],u' 30')
U' 30'在$ {Value}列表中找不到。
所以我已经将从robotframework传递的字符串转换为Python文件中的整数,现在应该可以正常工作
def contain_number(arg1,arg2):
arg2=int(arg2)
if arg2 in arg1:
return True
else:
return arg1,arg2,False