1 关键字的使用

RF的能力是由关键字提供的,所以,我们必须对RF的常用关键字有个了解,这样才能把RF用好。

最常用的关键字就在RF的标准库中

http://robotframework.org

其中Builtin是标准库中的内置库,

Shortcuts Keywords 就是关键字目录表,具体介绍每个关键字


关键字参数

第一列就是关键字的名称

第2列就是关键字参数!!!

必选参数和缺省值参数

再来看一个常用关键字: should be equal

比如下面的 builtin库里面的

Should Be Equal

first, second, msg=None, values=True, base=None

其中,参数 first 、second 是必选参数,需要填写内容,而参数 msg,values,base是带缺省值的参数,不填表示使用缺省值 是可以选的,可以不填。

2 常用关键字

Should Be Equal

Should Contain

set variable

log

log to console

sleep

Convert To Integer    Convert To Number

set variable 只支持赋值一个字符串给变量,如果我们想赋值一个整数,或者浮点数,需要用 Convert To Integer    Convert To Number

如果我们想把一个数字作为 关键字的参数,可以使用数字变量

log to console   ${32}

log to console   ${32+4*6}

Should Be Equal/ Should Not Be Equal

Should Contain/ Should Not Contain

Should Start With/ Should Not Start With

Should End With/ Should Not End With

一个特殊关键字Should Be True

它的参数本身是python 表达式语句,RF会直接用python解释器 的eval函数,来解释这个参数表达式。

Should be true与python两个区别:1,变量前面加个$符号 2. 不能中间有多于两个空格

3  认识测试库

通常,关键字是由测试库提供的。 其实测试库就是python 模块文件。

关键字就是 Python库里面的函数和类的方法。

RF就是本身就是个Python程序, 所以它的寻找库文件的原理和python是一样的。最终是通过sys.path。

我们在哪个目录下面运行robot,那个目录就是当前工作目录当前工作目录就是在sys.path里面的。所以,我们放在当前目录下面的python模块文件,直接就能被找到。

RF 脚本使用函数名、方法名 大小写不敏感。

4 库的导入

要使用测试库提供的关键字,我们必须要 声明 导入库。

当然一个特例:除了RF 的  builtin库的关键字,不需要声明。

库的名称 在RF里面是大小写敏感的。

有的库,在导入的时候,可以提供参数,比如SeleniumLibrary

http://robotframework.org/SeleniumLibrary/SeleniumLibrary.html

Importing链接,点开,有参数 就是导入可以设置的参数

timeout=5.0,

implicit_wait=0.0,

run_on_failure=Capture Page Screenshot,

screenshot_root_directory=None

其实这些导入时带参数的库,对应的测试库都是用类实现的。

这些参数就是类的初始化方法__init__里面的参数。

5 变量的用法

RF中的变量,实质上就是一个Python变量,它指向一个Python对象。

所以RF变量对应的是什么Python对象,它就是什么类型的对象。

Scalar方式(Scalar Variable

普通用法,就是用 ${var} 的方式来表示。

特点:当我们把变量以Scalar方式传递给关键字作为参数的时候, 就是直接把它所对应的Python对象传递给关键字 对应的函数。

(List Variable

如果RF变量实际指向一个Python List对象,

我们还可以把它以List方式传递给关键字作为参数。

List方式 是用 @{var} 的方式来表示,也把这种方式表示的变量叫做List 变量。

List方式,实际上会展开其List中的每个元素,作为多个参数传入。

Dictionary方式Dictionary Variable

如果RF变量实际指向一个Python Dict 对象,

我们还可以把它以Dict方式传递给关键字作为参数。

Dictionary方式 是用 &{var} 的方式来表示,

也把这种方式表示的变量叫做Dictionary 变量。

Dictionary方式,实际上会展开其Dict中的每个元素,作为多个参数传入。

访问环境变量

RF中可以用%{env_var} 方式直接访问一个环境变量,比如

6 循环

RF用 :FOR来实现循环,没有While 循环

对应的文档解释在这里

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#for-loops

注意

:FOR前面的冒号不能忘了,

l 如果后面的是变量是个list, 一定要写成 @的形式,而不是$的形式,

l for循环体内的语句, 要缩进一个单元格, 如果是纯文本文件, 连续的空格是无法表示多个单元格的,RF会只当成一个。 所以前面还要有一个反斜杠转义,表示这边有一个空的单元格

range用法

python中,我们非常常用的有 range方法,RF也有类似的支持,

http://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html#id578

range用法
    [Documentation]    Loops over values from 0 to 9
    :FOR    ${index}    IN RANGE    10
    \    Log To Console    ${index}

2. robot framework 关键字,变量,循环的更多相关文章

  1. Robot Framework使用For循环

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

  2. Python 学习笔记20 自定义robot Framework 关键字

    Robot Framework 自定义关键字 Robot framework 自定义了一些关键字我们可以把他们当作函数在设计测试用例的时候使用. 同时RF也提供了许多第三方的库,我们可以自己下载使用. ...

  3. Robot Framework 关键字自定义

    关键字自定义有三种方法: 1.在自动化目录中右键-->New User Keyword 2.选中case中的步骤(可选多行),右键-->Extract Keyword 3.自己写模块,自定 ...

  4. robot framework ——关键字run keyword if 如何在一个条件下接多个执行语句,以及如何写复杂条件句

    曾一度疯狂搜索run keyword if 的用法,帖子是挺多的,可惜,没有一个我想要的.现在我终于把我想要的用法,收集好了,在此总结下. 1.曾经天真的以为  run keyword if +条件 ...

  5. robot framework 关键字Switch Browser和Select Window的区别

    Switch Browser针对的是2个Open Browser以上的切换:Select Window针对的是1个Open Browser里面某个点击事件打开了另外一个新窗口 1.例子 Switch ...

  6. Robot Framework:变量与运算

    设置变量                                                                                                ...

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

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

  8. robot framework学习笔记之二———变量

    Robot Framework的变量分为标量, 列表和字典, 分别使用语法格式 ${SCALAR}, @{LIST} 和 &{DICT} 来定义. 此外, 环境变量可以直接使用语法 %{ENV ...

  9. Robot Framework常用关键字介绍

    常用关键字介绍 在学习一门编程语言的时候,大多教材都是从打印“hello world”开始.我们可以像编程语言一样来学习 Robot Framework.虽然通过 RIDE 提供“填表”一样的写测试用 ...

随机推荐

  1. 基于Hi3559AV100 RFCN实现细节解析-(3)系统输入VI分析一 :

    下面随笔系列将对Hi3559AV100 RFCN实现细节进行解析,整个过程涉及到VI.VDEC.VPSS.VGS.VO.NNIE,其中涉及的内容,大家可以参考之前我写的博客: Hi3559AV100的 ...

  2. 关于 PDB 文件你需要知道什么?

    引言 大多数人知道 PDB 文件是用来帮助我们 debug 的,但也仅此而已. 本文主要介绍当你遇到 PDB 文件时(windows 开发中),你必须要知道的内容. 重要的事情说三遍 PDB 文件和源 ...

  3. [unknown source] 快乐树

    一.题目 题目描述 有一棵 \(n\) 个节点的数,每个点有点权 \(a_i\),定义一条路径的权值为路径上所有点的异或和,求所有路径的权值和,有 \(q\) 次修改,每次改一个点的点权. 数据范围 ...

  4. Java内存区域略解

    概览 分述 程序计数器 用于记录该线程的执行位置,便于跳转或者线程中断后的恢复 方法区 Java虚拟机规范中把 原本用于存储常量,静态变量和类的元信息,但java1.7将字符串常量移到了堆中,java ...

  5. BZOJ_2243 [SDOI2011]染色 【树链剖分+线段树】

    一 题目 [SDOI2011]染色 二 分析 感觉树链剖分的这些题真的蛮考验码力的,自己的码力还是不够啊!o(╯□╰)o 还是比较常规的树链剖分,但是一定记得这里的线段树在查询的时候一定要考虑链于链相 ...

  6. P1089_津津的储蓄计划(JAVA语言)

    package 顺序与分支; /* * 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津300元钱, 津津会预算这个月的花销,并且总能做到实际花销和预算的相同. 为了让津津学习如何储蓄, ...

  7. Python3+Pygame实现的射击游戏,很流畅,有音效

    之前看到过很多人写的飞机大战,当然了之前我也写过多个版本,总体来说功能是实现了,但总感觉不够"炫" 今天浏览Python资料的时候,意外发现了这个很好的"射击" ...

  8. teprunner测试平台用例前置模块开发

    本文开发内容 现在正式进入测试相关功能开发.teprunner测试平台底层是pytest,中间层是tep,还没了解的朋友可以先看看tep的文章,整个平台的设计思路和后面用例的执行都会基于这个工具.te ...

  9. (原创)在Linux上安装运行Python3(CentOS7为例)

    在win10上开发好的python项目要部署在Linux上要面对的问题:怎么在Linux上跑py文件呢? 以Lunix CentOS7.x平台为例,CentOS系统上自带的已有python2.x 的版 ...

  10. 使用 Elastic 技术栈构建 Kubernetes全栈监控

    以下我们描述如何使用 Elastic 技术栈来为 Kubernetes 构建监控环境.可观测性的目标是为生产环境提供运维工具来检测服务不可用的情况(比如服务宕机.错误或者响应变慢等),并且保留一些可以 ...