Robotframework是一个用python写的基于关键字驱动的自动化测试框架。既然是基于关键字驱动的,那么关键字的编写和使用就是平时工作的核心。这篇文章主要整理一下如何根据已有的关键字来创建新的关键字,以及关键字的使用。
虽然RF自带的测试库和各种第三方库提供了大量的关键字,但在实际工作中这些关键字一般还不能满足工作需求的,这时候我们就需要根据RF自带的测试库和各种第三方库提供的关键字来创建新的关键字,这个新的关键字就叫用户关键字,用户关键字可以相互调用。
用户关键字的识别是以*** Keywords *** 开始的,它可以在用例文件中创建,也可以单独拿出来做为资源文件使用,工作中一般使用资源文件形式存在的。它的模板如下
*** Keywords ***
#用户关键字语法
keyword_name: 关键字名称
[Arguments] 关键字参数: 位置参数>默认参数>@参数>&参数
[Documentation] 关键字文档说明
[Tags] 关键字标签
[Timeout] 运行关键字的超时时间
step1 关键字步骤
step2
...
[Teardown] 关键字的收尾工作
[Return] 关键字返回值:RF5.0以前是用return from keyword
其中[Agruments]入参参数和[Return] 返回参数用的最多。
在用例文件中创建用户关键字
在执行用例时有时想把公共的一部分提出来,只想在本案例文件中使用,不想作为资源文件使用,这时候我们就可以在案例文件中创建一个用户关键字。
如下,就是在案例文件中创建一个拼接字符串的关键字
在资源文件中创建用户关键字
很多时候我们创建的用户关键字会单独形成一个资源文件,因为很多地方都会用到,形成一个公共资源文件,用的时候只要引入这个文件即可。
如下,创建一个获取系统日期的用户关键字,把它放在一个公共资源文件中
在使用的时候只要引用这个文件就可以了
由于用户关键字只在创建的那个文件中生效,所以非关键字所在文件的案例要使用关键字时,要用Resource来引用关键字所在文件;案例和用户关键字在同一个文件时,则可以直接使用关键字。
RF和python函数一样,也有位置参数,默认参数和缺省参数,参数位置关系一般是:位置参数>默认参数>@参数(相当于python中的*kags)>&参数(相当于python中的**kwargs)。[Arguments] 后面跟的就是关键字参数。
示例如下
调用传参和结果如下
用户关键字返回参数和python函数一样,也可以返回一个值或者多个值。RF中用 [Return] 来返回值。
示例如下