今天和大家在一起看下robot中关于Run Keyword相关的关键字
1:Run Keyword:运行关键字
Name:Run Keyword
Source:BuiltIn <test library>
Arguments:[ name | *args ],其中name可以是动态的,可以是来自另一个关键字的返回值
示例:
在本示例中,通过run keyword调用get time关机找你,将获得的时间赋值给${time}变量
2:run keyword if:当条件满足时运行关键字
Name:Run Keyword If
Source:BuiltIn <test library>
Arguments:[ condition | name | *args ]
示例:
在本示例中,当${status}等于true时,才会执行后面的相关动作,也就是some action
3:run keyword unless:当条件不满足时运行关键字
Name:Run Keyword Unless
Source:BuiltIn <test library>
Arguments:[ condition | name | *args ]
示例:
在本示例中,刚好和示例2相反,只有当${status}不等于true,才会执行后面的相关动作
因此,以上的run keyword if 和run keyword unless可以构建简单的if/else逻辑判断
只有当${status}等于true,执行some action1,当${status}不等于true,执行some action2
4:run keywords:运行多个关键字(比较实用)
Name:Run Keywords
Source:BuiltIn <test library>
Arguments:[ *keywords ]
示例:
对于robot而言,它并没有能一次性执行多个关键字的能力,它需要依赖run keywords这个关键字的配合,这里需要特别强调的是:各个关键字之间链接的AND建议都带上,不管是带参数还是不带参数的关键字,多关键字调用,都要待AND
另外,run keywords链接的各个关键字都是按照顺序依次执行的,并不是同时并行运行的
5:run keyword and return:运行关键字并返回结果
Name:Run Keyword And Return
Source:BuiltIn <test library>
Arguments:[ name | *args ]
示例:
本示例中,通过run keyword and return调用关键字my keyword,并将my keyword关键字返回结果赋值给变量${res}
6:run keyword and return status:获取关键字的返回值,主要是true or false
Name:Run Keyword And Return Status
Source:BuiltIn <test library>
Arguments:[ name | *args ]
示例:
这里用到了“Run Keyword And Return Status”和“Page Should Contain”两个关键字
“Page Should Contain”的作用是,检查当前页是否有“hello world”这条数据
“Run Keyword And Return Status”的作用是,获取“Page Should Contain”的返回值(只有true和false,要么存在“hello world”,要么不存在)
所以在一些if判断中,需要通过true或false来判断,但是又获取不到布尔值时,可以用run keyword and return status
7:run keyword and continue on failure:失败后仍运行指定关键字
Name:Run Keyword And Continue On Failure
Source:BuiltIn <test library>
Arguments:[ name | *args ]
示例:
在正常情况下,运行关键字遇到fail,会抛出异常,但是使用上面的关键字,即使遇到fail,也能继续运行som key关键字
8:run keyword and ignore error:运行关键字并忽略错误
Name:Run Keyword And Ignore Error
Source:BuiltIn <test library>
Arguments:[ name | *args ]
根据参数args运行关键字,并忽略错误,此关键字返回两个值,第一个是pass或fail,第二个是返回值或收到的错误信息
示例:
在本示例中,通过run keyword and ignore error 运行keyword关键字,并返回两个值,然后根据${status}调用不同的关键字,依据run keyword if以及run keyword unless或者通过if、else
9:run keyword if all tests passed:所有测试用例通过后运行关键字
Name:Run Keyword If All Tests Passed
Source:BuiltIn <test library>
Arguments:[ name | *args ]
这个关键字一般只能用在suite teardown
在本示例中,当选择运行的测试用例全部都通过时,在测试运行结束后调用keyword关键字
下面是条件与循环相关的关键字
1:continue for loop:直接继续下一次循环
Name:Continue For Loop
Source:BuiltIn <test library>
Arguments:[ ]
在本示例中,在循环体内当${x_val}变量取值等于world时,就跳过后续的关键字运行,也就是else后面的动作,直接开始下一次循环
2:exit for loop:立即退出循环
Name:Exit For Loop
Source:BuiltIn <test library>
Arguments:[ ]
3:continue for loop if:当条件满足时继续下一次循环
在本示例中,当${x_val}变量取值等于world时,直接跳过本次循环,直接下一次循环
4:exit for loop if:当条件满足时退出循环
Name:Exit For Loop If
Source:BuiltIn <test library>
Arguments:[ condition ]
在本示例中,当${x_val}变量取值等于hello时,直接退出for循环