RF(For 循环)
一、介绍:RobotFrameWork 支持 FOR 循环语句,语法和 Python 的语法基本相同,但 RobotFrameWork 中,"FOR" 关键字前面需要增加一个 ":",写成 ":FOR",其它与 Python 的语法相同
二、For 循环实例
- FOR IN
- 这种结构,循环的次数由 "IN" 关键字后面的变量个数控制
- 在 FOR 循环语句结束行加上 END,防止报错 "FAIL : FOR loop contains no keywords
FOR ${var} IN Apple Banana Grape
log ${var}
END
#结果如下
20200407 22:06:31.272 : INFO : Apple
20200407 22:06:31.273 : INFO : Banana
20200407 22:06:31.274 : INFO : Grape
@{list} Create List Apple Banana Grape
FOR ${var} IN @{list}
log ${var}
END
#结果如下
20200407 22:09:51.195 : INFO : @{list} = [ Apple | Banana | Grape ]
20200407 22:09:51.196 : INFO : Apple
20200407 22:09:51.197 : INFO : Banana
20200407 22:09:51.198 : INFO : Grape
- FOR IN RANGE
- 这种写法更常用一些,"IN RANGE" 后面跟一个整数型的数字的范围,循环的次数受数字的范围控制
- 从结果我们可以看出,${var} 的值从 3 开始,一直被赋值到 4,循环 2 次
FOR ${var} IN RANGE 3 5
log ${var}
END
#结果如下
20200407 22:12:30.172 : INFO : 3
20200407 22:12:30.173 : INFO : 4
- "IN RANGE" 后面也可以只写一个数字,表示范围的下限默认是0
FOR ${var} IN RANGE 3
log ${var}
END
#结果如下
20200407 22:14:01.269 : INFO : 0
20200407 22:14:01.270 : INFO : 1
20200407 22:14:01.271 : INFO : 2
- 以上两种写法,步长默认步长都是 1,我们也可以修改步长,如下修改步长为 10
FOR ${var} IN RANGE 20 40 10
log ${var}
END
#结果如下
20200407 22:15:49.798 : INFO : 20
20200407 22:15:49.799 : INFO : 30
- For IN ENUMERATE 循环
- 有些时候需要知道当前循环中的循环位置的 index 编号,此时可以使用 FOR-IN ENUMERATE 关键字,在取 index 编号时,固定使用 ${index} 作为变量名
@{list} Create List Apple Banana Grape
FOR ${index} ${var} IN ENUMERATE @{list}
log ${index}:${var}
END
#结果如下
20200407 22:21:52.578 : INFO : @{list} = [ Apple | Banana | Grape ]
20200407 22:21:52.579 : INFO : 0:Apple
20200407 22:21:52.580 : INFO : 1:Banana
20200407 22:21:52.581 : INFO : 2:Grape
- For IN ZIP 循环
- 对于有些测试来说,可能会用到多个列表的数据,在循环中需要对这些数据进行组合使用,RF 提供了一个叫做 For-IN ZIP 的关键字,该关键字来自于 python 内置的 zip 函数,可用于对列表进行组合
- 这里注意,我们在定义一个列表变量时,可以使用 ${列表名},也可以使用 @{列表名},而在 For-IN ZIP 循环中使用该关键字时,只能使用 ${列表名}
@{num} Create List 1 2 3 4
${name} Create List zhangsan lisi wangwu zhaoliu
FOR ${n1} ${n2} IN ZIP ${num} ${name}
log ${n1}:${n2}
END
#结果如下
20200407 22:26:58.989 : INFO : @{num} = [ 1 | 2 | 3 | 4 ]
20200407 22:26:58.990 : INFO : ${name} = ['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
20200407 22:26:58.991 : INFO : 1:zhangsan
20200407 22:26:58.992 : INFO : 2:lisi
20200407 22:26:58.993 : INFO : 3:wangwu
20200407 22:26:58.994 : INFO : 4:zhaoliu
三、退出循环
- Exit For Loop 退出循环
- RF 也提供了退出循环的语句 —— Exit For Loop,遇到这个语句,脚本将无条件提出循环
如下 ${var} 被赋值到 Banana,触发了 Exit For Loop 语句而推出了循环
@{list} Create List Apple Banana Grape
FOR ${var} IN @{list}
Run Keyword If "${var}" == "Banana" Exit For Loop
log ${var}
END
#结果如下
20200407 22:31:01.587 : INFO : @{list} = [ Apple | Banana | Grape ]
20200407 22:31:01.589 : INFO : Apple
20200407 22:31:01.590 : INFO : Exiting for loop altogether.
- Exit For Loop If 满足条件后退出循环
@{list} Create List Apple Banana Grape
FOR ${var} IN @{list}
Exit For Loop If "${var}" == "Grape"
log ${var}
END
#结果如下
20200408 20:02:30.821 : INFO : @{list} = [ Apple | Banana | Grape ]
20200408 20:02:30.822 : INFO : Apple
20200408 20:02:30.824 : INFO : Banana
- 在循环中使用 Continue,终止单个循环
- Continue For Loop
@{list} Create List Apple Banana Grape
FOR ${var} IN @{list}
Run Keyword If "${var}" == "Banana" Continue For Loop
log ${var}
END
#结果如下
20200408 20:06:05.555 : INFO : @{list} = [ Apple | Banana | Grape ]
20200408 20:06:05.557 : INFO : Apple
20200408 20:06:05.558 : INFO : Continuing for loop from the next iteration.
20200408 20:06:05.560 : INFO : Grape
- Continue For Loop If
@{list} Create List Apple Banana Grape
FOR ${var} IN @{list}
Continue For Loop If "${var}" == "Banana"
log ${var}
END
#结果如下
20200408 20:07:36.902 : INFO : @{list} = [ Apple | Banana | Grape ]
20200408 20:07:36.903 : INFO : Apple
20200408 20:07:36.904 : INFO : Continuing for loop from the next iteration.
20200408 20:07:36.906 : INFO : Grape
RF(For 循环)的更多相关文章
- rf中的条件判断与循环
条件判断 run keyword if condition name *args ... ELSE IF conditon name *args ...ELSE name *args conditio ...
- RF之条件判断、初始化清除-4
条件判断: rf中用run keyword if 关键字做条件判断,以此来达到类似在python中if ...else...条件判断的功能. 注意:ELSE IF一定都是大写的,不然运行 ...
- Python3+RobotFramewok 循环判断以及Evaluate用法(三)
本章主要介绍RF的循环,判断以及关键字Evaluate. 1. for循环 在RF中通过 :FOR 编写循环 :FOR ${i} in range 10 log ${i} @{list} create ...
- Linux 档案与目录管理
『 cd /etc 』这个情况,这也就是所谓的『绝对路径』,他是从根目录连续写上来的一个情况,所以不论你在哪一个路径现执行这一个指令,都会将你移动到该路径下.那如果我是使用『 cd etc 』呢?那表 ...
- 复制、移动和删除:cp, rm, mv
要复制文件,请使用cp(copy)命令.不过,cp命令的用途很多.除了单纯的复制之外,还可以建立连接文件(就是快捷方式),比较两个文件的新旧而予以更新,以及复制整个目录等等.至于移动目录与文件,则使用 ...
- [转]复制、移动和删除:cp, rm, mv
转自:http://www.cnblogs.com/benio/archive/2010/07/27/1785929.html 要复制文件,请使用cp(copy)命令.不过,cp命令的用途很多.除了单 ...
- RF中for循环
robotframework支持FOR循环语句,语法和Python的语法基本相同,但robotframework中,“FOR”关键字前面需要增加一个“:”,写成“:FOR”,其它与Python的语法相 ...
- RF之关键字、变量、循环
关键字的使用: RF的能力是由关键字提供的,所以,我们必须对RF的常用关键字有个了解 . 最常用的关键字就在RF的关键字中.http://robotframework.org 其中Builtin是标准 ...
- Robot Framework(13)- RF 循环的详细使用
如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 RF用 ...
随机推荐
- python 面向对象反射以及内置方法
一.反射 什么是反射:可以用字符串的方式去访问对象的属性,调用对象的方法(但是不能去访问方法),python中一切皆对象,都可以使用放射. 反射的四种方法: hasattr:hasattr(objec ...
- javascript入门 之 ztree(五 自定义字体)
<!--<!DOCTYPE html>--> <!--<HTML>--> <!--<HEAD>--> <!--<TI ...
- postman 工具接口测试
一.get:请求多个参数时,需要用&连接 eg:http://api.***.cn/api/user/stu_info?stu_name=小黑&set=女 eg:接口请求参数放在b ...
- Docker之hello world
Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run 命令来在容器内运行一个应用程序. 输出Hello world runoob@runoob: ...
- 【python实现卷积神经网络】padding2D层实现
代码来源:https://github.com/eriklindernoren/ML-From-Scratch 卷积神经网络中卷积层Conv2D(带stride.padding)的具体实现:https ...
- (一) Mybatis源码分析-解析器模块
Mybatis源码分析-解析器模块 原创-转载请说明出处 1. 解析器模块的作用 对XPath进行封装,为mybatis-config.xml配置文件以及映射文件提供支持 为处理动态 SQL 语句中的 ...
- 面试 HTTP ,99% 的面试官都爱问这些问题
HTTP 和 HTTPS 的区别 HTTP 是一种 超文本传输协议(Hypertext Transfer Protocol),HTTP 是一个在计算机世界里专门在两点之间传输文字.图片.音频.视频等超 ...
- 一些SpringBoot的初步理解
SpringBoot SpringBoot作为近几年很火的微服务框架,只需要简单的几个依赖,少量的配置,就可以使用它快速搭建一个轻量级的微服务,优点是简单.快速.大道至简,缺点是真的太单一,不适于项目 ...
- 并查集判树 poj 1308
例题: poj 1308 题目大意比较简单,对任意两个点,有且仅有一条道路,也就是一棵树. 题解:一棵树中,肯定是不能有环的,而且只能由一个根节点.(没认真读题,只知道在那里判环....),所以这个题 ...
- C - Ivan the Fool and the Probability Theory---div2
题目连接:https://codeforces.com/contest/1248/problem/C 思路: 注意上下两排的关系,如果说上面那一排有两个方格连续,那么他相邻的两排必定和他相反,如果说当 ...