Robot Framwork使用说明
一、框架介绍
1、Settings:设置项,包括导入库、导入变量,设置变量、设置setup、teardown等。
用法示例:
*** Settings ***
Library DateTime 导入DateTime库,导入系统内置库
Resource keywords.robot 导入用户自定义关键字集
Variavles name 导入变量文件
Test Setup/Test Teardown 设置测试用例的setup/teardown
Suite Setup/Suite Teardown 设置测试套件的setup/teardown
Force Tags/Default Tags 设置标签
Test Timeout 设置测试用例运行超时时间
Documentation 添加说明
2、Keywords:关键字(类似函数),也相当于方法,可以被其他关键字调用 也可以定义返回值
3:Test Cases:测试用例,执行后会显示执行的结果
4、Variables:申明当前文件的全局变量 可作用整个文件
示例:
*** Setting ***
Library BuiltIn
*** Variables ***
${global_val} global!
*** Test Cases ***
ceshi
[Documentation] 在此用例定义的变量作用域只在此用例
${s} SET VARIABLE hello,world!
log ${s}
dayin
*** Keywords ***
dayin
[Documentation] 打印字符串
${p} SET VARIABLE i can use kungfu!
log ${p}
log ${global_val}
二、变量
1、变量类型:
1)纯值变量(只有一个值):${变量名}
==> 表示一个数据。作为参数传递,表示一个参数。
2)list变量:@{变量名}
==> 表示一组数据。作为参数传递时,有几个数据就是几个参数。
3)dict变量:&{变量名}
==> 表示一组键值对数据。作为参数传递时,有几个键值对就是几个参数
${str} SET VARIABLE 变量
@{list_value} Create List a b c #元素之间不能用空格,空格也代表元素的内容
&{dic_value} Create Dictionary a=1 b=2
注意⚠️:关于变量声明,由于RF底层时python实现的,所以RF与python创建变量类似,变量不需要特定声明,只要有初始化赋值即可使用,默认情况下RF里的变量都是字符类型的。
示例:
*** Setting ***
Library BuiltIn
*** Test Cases ***
ceshi
[Documentation] 在此用例定义的变量作用域只在此用例
@{list} Create List red yellow green
#元素之间不能用空格,空格也代表元素的内容
&{dict} Create Dictionary a=1 b=2 c=3
log ${list}
#当list和dict作为整个参数传递时,必须使用$(变量名)的方式,否则list/dict中的元素会被单独作为参数
log ${list[1]}
log ${dict}
log ${dict.a}
log ${dict["a"]}
2、变量的定义与作用域:
1)局部变量
2)全局变量
3)变量文件
示例1:设置局部变量为套件级别的变量 Set Suite Variable
定义当前套件全局有效的变量 Variable
在变量文件中定义,然后引用变量文件中定义的变量,此处的变量文件指的是.py文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yL6FkpgS-1678170335004)(https://img2020.cnblogs.com/blog/825987/202012/825987-20201216102445631-959907614.png)]
3、变量的一些常见操作
常见列表的操作
常见字典的操作
常见断言
三、流程语句
1、FOR循环
*** Setting ***
Library BuiltIn
*** Test Cases ***
ceshi
FOR ${i} IN RANGE ${5}
log to console ${i}
END
FOR ${j} IN a b c
log to console ${j}
END
结果:
ceshi
1
2
3
4
a
b
c
| PASS |
2、IF语句
正常体
*** Setting ***
Library BuiltIn
*** Test Cases ***
ceshi
FOR ${i} IN RANGE ${5}
log to console ${i}
BuiltIn.Run Keyword If '${i}'=='1' log 数值1
... ELSE IF '${i}'=='2' log 数值2
... ELSE log 数值不匹配
END
如果成功退出循环
*** Setting ***
Library BuiltIn
*** Test Cases ***
ceshi
FOR ${i} IN RANGE ${5}
BuiltIn.Exit For Loop If '${i}'=='1'
log ${i}
END
设置变量
*** Setting ***
Library BuiltIn
*** Test Cases ***
ceshi
FOR ${i} IN RANGE ${5}
${j} BuiltIn.Set Variable If '${i}'=='1' 1 2
log ${j}
END
四、RF测试用例编写
在RF中,做任何事都是通过调用关键字来完成的,当然书写测试用例也是通过调用关键字来实现的。
那么RF的关键字从哪来呢?
==> 1)内置关键字:直接调用/先引入再调用
==> 2)第三方关键字:先安装-再引入-再调用
==> 3)自定义关键字:使用python语言实现
以上三种关键字可以统称为“系统关键字”
==> 4)用户关键字:不是通过代码实现的,用RF的语法编写的,主要用来表达业务,因此又叫业务关键字
*** Setting ***
Library BuiltIn
*** Variables ***
${global_val} global!
*** Test Cases ***
ceshi
[Documentation] 在此用例定义的变量作用域只在此用例
${s} SET VARIABLE hello,world!
BuiltIn.Log ${s}
${s} dayin ${1} ${2}
BuiltIn.Log ${s}
#用户关键字
*** Keywords ***
dayin
[Arguments] ${a} ${b}
[Documentation] 打印字符串
${p} SET VARIABLE i can use kungfu!
log ${p}
log ${global_val}
${sum} Evaluate ${a}+${b}
[Return] ${sum}
项目基本目录架构