本篇文章,主要对如何在Robot Framework中使用条件表达式做过程控制作说明。
按照Robot Framework的官方文档介绍,Robot Framework并不建议在TestCase或Keyword的编写中使用条件表达式,应为这样做会使TestCase变得难以理解。它提倡的是将逻辑过程写在自定义的Test Library中,之后再执行Test Library中的方法,并获取其执行结果。尽管如此,RobotFramework还是提供了一些Keyword可以用于条件判断。
1. Run Keyword
Run Keyword可以将一个关键字作为一个参数,并执行该关键字,同时,该关键字可以是从之前的内容中动态获取的变量。举例来说。
我们在自定义的MyLibrary.py库中,增加一个方法,用于进行条件判断,并返回结果。
def get_result(self,arg): if int(arg) > 0: return 'LOG' else: return 'FAIL'
建立TestSuite“IF测试”,建立TestCase“Run_Keyword”,引用MyLibrary.py,编写脚本。
1)编写输入数据>0的脚本
运行,并查看测试结果,此时,“Log”作为“Get Result”的返回结果,赋值给了${key},并在Run Keyword时被执行
2)编写输入数据=0的脚本
运行,并查看测试结果,此时,“Fail”作为“Get Result”的返回结果,赋值给了${key},并在Run Keyword时被执行
2. Run Keyword If / Run Keyword Unless
Run Keyword If 和 Run Keyword Unless 当满足条件表达式要求时,执行指定关键字。可以用于简单的IF/ELSE 逻辑。例如。我们编写脚本如下:
其中 … 用于语句分段。运行测试用例,执行结果为:
对应的Run Keyword Unless的用例及执行结果为:
3. Set Variable If
Set Variable If用于根据表达式,动态的设置变量值。我们编写脚本如下:
执行测试用例,执行结果为:
以上的方法可以用于做if/else简单分支的逻辑处理,对于存在else if等情况时,可以采用如下方法:
对应的执行结果为:
本篇文章,主要对Robot Framework中的条件分支表达式做了介绍。在进行逻辑控制时,与条件分支表达式同样重要的是For循环表达式。下一章,将对循环表达式做介绍。