在RF中,关键字是一个非常重要的存在。想做任何事情,都是通过关键字来实现的。

这篇文章对RobotFramework中的关键字做个整理。大概分为以下几点内容:

1、什么是关键字

2、关键字来自哪里、有哪些类型

3、如何使用关键字

4、如何定义用户关键字

5、资源文件使用

1、什么是关键字

总结一句话:一个关键字实现了单一的功能。

使用一个关键字,就等于是去使用了一个功能。

例如,在生活中,做饭使用了厨房,睡觉使用了床,出行使用了公交等等。

一样的道理 ,那在RF中,输出文本使用了关键字:log;创建变量使用了关键字:set Variable; 执行python语句使用关键字:evulate

另外,我们在使用有些功能的时候 ,需要提供一定的数据,才可以正常使用功能。

比如高铁出行,必须提供身份证和高铁票这两样数据,才能够成功的使用高铁出行这个功能。

那么在RF中,自然也会有类似这样的场景需求。表达形式就是在使用关键字的时候,需要同时传入参数数据。

ps:RF中的关键字,对应的就是python中的函数。

所以关键字由关键字名称、参数、返回值三部分组成。

2、关键字来自哪里、有哪些类型

既然RF中的关键字,与python中的函数保持一致。那么函数来自于哪里,基本上关键字也就来自于哪里。

函数主要来自于:python自带、python第三方库、用户自定义模块和包。

那在RF中,就不得不提,另外一个重要的存在:库。

库:理解为功能仓库,即封装了一系列功能。

关键字按照用途分门别类的放在不同的功能仓库中。

RobotFramework在安装成功之后,会自带标准库。标准库中均是关键字。    =======相对于python自带。

RobotFramework也支持丰常丰富的第三方库。    =======相对于python第三方库

也支持用户利用python或者java语言编写自己的第三方库。   =======相对于用户自定义的模块和包

下图为库与关键字的关系图:

上图中的系统关键字又是什么呢?

在RF中,关键字也分为两种类型:系统关键字和用户关键字。

系统关键字:来自于测试库。无论是标准库、第三方库、还是用户用编程语言定义的。

用户关键字:利用RF编辑工具,按照RF的语法规则定义的关键字(而不是直接写代码)。于测试而言,一般来说用户关键字都跟系统业务有关。

3、如何使用关键字

由上可知,一个关键字就是一个功能。

我们通过关键字的名称来使用关键字。如果需要传递参数,那么就传递参数。PS:是不是跟python函数的使用一模一样??

以RF自带BuildIn中的关键字log为例:

1)创建一个测试套件文件;

2)创建一个测试用例,并调用log关键字;

测试用例为:用例名称(图中的黑色粗体)、用例内容。

用例内容中:蓝色粗体为关键字名称。关键字后面的内容为传入的参数。关键字与参数之间、多个参数之间用Tab键隔开。

注意:在Eclipse中 用例内容部分会自动缩进。请按照缩进的方式调用关键字即可。此规则与python保持一致。

贯穿RobotFramework框架 - 关键字(一) 最全面的疏理的更多相关文章

  1. robotframework - 框架做接口自动化post请求

    1.做get请求之前先安装 Request库,参考github上链接 :https://github.com/bulkan/robotframework-requests/#readme 2.请求&a ...

  2. robotframework日志输出中文乱码以及robotframework常用关键字-笔者亲测

    一.环境说明 python版本:3.7.3 robotframework版本:3.1 robotframwork-ride版本:1.7.4.2 二.问题描述

  3. robotframework常用关键字

    robotframework关键字 可以将关键字看作是处理数据的方法.robotframework的关键字和测试数据组成了测试用例. robotframework关键字包括系统关键字和用户关键字.用户 ...

  4. robotframework框架 - seleniumLibrary 关键字解读-全攻略

    在robotframework当中,要实现web自动化,则需要使用SeleniumLibrary这个库. 目前版本中,有180+关键字.随着版本的更新,关键字的个数和名字也会有所变动. 在网上没有找到 ...

  5. robotframework框架 - 利用RequestsLibrary关键字轻松实现接口自动化!

    robotframework(后续简称为robot)是一款自动化测试框架,可能做各种类型的自动化测试. 本文介绍通过robotframework来做接口测试. 第一步:安装第三方库,提供接口测试的关键 ...

  6. Robot Framework(十四) 扩展RobotFramework框架——创建测试库

    4.1创建测试库 Robot Framework的实际测试功能由测试库提供.有许多现有的库,其中一些甚至与核心框架捆绑在一起,但仍然经常需要创建新的库.这个任务并不复杂,因为正如本章所示,Robot ...

  7. Robot Framework(十五) 扩展RobotFramework框架——远程库接口

    4.2远程库接口 远程库接口提供了在运行Robot Framework本身的机器上运行测试库的方法,以及使用除本机支持的Python和Java之外的其他语言实现库的方法.对于测试库,用户远程库看起来与 ...

  8. robotframework用户关键字创建过程

    robotframework是一个关键字驱动框架,核心在于关键字的应用.系统本身通过各种库自带了大量关键字,同时支持用户自定义关键字.关键字可以简单理解为各种处理数据的方法. 关键字区别与用户参数. ...

  9. robotframework框架 - 在Pycharm当中编写RobotFramework测试用例

    众所周知,pycharm是个写python极好用的编辑器.也可以装很多的插件来完成各种骚操作. 某一天,心血来潮在pycharm的插件库里,搜索了一下robot,恩,发现有支持robotframewo ...

随机推荐

  1. pytorch中文文档-torch.nn.init常用函数-待添加

    参考:https://pytorch.org/docs/stable/nn.html torch.nn.init.constant_(tensor, val) 使用参数val的值填满输入tensor ...

  2. (转)sizeof()和_countof()区别

    先看程序: #include <iostream> using namespace std; int main(int argc, char* argv[]) { char *a = &q ...

  3. 修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全

    dedecms系统使用过程中,常遇到输入的标题原本输入的字数跟保存成功后的数字长度不一样,这个是因为 织梦dedecms系统默认的文章标题字数限制是60,也就是只能输入30个汉字,超过的会自动截断删除 ...

  4. elasticsearch补全功能之只补全筛选后的部分数据context suggester

    官方文档https://www.elastic.co/guide/en/elasticsearch/reference/5.0/suggester-context.html 下面所有演示基于elast ...

  5. linux定时备份学习笔记

    1.iterm2链接远程中文乱码 shh端vi ~/.bash_profile export LC_CTYPE=en_US.UTF-8 source ~/.bash_profile   2.WARNI ...

  6. 一次jdk1.7升级jdk1.8后导致redis运行时blocked_clients过多问题解决

    公司有个采集项目,因为请求量较大,添加了redis集群,并且升级了原有的jdk1.7到jdk1.8版本,之后问题就出来了. 1.程序运行一段时间就自动停止,必须重启才能再次运行. 2.redis连接监 ...

  7. Python基础:编码规范(4)

    1.命名规范 Python中不同代码元素采用不同命名方式: ◊ 包名:全部小写字母,中间可以由点分隔开.作为命名空间,包名需具有唯一性. ◊ 模块名:全部小写字母,如果是多个单词构成,使用下划线分隔. ...

  8. NLP句子表征,NLP 的巨人肩膀(下):从 CoVe 到 BERT (转载)

    深度长文:NLP的巨人肩膀(上):https://www.jiqizhixin.com/articles/2018-12-10-17 NLP 的巨人肩膀(下):从 CoVe 到 BERT: https ...

  9. 转载泡泡机器人——IMU预积分总结与公式推导2

    本文为IMU预积分总结与公式推导系列技术报告的第二篇. 承接第一篇的内容,本篇将推导IMU预积分的测量值,并分析其测量误差的分布形式. 传统捷联惯性导航的递推算法,以初始状态为基础,利用IMU测量得到 ...

  10. Mobile CI/CD 101

    This is a guest post by Slava Chernikoff, Principal Engineer at Binwell. Mobile DevOps falls under t ...