Robot Framework:能否直接将Python函数返回值作为关键字参数?
如何在Robot Framework中直接将Python函数返回值作为关键字参数?
当然可以,你只需要使用Robot Framework的内嵌表达式语法,把Python函数调用包裹在${}中,就能直接将返回值作为关键字的参数传递,完全不需要临时变量。
问题原因
你之前的写法之所以无效,是因为Robot把identifier和id=a当成了两个独立的字符串参数传给Log To Console,而没有执行这个Python函数并取其返回值。
正确实现方式
先保持你的data.py函数不变:
def identifier(id): data = {'a' : 'jerry', 'b' : 'kramer', 'c' : 'elaine'} return data[id]
然后修改Robot测试用例,用${}包裹函数调用:
*** Settings *** Library data.py *** Test Cases *** Implicit Call Log To Console ${identifier(id=a)}
执行这个测试用例,控制台会直接输出jerry,完全符合你的需求。
通用用法
这个语法适用于所有Robot关键字,不管你要给哪个关键字传参数,只要把函数调用放在${}里就行。比如函数有多个参数时:
# 位置参数传值 Some Keyword ${another_func("hello", 123)} # 命名参数传值 Some Keyword ${another_func(name="foo", value=456)}
内容的提问来源于stack exchange,提问作者Steen
相关产品推荐
相关产品推荐

