Robot Framework(十):BuiltIn中常用关键字(上)

目录

Log/Log Many

Library

Set Variable

Set Suite Variable

​​​​​​​Catenate

Create Dictionary

​​​​​​​Create List


​​​​​​​

BuiltIn是robot framework的标准库,提供了最通用和最常用的关键字,使用时会自动导入,下面我们只介绍使用频率较多的一些关键字,如果用到了其它关键字时,去官网查看相关的用法即可,文档的官网:http://robotframework.org/robotframework/#user-guide

Log/Log Many

作用:打印信息,能够设置打印的级别

语法

Name: Log

Source:  BuiltIn <test library>

Arguments:

[ message | level=INFO| html=False| console=False| repr=str| formatter=str]

 

参数说明:

  1. message :要打印的信息
  2. level:消息的级别,支持TRACE, DEBUG, INFO (默认), HTML, WARN和ERROR。如果是WARN和ERROR级别的信息,在命令行下是可见的
  3. html:表示打印的是HTML语法的消息
  4. console:为true的话表示log文件中记录的信息也会在命令行打印一遍
  5. formatter:用来控制字符串输出的个格式,包括str (默认), repr and ascii,和python中的类似
  6. repr:和formatter作用类似,即将被废弃的参数,repr=True等价于 formatter=repr

示例:

*** Test Cases ***

Example

Log Hello, world! # Normal INFO message.

Log Warning, world! WARN # Warning.

Log <b>Hello</b>, world! html=yes # INFO message as HTML.

Log <b>Hello</b>, world! HTML # Same as above.

Log <b>Hello</b>, world! DEBUG html=true # DEBUG as HTML.

Log Hello, console! console=yes # Log also to the console.

Log Null is \x00 formatter=repr # Log 'Null is \x00'.

执行结果:

 

Log Many:和Log类似,只是能同时打印多个信息

示例:

*** Test Cases ***

Log Many Example

    @{list} =    Create List          1    2    3

    &{dict} =    Create Dictionary    key=value    foo=bar

    Log Many  Hello    robot

Log Many  @{list} &{dict}

 

执行结果:

robot -t Log_Many_Example log.robot

注意:命令行下指定用例名用-t参数,如果用例名有空格,那么输入的时候用下划线_代替否则会按参数去解析执行

 

Library

作用:导入指定的库,就可以使用库中的关键字

语法

Name:Import Library

Source:BuiltIn <test library>

Arguments:[ name | *args ]

示例:

*** Settings ***

Library           AppiumLibrary

 

​​​​​​​Set Variable

作用:给一个变量赋值,局部变量

语法

Name:Set Variable

Source:BuiltIn <test library>

Arguments:[ *values ]

示例:

*** Test Cases ***

Example

    # 将字符串赋值给一个变量

${hi} =     Set Variable Hello, world!

# 将变量赋值给变量

${hi2} = Set Variable I said: ${hi}

# 同时给2个变量赋值

${var1} ${var2} =     Set Variable Hello world

# 给一个列表变量赋值

@{list} = Set Variable 1    2    3    4

# 将数字赋值给变量

${item1} ${item2} =     Set Variable 1    2

执行结果:

 

Set Suite Variable

作用:定义一个suite级别的变量,在当前测试套件内均是可用的。如果定义的变量和变量表一致的话,就会发生变量覆盖。suite级别的变量在子suite默认是不可见的,如果想在子suite中使用的话就用children=true作为Set Suite Variable最后一个参数即可。

语法:

Name:Set Suite Variable

Source:BuiltIn <test library>

Arguments:[ name | *values ]

示例:

*** Test Cases ***

Example2

    # 定义一个suite级别字符串变量${SCALAR}

    Set Suite Variable    ${SCALAR}    Hello, world!

    # 重新给变量${SCALAR}赋值

    Set Suite Variable    ${SCALAR}    Hello, world!    children=true

    # 定义一个suite级别列表变量${LIST}

    Set Suite Variable    @{LIST}    First item    Second item

    # 定义一个suite级别字典变量${DICT}

    Set Suite Variable    &{DICT}    key=value    foo=bar

    # 将${DICT}值赋给${ID}

    ${ID} =    Get Variable Value    &{DICT}

    # 将${ID}设置为suite级别的变量

    Set Suite Variable    ${ID}



Example3

    # 直接使用Example2定义的uite级别的变量

    Log Many    &{DICT}

执行结果:

 

​​​​​​​Catenate

作用:将给定的数据拼接,以字符串的形式返回。默认情况下用空格连接,如果想改变连接符的话,需要在调用此关键字时通过第一个参数SEPARATOR=<sep>指定分割符

语法

Name:Catenate

Source:BuiltIn <test library>

Arguments:[ *items ],可变参数

示例:

*** Test Cases ***

Example

${str1} = Catenate Hello world #空格

${str2} = Catenate SEPARATOR=--- Hello world #---

${str3} = Catenate SEPARATOR= Hello world   #无分隔符

log       ${str1}    console=yes

log       ${str2}    console=yes

log       ${str3}    console=yes

执行结果:

 

Create Dictionary

作用:生成一个字典,和Python中的类似

语法:

Name: Create Dictionary

Source: BuiltIn <test library>

Arguments: [ *items ]

如果想要转换成Python的字典可以使用Collections库中的Convert To Dictionary方法

 

示例1:Create Dictionary创建字典的几种方式

*** Test Cases ***

Example1

    # 方式一:key=value syntax

    &{dict} =    Create Dictionary    key=value    foo=bar

    Should Be True    ${dict} == {'key': 'value', 'foo': 'bar'}

    # 方式二:separate key and value

    &{dict2} =    Create Dictionary    key    value    foo    bar

    Should Be Equal    ${dict}    ${dict2}

    # 方式三:使用变量

    &{dict} =    Create Dictionary    ${1}=${2}    &{dict}    foo=new

    Should Be True    ${dict} == {1: 2, 'key': 'value', 'foo': 'new'}

    # 通过点访问字典的key

    Should Be Equal    ${dict.key}    value    # dot-access

说明:

  1. 用key=value的形式生成的字典最终是key:value的形式存在的;
  2. 用key=value的形式生成字典还可以分别列出key,value也可以生成字典,见方式二
  3. 可以通过.访问字典中的key
  4. 等号=可以没有

 

执行结果:

 

 

示例2:Create Dictionary创建的字典和Variables定义的是等价的

*** Variables ***

&{d}              key=value    foo=bar  #定义一个字典变量



*** Test Cases ***

Example2

    Log Many    &{d}

    &{dict} =    Create Dictionary    key=value    foo=bar

    Should Be Equal    ${dict}    ${d}

执行结果:

 

​​​​​​​Create List

作用:生成一个列表,和Python中的类似

语法:

Name: Create List

Source: BuiltIn <test library>

Arguments: [ *items ]

参数可以是变量类似${1}这种形式

 

示例1:Create List创建列表的几种方式

*** Test Cases ***

Example

    # 创建好的列表赋值给列表变量

    @{list}    Create List    a    b    c

    # 创建好的列表赋值给标量

    ${scalar}    Create List    a    b    c

    Log Many    @{list}

    Log          ${scalar}

    # 创建数字类型的列表

    ${ints}    Create List    ${1}    ${2}    ${3}

    Log Many    ${ints}

执行结果:

 

说明:

  1. Create List生成的列表可以赋值个另一个列表,也可以赋值给一个标量,但是并不是一个字典,而是作为一个字符串整体;
  2. 参数可以是数字变量

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值