关键字是RF的核心它提供了用例执行的能力,RF用例之所以可以执行起来全都靠关键字。本篇主要对BuiltIn库常用关键字进行展开讲解,包括“功能类和检查点类关键字的用法操作”。希望感兴趣的小伙伴可以坚持看下去同时欢迎提出宝贵的意见让我们一起进步!
01:本节内容简介
02:RF关键字概述
1)查看关键字的方法:查看文档、源码。
2)官网地址:http://robotframework.org/robotframework/#standard-libraries
3)Builtin是标准库中的内置库,
Shortcuts Keywords
就是关键字目录表,具体介绍每个关键字
内置库关键字(keywords)4)最常用的关键字就在RF的标准库中
03:断言类型关键字(should be开头)
1)特点:如果检查点不通过,下面所有的语句都不会被执行
2)注意:如果按照顺序传递参数不需要写参数名,如果不按顺序或中间有缺省,则需要把参数名带上。
04:should be equal
1)关键字含义:比较2个对象参数值是否相等,不相等就会失败
2)关键字参数:
first, second, msg=None, values=True, ignore_case=False, formatter=str
- 如果
msg=None缺省
,错误信息则表示为“<first>!=<second>”- 如果
msg不缺省且values=True
,错误信息则表示为“msg:<first>!=<second>”- 如果
msg不缺省且value=False
,错误信息则表示为“msg”- 如果
ignore_case=True
,忽略大小写
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 01:
should be equal abC abc
case 02:
should be equal abC abc msg
case 03:
should be equal abC abc msg False
case 04:
should be equal abC abc ignore_case=True
05:set variable
1)关键字含义:设置变量
2)关键字参数:
*values
3)注意:set variable返回的值是字符串
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 05:
#32指的是字面量,但在RF中是以字符串存在的
${var1} set variable 32
${var2} set variable 32
#${var1}和${var2}的值都是字符串
should be equal ${var1} ${var2}
06:convert to number
1)关键字含义:浮点数
2)关键字参数:
item, precision=None
3)注意:convert to number返回的值是浮点数
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 06:
#如何使浮点数32与字符串32相等且都为整数呢?
#方法1:定义一个变量
#方法2:将变量写成${32}
${var} convert to number 32
should be equal ${var} ${32.0}
07:convert to integer
1)关键字含义:整数
2)关键字参数:
item, base=None
3)注意:convert to integer返回的值是整数
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 07:
${var} convert to integer 32
should be equal ${var} ${32}
08:log to console
1)关键字含义:将信息打印到控制台
2)关键字参数:
message, stream=STDOUT, no_newline=False
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 08:
${var} convert to integer 32
log to console ${var}
09:log
1)关键字含义:不输出在控制台,将内容输出在log.html中
2)关键字参数:
message, level=INFO, html=False, console=False, repr=False, formatter=str
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 09:
${var} convert to integer 32
log ${var}
10:should be equal as integers
1)关键字含义:整数转换
2)关键字参数:
first, second, msg=None, values=True, base=None
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 10:
${var} set variable 32
should be equal as integers ${var} 32
log to console ${\n}${var}
11:should be equal as numbers
1)关键字含义:浮点数转换
2)关键字参数:
first, second, msg=None, values=True, precision=6
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 11:
${var} set variable 32.1
should be equal as numbers ${var} 32.1
log to console ${\n}${var}
12:should contain
1)关键字含义:字符串比较(前面是否包含后面)
2)关键字参数:
container, item, msg=None, values=True, ignore_case=False
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 12:
${var} set variable py
should contain python ${var}
log to console ${\n}${var}
13:should start with
1)关键字含义:第二个参数是否以第一个参数为开头
2)关键字参数:
str1, str2, msg=None, values=True, ignore_case=False
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 13:
${var} set variable I like
should start with I like python ${var}
log to console ${\n}${var}
14:should be true☆☆☆
1)关键字含义:如果给定条件不为真,则失败(只能是布尔值)
2)关键字参数:
condition, msg=None
- condition:
python条件表达式
3)注意事项:
在RF中所有传递的字面量如果没有把它以“${}”去计算,则都是作为字符串形式去传递
在用“${}”值去引用一个变量时,会直接把变量的值取出来。不会具体去表现出变量在python中的符号表现形式。
即:如果${var}它的值是一个字符串,取出的值就是字符串本身var,表示的就是var变量
如果在python表达式中想要引用RF中的变量可以直接用“$var”。表示这个python对象本身,如果这个对象是字符串,那么引用的值就是字符串。
condition参数本身是python表达式语句,RF会直接用python解释器的eval函数来解释这个参数表达式
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 14:
${var} set variable abc
log to console ${\n}${var}
#**********错误写法**********
should be true $var == abc
#**********错误写法**********
运行结果如下:
==============================================================================
case 01: .
abc
case 01: | FAIL |
Evaluating expression 'RF_VAR_var ==abc' failed: NameError: name 'abc' is not de
fined
------------------------------------------------------------------------------
03 | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 14:
${var} set variable abc
log to console ${\n}${var}
#**********错误写法**********
should be true ${var} == 'abc'
#**********错误写法**********
运行结果如下:
==============================================================================
case 01: .
abc
case 01: | FAIL |
Evaluating expression 'abc == 'abc'' failed: NameError: name 'abc' is not define
d
------------------------------------------------------------------------------
03 | FAIL |
1 critical test, 0 passed, 1 failed
1 test total, 0 passed, 1 failed
==============================================================================
引用RF中的变量正确写法($var)
*** Settings ***
Library SeleniumLibrary
*** Test Cases ***
case 14:
${var} set variable abc
log to console ${\n}${var}
#方法1:$var
should be true $var == 'abc'
#方法2:加引号'${var}'
should be true '${var}' == 'abc'
#方法3:python表达式
should be true $var in 'abc'