RobotFramework流程控制(最新版本)

文章目录

    • [一 分支流程](#一 分支流程)
      • [1. 关键字:Run Keyword If](#1. 关键字:Run Keyword If)
      • [2. 关键字:IF/ELSE](#2. 关键字:IF/ELSE)
      • [3. 嵌套IF/ELSE](#3. 嵌套IF/ELSE)
      • [4. 关键字:Set Variable If](#4. 关键字:Set Variable If)
    • [二 循环流程](#二 循环流程)
      • [1. 普通FOR循环](#1. 普通FOR循环)
      • [2. 嵌套FOR循环](#2. 嵌套FOR循环)
      • [3. 退出循环](#3. 退出循环)
      • [4. 其它常用循环](#4. 其它常用循环)

一 分支流程

1. 关键字:Run Keyword If

Run Keyword If 关键字是RF在4.0版本 之前用于控制分支流程的一个常用关键字,在4.0版本 RF引入了IF/ELSE ,可能以后就使用IF/ELSE替代Run Keyword If了,现在最新版本6.1还是同时支持Run Keyword If和IF/ELSE的。
Run Keyword If 的语法如下

python 复制代码
Run Keyword If    条件    动作
...    ELSE IF    条件    动作
...    ELSE If    条件    动作
...    ...        ...     ...
...    ELSE    动作

要注意的是ELSE IF和ELSE 一定要大写。

示例如下


2. 关键字:IF/ELSE

IF/ELSE是RF在4.0版本引入的一个控制分支流程的关键字,它的作用同Run Keyword If一样,但比Run Keyword If简洁。它的语法如下

python 复制代码
IF    条件    动作
...   ELSE IF    条件    动作
...   ELSE IF    条件    动作
...   ...        ...     ...
...   ELSE    动作

其中要注意的是ELSE IF和ELSE 也要大写。

示例如下

IF/ELSE 还有一种用法,就是当IF后面没有接ELSE IF或ELSE时,IF后面要接END,即IF/ELSE变成IF/END,如下

目前6.1版本ELSE IF和ELSE后面的关键好像不会高亮显示,但是IF/END后面的关键字会高亮显示,简单的逻辑就用IF/END吧。

3. 嵌套IF/ELSE

RF在4.0版本以前用Run Keyword If 来控制分支流程的时候是不支持IF嵌套的,在引入了IF/ELSE后才支持的IF嵌套。IF嵌套示例如下

4. 关键字:Set Variable If

Set Variable If 也是RF中比较常用的If关键字,用来在满足条件判断下给变量赋值。
Set Variable If 语法如下

python 复制代码
Set Variable If    条件    值

使用示例:

二 循环流程

1. 普通FOR循环

最新版本RF中的FOR循环用关键字FOR 替代了以前的 :FOR,其格式越来越和python类似了。FOR循环语法如下

python 复制代码
FOR    ${item}    IN    遍历对象
	   keyword
END

其中要注意的是在遍历列表或字典对象 的时候要用 @{list} 或者 &{dict} ,示例如下

2. 嵌套FOR循环

在RF6.1版本已经可以实现FOR嵌套循环(具体在哪个版本引入的暂还不知道),有了嵌套的FOR循环,在编写RF的时候就会更加得心应手。

语法就是两个FOR循环嵌套,如下

3. 退出循环

RF5.0版本之前 结束整个循环用的是关键字Exit For LoopExit For Loop If ;结束本次循环用的是关键字Continue For LoopContinue For Loop If ,而在RF5.0版本后 分别用BREAKCONTINUE来替换前面的关键字。如下

  • 退出整个循环Exit For Loop,Exit For Loop If和BREAK


  • 退出本次循环Continue For Loop,Continue For Loop If和CONTINUE



    其中要注意的是:BREAK,CONTINUE必须大写

4. 其它常用循环

除了标准的FOR循环外,还有一些比较常用的其它FOR循环,如下

  • FOR...IN RANGE循环
    语法:
python 复制代码
FOR    ${item}    IN RANGE    start  end  step
	keyword
END

它的效果其实和python中的for...in range()效果是一致的,如下

  • FOR...IN ENUMERATE循环
    语法:
python 复制代码
FOR    ${index}    ${value}    IN ENUMERATE    操作对象
	keyword
END

它的效果其实和python中的for...in enumerate()效果是一致的,如下

  • FOR...IN ENUMERATE循环
    语法:
python 复制代码
FOR    ${index}    ${value}    IN ZIP   操作对象1    操作对象2    
	keyword
END

它的效果其实和python中的for...in zip()效果是一致的,如下

相关推荐
测试杂货铺6 小时前
如何用postman做接口自动化测试及完美的可视化报告?
自动化测试·软件测试·测试工具·职场和发展·jenkins·压力测试·postman
测试老哥11 小时前
Jmeter测试脚本编写技巧
自动化测试·软件测试·功能测试·测试工具·jmeter·职场和发展·性能测试
测试老哥2 天前
Python自动化测试图片比对算法
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例
互联网杂货铺2 天前
几个常见的Jmeter压测问题
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
测试19983 天前
Chrome+Postman做接口测试
自动化测试·软件测试·chrome·测试工具·职场和发展·测试用例·postman
小码哥说测试3 天前
Charles简单压力测试
自动化测试·软件测试·网络协议·selenium·接口测试·压力测试·postman
钱钱钱端4 天前
软件测试工程师面试整理 —— 编程与自动化!
自动化测试·软件测试·selenium·测试工具·面试·职场和发展
钱钱钱端4 天前
技术分享 —— JMeter接口与性能测试实战!
自动化测试·软件测试·python·jmeter·职场和发展·压力测试·性能测试
钱钱钱端4 天前
Pytest参数详解 — 基于命令行模式!
自动化测试·软件测试·python·jmeter·职场和发展·pytest·压力测试
测试19984 天前
什么是自动化测试?
自动化测试·软件测试·python·测试工具·程序人生·职场和发展·测试用例