4)FOR…IN…ZIP循环

FOR…IN…ZIP循环的语法如下。

:FOR    …    IN ZIP    Sequence1    Sequence2    …

\         Keyword

FOR…IN…ZIP循环一次可以处理多个列表,这有助于处理几个关联的列表。示例如下。

FOR_IN_ZIP_TestCase

${header}    Set Variable    ID    Name    Score

${row1}    Set Variable    1    张三    80

: FOR    ${header_item}    ${row1_item}    IN ZIP    ${header}    ${row1}

\    Log    ${header_item}|${row1_item}

输出的日志如上。

INFO : ID|1

INFO : Name|张三

INFO : Score|80

5)嵌套FOR循环

在各种编程语言(如Python、Java)里,通常会用到嵌套循环,即在第一层循环下,还有第二层、第三层等循环。但是Robot Framework的“:FOR”循环不支持嵌套使用,因为第二行应该是关键字,而“:FOR”不是一个合法的关键字。以下写法是错误的。

:FOR             ${row}           IN        @{table}

:FOR          ${column}     IN              @{row}

Log           ${column}

如果在自动化测试中必须使用双层或多层嵌套循环,该怎么办呢?我们有替代的方案—用户关键字。既然“:FOR”循环下必须是关键字,那我们就创建一个关键字,在这个关键字里再写下一层的循环即可。

*** Test Cases ***

FOR_Nested_TestCase

@{List1}    Create List    1    2    3

@{List2}    Create List    a    b    c

@{List3}    Create List    A    B    C

@{Lists}    Create List     ${List1}    ${List2}    ${List3}

:FOR    ${List}    IN    @{Lists}

\    Second Loop    @{List}

*** Keywords ***

Second Loop

[Arguments]    @{list_arg}

:FOR   ${i}    IN    @{list_arg}

\    Log    ${i}

“FOR_Nested_TestCase”测试用例里首先创建了一个二维数组,数组里每一行都是一个List。在FOR循环中,每次读取二维数组的一行后,都将它存入${List} Scalar变量中。然后将这个变量转换为List变量并传递给Second Loop关键字。关键字Second Loop接受一个List变量,并用FOR循环将这个List中的所有元素一一输出。

测试用例的运行结果如下。

INFO : @{List1} = [ 1 | 2 | 3 ]

INFO : @{List2} = [ a | b | c ]

INFO : @{List3} = [ A | B | C ]

INFO : @{Lists} = [ ['1', '2', '3'] | ['a', 'b', 'c'] | ['A', 'B', 'C'] ]

INFO : 1

INFO : 2

INFO : 3

INFO : a

INFO : b

INFO : c

INFO : A

INFO : B

INFO : C

6)退出循环

通常情况下,遍历队列里的所有值后,或中途出错时,循环才会退出。如果需要提前退出,可以用BuiltIn库里的关键字Exit For Loop和Exit For Loop If。二者和普通编程语言中的break类似。示例如下。

FOR_EXIT_LOOP_TestCase

@{t_list}    Create List    a    b    c    d    e

: FOR   ${i}    IN RANGE    5

\   Run Keyword If    '@{t_list}[${i}]'=='d'    Exit For Loop

\   Log   @{t_list}[${i}]

FOR循环遍历@{t_list}列表,当循环找到值“d”时,就退出循环,不再遍历后面的值。

输出的日志如下。

INFO : @{t_list} = [ a | b | c | d | e ]

INFO : a

INFO : b

INFO : c

INFO : Exiting for loop altogether.

7)继续执行循环

除了可以跳出当前循环之外,还可以提前终止当前迭代而取下一个值来继续执行循环。BuiltIn库提供了关键字Continue For Loop和Continue For Loop If来继续执行循环。示例如下。

FOR_CONTINUE_TestCase

@{t_list}    Create List    a    b    c    d    e

: FOR   ${i}    IN RANGE    5

\   Continue For Loop If    '@{t_list}[${i}]'=='d'

\   Log   @{t_list}[${i}]

FOR循环用于遍历@{t_list}列表,当循环找到值“d”时,就什么都不做,继续迭代下一个值。

输出的日志如下。

INFO : @{t_list} = [ a | b | c | d | e ]

INFO : a

INFO : b

INFO : c

INFO : Continuing for loop from the next iteration.

INFO : e

3.3  小结

本章主要讲解了Robot Framework测试数据。本章首先以一个助理机器人为例直观地讲解了一个简单测试工程的搭建和测试用例的设计以及实现。Robot Framework测试数据的结构主要有测试工程及子目录、测试套件、用户关键字、变量定义、资源文件、变量文件等。

然后,本章详细讲解了Robot Framework的语法,包括Scalar、List、Dictionary这3种变量的定义和使用。其中Scalar和List变量可以互相强制转换。通过${}可以将List和Dictionary变量强制转换为Scalar变量。

除了这3种变量之外,Robot Framework还提供了一些内置变量,如当前路径、当前测试用例名字、Log路径等。此外,有些特殊的变量(如数字、布尔值、空格、日期和时间等)需要引起注意,它们有不同的表示方式。

Robot Framework测试数据中有一些特殊的标记(如Setup、Teardown、Tags、Timeout、Template等),用于影响测试用例的执行。

像大多数编程语言一样,Robot Framework也支持IF分支和FOR循环,以满足不同的业务需求。其中FOR循环提供了4种不同风格的循环读取方式。FOR循环本身不支持嵌套循环,但是我们可以用关键字来写下一层的循环。

版权声明:51Testing软件测试网获得人民邮电出版社和作者授权连载本书部分章节。

任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。

压缩软件自动化测试,FOR…IN…ZIP循环——自动化测试精解(14)相关推荐

  1. 压缩软件大比拼历史回顾:ZIP与RAR

    压缩软件大比拼历史回顾:ZIP与RAR 前言--王者归来? 等待足足两年之久,压缩霸主WinZip终于在万众期待下发布了 9.0 正式版.全世界自然一片沸腾,在世 界各大知名下载网站中,WinZip9 ...

  2. 软件测试之魂:核心测试设计精解

    软件测试之魂:核心测试设计精解(第2版)(掌握核心竞争力成为不可替代的测试精英) 肖利琼著 ISBN 978-7-121-19677-5 2013年5月出版 定价:59.00元 356页 16开 编辑 ...

  3. 软件测试之魂:核心测试设计精解(第2版)

    <软件测试之魂:核心测试设计精解(第2版)> 基本信息 作者: 肖利琼 出版社:电子工业出版社 ISBN:9787121196775 上架时间:2013-5-13 出版日期:2013 年5 ...

  4. 软件测试之魂:核心测试设计精解(第2版)》

    <软件测试之魂:核心测试设计精解(第2版)> 基本信息 作者: 肖利琼 出版社:电子工业出版社 ISBN:9787121196775 上架时间:2013-5-13 出版日期:2013 年5 ...

  5. 需求用例软件测试之魂:核心测试设计精解(第2版)

    题记:写这篇博客要主是加深自己对需求用例的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢. 第1章 旭日中的软件测试 1 1.1 关于软件测试 1 1.1.1 书中一角到书山一角的逾 ...

  6. 如何在linux下安装rar软件,Linux下安装使用RAR压缩软件的方法

    linux下我们常用的压缩软件格式是tar,zip,这里介绍另外一款windows下常用的压缩格式rar文件. 一. 下载RAR for Linux 下载的文件是rarlinux-3.9.b3.tar ...

  7. 语言压缩zip win_主流压缩软件挨个尝试后,我选择了没有短板的全能压缩Bandizip...

    由于数据量日益增加,存储技术没有齐头并进,因此,文件压缩已成为当今存储数据的重要手段.几款文件压缩软件可以尽量缩小文件的尺寸,以便你能轻松地存储和共享文件. 选择适合的文件压缩软件是棘手的任务,因为不 ...

  8. 泽众性能测试软件,软件测试工具-测试管理工具-自动化测试工具-性能测试工具-SPASVO泽众软件测试网...

    自动化测试框架 AutoTestFramework(简称 :ATF)是 B/S 架构框架,可实现功能自动化.移动自动化.移动兼容性自动化.接口自动化等多种自动化测试全流程管理.团队化管理的高级框架平台 ...

  9. 安卓zip解压软件_手机压缩软件ZArchiver下载、使用教程丨免费、中文,支持7z、zip、rar等所有格式...

    点击上方云中栖居关注 ▲ 图片丨Google Play应用商店中的ZArchiver免费版.ZArchiver Donate捐赠版(Pro专业版)图标,两个版本功能基本上一样. ZArchiver自称 ...

最新文章

  1. 使用String()解决utf-8字符转GB2312的问题
  2. jdbc oracle thin@localhost 1521 XE
  3. harfbuzz安装位置 linux_最新Ubuntu 20.04 LTS已发布,在Win10中该如何进行安装和使用?...
  4. 【struts框架】第一节Action-struts基础
  5. spring cloud sleuth在spring中创建span
  6. 解决KMPlayer 播放RMVB 一直是快进的问题
  7. jQuery hover事件鼠标滑过图片半透明标题文字滑动显示隐藏
  8. opencv之imread()
  9. ASP.NET的ASHX一般处理程序中Session为null且不能赋值
  10. jenkins 插件安装
  11. fisco bcos DagTransferUser.java 源码解析阅读注释
  12. 软件开发需求整理概要
  13. 诺基亚:丑小鸭的重生
  14. TiDB 在 Cisco Webex 架构中的部署和应用
  15. 路由器实验要求之配置实验、直连路由验证、静态路由
  16. 编译原理 语法分析程序LL(1)和LR(0)实现
  17. 快手CEO宿华14年
  18. emacs快捷键总结
  19. IntelRealsense升级摄像头的固件版本方法
  20. 查找表字段-事务码 AUT10

热门文章

  1. 郭台铭卸任董事长 鸿海进入集体领导时代
  2. OPPO海外功臣realme将回归国内 目标竞争对手:红米和荣耀
  3. 佛系听歌?Beats推出“串珠”耳机 盘它?
  4. 软件测试面试-测试的目的是什么?【高频】
  5. Java基础整理(二)
  6. 关于浏览器的那些事情1【面试】
  7. java close wait过多_HttpClient当HTTP连接的时候出现大量CLOSE_WAIT连接
  8. linux内容对齐的快捷键,linux第一波命令总结
  9. linux 彻底定制指南,8.3. Linux-2.6.11.12 《Linux 彻底定制指南》[翻译:金步国]...
  10. 点阵字体显示系列补记:将字库文件转换成数组形式