1.普通的For循环
在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环结
构体内的每一行,使用 \ 作为改行的行首关键字。对于循环中的变量,可以在 IN 关键字后给出所有变量,
也可以从一个列表中进行赋值,每次循环从列表中取出一个值。例如:
1)给出所有变量
 
 

2)从列表中进行赋值

执行测试用例,输出结果为:

2.嵌套循环
Robot Framework本身并不支持直接使用嵌套循环,但是可以通过在一个循环结构中使用另一个包含有循
环结构的关键字来实现。例如
 
*** Keywords ***
Handle Row
[Arguments] @{row}
: FOR ${cell} IN @{row}
\ log ${cell}
Handle Table
[Arguments] @{table}
: FOR @{row} IN @{table}
\ Handle Row @{row}
 
在使用时,调用Handle Table,Handle Table再调用内层循环Handle Row,从而实现嵌套循环的目的。
 
3.For-in-range循环
除了针对序列的循环之外,有些时候还需要能够进行特定迭代次数的循环。Robot Framework中通过FOR
index IN RANGE limit来实现,其语法与Python中的使用方式相似。
1)只使用数据上限
只使用数据上限时,数据从0开始,每次+1,数据从0直到指定数据,但不包含该数据。例如:

输出结果为0、1、2、3、4、5、6、7、8、9,数据从0开始至9结束,输出结果不包含10.
2)使用开始和结束数据
使用开始和技术数据时,数据从“开始数据”开始,每次+1,至“结束数据”结束,但不包含结束数据。
例如:

输出结果为2、3、4、5、6、7、8、9、10,数据从2开始至10结束,输出结果不包含11.
3)使用开始、结束、步长
使用 开始、结束、步长 时,数据从“开始数据”开始,每次+“步长数据”,至“结束数据”结束,但不
包含结束数据。例如:

输出结果为2、5、8,数据从2开始至11结束,每次累加3,输出结果不包含11.
 
4.For-in-enumerate循环
有些时候需要知道当前循环中的循环位置的index编号,此时可以使用FOR index ... IN ENUMERATE ...关
键字。在取index编号时,固定使用 ${index} 作为变量名,例如

运行结果为

5.多变量循环
与Python中的for循环类似的是,当列表中的变量数量可以被一定数量整除时,可以直接使用等于该数量的
变量做循环。例如

6.For-in-zip 循环
对于有些测试来说,可能会用到多个列表的数据,在循环中需要对这些数据进行组合使用。Robot
Framework提供了一个叫做For-in-zip的关键字,该关键字来自于python内置的zip函数,可用于对列表进
行组合。例如

这里注意,我们在定义一个列表变量时,可以使用${列表名},也可以使用@{列表名},而在for-in-zip循环
中使用该关键字时,只能使用${列表名}。执行测试用例,结果如下:

7.跳出循环
一般来说一个循环结构的用例需要遍历完所有数据后再退出。某些情况下,需要提前终止并跳出循环时,
可以使用Exit For Loop 或者 Exit For Loop If。例如

执行测试用例,输出结果为:  

8.在循环中使用continue
有些时候,需要在循环中使用continue来跳过循环结构体中的某些过程。在Robot Framework中,可以使
用Continue For Loop 或者 Continue For Loop If。具体用法与跳出循环时的Exit用法一致,这里不再做
演示。
 
9.重复执行单一关键字
某些情况下,循环结构可能只需要对一个关键字做执行次数的循环。Robot Framework提供了一个关键字
Repeat Keyword,只需指明循环次数和循环中的关键字即可。而在描述循环次数时,有时为了让测试用例
易于理解,可以在次数后面添加一个times 或 x 例如

Robot Framework使用循环的更多相关文章

  1. robot framework 如何处理循环条件下面的变量自增

    下面举了一个基础栗子,可以运行的.${num}就是我需要的自增变量.有人也许会问为什么不用${i},不是我不想用,而是我${i}有其他用处,必须另外定义一个变量,需要注意的是定义变量的时候,应该在循环 ...

  2. Robot Framework使用For循环

    1.普通的For循环 在一个普通的For循环中,循环开始的关键字是 :FOR ,其中的:用于与一般关键字做区分,对于循环结构体内的每一行,使用 \ 作为改行的行首关键字.对于循环中的变量,可以在 IN ...

  3. Robot Framework 教程 (7) - 使用For循环

    在自动化测试过程中,使用For循环来对某个动作进行重复操作是很普遍的行为.在Robot Framework中,各种测试库中均提供了多种方式的For循环结构,在其中覆盖了大部分类型的循环类型.而Robo ...

  4. Robot Framework(13)- RF 循环的详细使用

    如果你还想从头学起Robot Framework,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1770899.html 前言 RF用   ...

  5. Robot Framework自动化测试 ---视频与教程免费分享

    当我第一次使用Robot Framework时,我是拒绝的.我跟老大说,我拒绝其实对于习惯了代码的自由,所以讨厌这种“填表格”式的脚本.老大说,Robot Framework使用简单,类库丰富,还可以 ...

  6. 2小时入门Robot Framework

    1.介绍 1.1.介绍Robot Robot Framework是一个基于关键字驱动的自动化测试框架.通过该框架,测试人员可使用python封装关键字,并在非代码环境下使用关键字构建可被执行的测试用例 ...

  7. Robot Framework自动化测试(三)---Selenium API

    Robot  Framework  Selenium  API 说明: 此文档只是将最常用的UI 操作列出.更多方法请查找selenium 关键字库. 一.浏览器驱动 通过不同的浏览器执行脚本. Op ...

  8. Robot Framework语法学习(一)

    Robot Framework语法学习: 一.变量的声明.赋值与使用 1.变量标识符:每个变量都可以用  变量标识符 ${变量名} 来表示. 2.变量声明:可以在TestSuite上点右键或者在Edi ...

  9. 【转】Robot Framework 快速入门

    目录 介绍 概述 安装 运行demo 介绍样例应用程序 测试用例 第一个测试用例 高级别测试用例 数据驱动测试用例 关键词keywords 内置关键词 库关键词 用户定义关键词 变量 定义变量 使用变 ...

  10. Robot Framework学习笔记(三)------常用关键字介绍

    下面关键字全部由 Builtin 库提供,Builtin 为 Robot Framework 标准类库.Builtin库提供常用的关键字 1.log log 关键字就是编程语言里的"prin ...

随机推荐

  1. 输入输出-python

    输入输出-python 输入输出 输入 Python提供了input()函数用于从控制台输入数据. name = input("请输入您的姓名:") print("您输入 ...

  2. UTS Open '21 P7 - April Fools

    传送门 前言 本题是笔者keysky与同学yangbaich讨论+推式子一整个晚上以及讨论前ybc的一整个下午做出来的,综合起来是 \(34\) 个转移方程,对于整道题来说,贡献大抵为我 \(2\) ...

  3. day04-数组

    Java数组 [ 任务列表 ] 1.数组 2.二维数组 3.其他 --------------------------------------------------------- 1.数组 数组:存 ...

  4. 【忍者算法】从股市走势到动态规划:探索最大子数组和问题|LeetCode 53 最大子数组和

    从股市走势到动态规划:探索最大子数组和问题 生活中的算法 想象你是一位股票交易员,手上有一支股票的每日涨跌数据.你想找出哪段连续的交易日能获得最大的收益.如果某天股票上涨5元,我们记为+5,下跌3元记 ...

  5. PHP变量与变量作用域

    PHP变量与变量作用域 1. 变量的基本概念 在PHP中,变量用于存储各种类型的数据,如字符串.整数.浮点数.布尔值.数组和对象等.变量名以美元符号$开头,后面跟着一个或多个字符(变量名).例如: & ...

  6. 牛客题解 | 单组_spj判断数组之和

    题目 题目链接 解题思路 后台有spj代码,能对同学们的输出数据进行校验,符合条件即可通过. 附赠 spj 代码 #include <iostream> #include <fstr ...

  7. [BZOJ2741][FOTILE模拟赛] L 题解

    相当好的题目,虽然和我前几天出的题重了qwq. \(lmx\) 是我们的红太阳,没有他我们就会死!!! 暴力枚举一个端点,然后用可持久化 \(01\ Trie\) 或者离线 \(Trie\)(当然这题 ...

  8. 【IDEA】IDEA上如何解决代码冲突

    首先,坐好准备工作,在feature-resolve-conflict分支上作如下改动: 在master分支作如下改动: 假如现在我们需要将master分支合并到feature-resolve-con ...

  9. QT5笔记: 8. QT的全局变量(基本数据类型、函数、宏)

    这个头文件中存放着QT类库的一些全局定义,一般Qt类的头文件会包含这个头文件: 基本数据类型 函数 宏 数据类型:保证跨平台时各数据类型长度统一 函数定义(一些数学函数未在QtGlobal中,而是在Q ...

  10. Shell - [01] 概述

    一.shell是什么 Shell 是一个命令解释器,接收应用程序/用户命令去调用操作系统内核. Shell 是一个功能强大的编程语言,易编写.易调试.灵活性强. 二.shell的解析器有哪些 [roo ...