Robot Framework:带参数关键字失败测试与Python函数断言问题
解决Robot Framework中验证带参数Python函数返回值的问题
嘿,这个场景我太熟悉了!Robot Framework的Should Be True确实只接受1-2个参数,没法直接把带参数的函数调用塞进去,但有几个简单的办法能解决:
方法1:用Run Keyword包裹函数调用
Run Keyword关键字的作用就是执行指定的关键字/函数并返回它的结果,刚好可以用来给Should Be True提供验证值。写法如下:
Should Be True Run Keyword Check Value ${nTimes} ${nSeconds} ${expectedValue}
这样Run Keyword会先执行Check Value并返回布尔结果,再交给Should Be True去验证是否为真。
方法2:先存储结果再验证
如果觉得上面的写法有点绕,也可以先把函数的返回值存到变量里,再用Should Be True验证,可读性更强:
${check_result} = Check Value ${nTimes} ${nSeconds} ${expectedValue} Should Be True ${check_result}
这种方式的好处是,如果你后续还需要用到这个结果,直接用变量就行,不用重复调用函数。
方法3:封装自定义关键字(推荐复用场景)
如果这个验证逻辑会在多个用例里用到,不如封装成一个自定义关键字,以后调用起来更简洁:
*** Keywords *** Validate Check Value Is True [Arguments] ${nTimes} ${nSeconds} ${expectedValue} ${result} = Check Value ${nTimes} ${nSeconds} ${expectedValue} Should Be True ${result}
之后在测试用例里直接调用:
Validate Check Value Is True 5 10 ${expected}
另外补充一句:Robot Framework里确实没有类似编程语言里的括号语法,能直接把带参数的函数调用作为参数传递,所以上面这些是最常用的解决思路。
内容的提问来源于stack exchange,提问作者AronAtVW




