Robot Framework关键字类型

RobotFramework关键字

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

1.什么是关键字

一句话描述:一个关键字就是实现了特点的功能, 使用一个关键字,就等于是去使用了一个功能。例如:在生活中,厨师做饭使用了厨房,人睡觉使用了床等等。同理 ,那在RF中,输出文本使用了关键字:log;创建变量使用了关键字:set Variable; 执行python语句使用关键字:evulate。其次我们在使用有些功能的时候 ,需要提供一定的数据,才可以正常使用功能。比如乘坐高铁时必须有身份证和高铁票这两样数据,才能够成功的使用高铁出行这个功能。那么在RF中,自然也会有类似这样的场景需求。表达形式就是在使用关键字的时候,需要同时传入参数数据。 注意:

RF中的关键字,其实就可以对于python中的函数。所以关键字由关键字名称、参数、返回值三部分组成。

2.RF中关键字来自哪里,有哪些类型呢?

既然RF中的关键字,与python中的函数保持一致。那么函数来自于哪里,基本上关键字也就来自于哪里。python中函数主要来自于:Python内置、Python第三方库、用户自定义模块和包。

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

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

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

RF在安装成功之后,会自带标准库。标准库中均是关键字。 相对应python自带的函数。

RF也支持丰富的第三方库。 相对于Python第三方库

也支持用户利用Python或者Java语言编写自己的第三方库。对应用户自定义的模块和包

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

2021-05-23_204825

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

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

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

3.用户关键字

用户自定义关键字

关键字表用于通过将 现有关键字 组合在一起来创建新的 更高级别的关键字。这些关键字称为 用户关键字,以区别于测试库中实现的最低级别的库关键字。创建用户关键字的语法与创建测试用例的语法非常接近,这使它易于学习。

用户关键字语法

在许多方面,整个用户关键字语法与 测试用例语法相同。用户关键字是在 关键字表 中创建的,这些关键字表与测试用例表的区别仅在于用于标识它们的名称。用户关键字名称在第一列中与测试用例名称相似。

用户关键字根据已有的关键字创建,可以是测试库中的关键字,也可以是其他用户关键字。关键字名称通常在第二列中,但是如果关键字有 返回值,它们在随后的列中。

例如:

*** Settings ***
Library  SeleniumLibrary
​
*** Keywords ***
百度搜索京东
    open browser  http://www.jd.com  chrome
    input text  id=kw  京东
    click element  id=su
    close browser
​
*** Test Cases ***
caset01
    百度搜索京东

关键字表的设置

  • [Documentation]

    描述,用户关键字功能描述

  • [Tags]

    标签

  • [Arguments]

    形参的定义,参也有位置参数、默认参数、可变参数、关键字参数等

  • [Return]

    返回值

  • [Setup]/[Teardown]

    环境的初始化和清除

  • [Timeout]

    超时时间

*** Settings ***
Library  SeleniumLibrary
​
*** Keywords ***
百度搜索京东
    [Documentation]  打开百度然后搜索京东
    #定义了连个形参
    [Arguments]  ${url}  ${browser}
    [Tags]  mytag
    [Setup]  log to console   环境初始化
    [Teardown]   log to console  环境清除
    [Timeout]  5
    open browser  ${url}  ${browser}
    input text  id=kw  京东
    click element  id=su
    close browser
    #返回值
    [Return]  搜索京东成功!!!
​
*** Test Cases ***
case01
    ${result}  百度搜索京东  http://www.baidu.com    chrome
    log to console  ${result}

4.资源文件

资源文件

测试用例文件和测试套件初始化文件中的用户关键字和变量只能在创建它们的文件中使用,但是资源文件提供了一种 共享 它们的机制。(其实就类似于python中在一个模块调用其他模块的函数)由于资源文件结构非常接近 测试用例 文件,因此创建它们很容易。

使用资源文件

使用 设置表 中的 资源设置 导入资源文件。资源文件的路径在设置名称后的单元格中给出。

*** Settings ***
Resource    example.resource
Resource    ../data/resources.robot
Resource    ${RESOURCES}/common.resource
注意:
    导入资源文件使用resource 在setting中声明

资源文件规则:

1)在测试套件文件中定义关键字的问题
只能在本测试套件有效,无效共享给其他测试套件使用
2)如果其他套件需要使用别的套件中定义的关键字就需要使用资源文件
3)资源文件其实就是RF层面的库文件
里面可以包含用来共享的变量和关键字
资源文件的格式基本也和测试套件文件类似

例子:

我有账户管理目录下面有一个test3.robot资源文件中定义了一个关键字名字为:百度搜索京东

1

需要在账户管理目录下的套件文件test4.robot中导入此关键字,编写测试用例,导入资源文件使用resource 在setting中声明

2

资源文件的结构

资源文件的结构与 测试用例 文件的结构相同,但是,它们当然 不能包含测试用例表

此外,资源文件中的设置表只能包含 导入设置(库,资源,变量)和文档。变量表和关键字表的使用方式与测试用例文件中使用的方式完全相同。

*** Settings ***
Documentation     An example resource file
Library           SeleniumLibrary
Resource          ${RESOURCES}/common.resource
​
*** Variables ***
${HOST}           localhost:7272
${LOGIN URL}      http://${HOST}/
${WELCOME URL}    http://${HOST}/welcome.html
${BROWSER}        Firefox
​
*** Keywords ***
Open Login Page
    [Documentation]    Opens browser to login page
    Open Browser    ${LOGIN URL}    ${BROWSER}
    Title Should Be    Login Page
​
Input Name
    [Arguments]    ${name}
    Input Text    username_field    ${name}
​
Input Password
    [Arguments]    ${password}
    Input Text    password_field    ${password}
posted @ 2018-11-23 15:37  酒剑仙*  阅读(268)  评论(0编辑  收藏  举报