当前位置:网站首页>RobotFramework 之 Setup和Teardown
RobotFramework 之 Setup和Teardown
2022-08-09 13:06:00 【沉觞流年】
RobotFramework 之 初始化与清除
setup
是测试一个用例(套件)前要进行的前置操作teardown
是用例执行结束后的后置操作
在RF中,每个testsuit
(测试套件目录和测试套件文件)、testcase
(测试用例)都可以有自己的setup
和teardown
;所有的setup
和teardown
操作都只能用一个关键字语句构成
语法:
[Setup] + 关键字语句
[Teardown] + 关键字语句
在testcase
中引入setup
和teardown
*** Test Cases ***
用例1
[Setup] log to console 用例初始化开始
[Teardown] log to console 用例结束清除操作
log to console 用例主体部分1
log to console 用例主体部分2
log to console 用例主体部分3
log to console 用例主体部分4
log to console 用例主体部分5
用例2
log to console 用例主体部分1
log to console 用例主体部分2
log to console 用例主体部分3
log to console 用例主体部分4
log to console 用例主体部分5
执行这个用例,从执行结果可以发现,在执行用例主体部分前,执行了setup
里的内容,用例主体执行结束,执行了teardown
里的内容
==============================================================================
用例1 用例初始化开始
.用例主体部分1
.用例主体部分2
.用例主体部分3
.用例主体部分4
.用例主体部分5
.用例结束清除操作
用例1 | PASS |
------------------------------------------------------------------------------
用例2 用例主体部分1
.用例主体部分2
.用例主体部分3
.用例主体部分4
.用例主体部分5
用例2 | PASS |
------------------------------------------------------------------------------
Test11 | PASS |
2 tests, 2 passed, 0 failed
而没有引入setup
和teardown
的用例,则没有执行初始化和清除操作
在testsuit
中引入setup
和teardown
而在项目中,许多用例会用到相同的setup
和teardown
,比如都要用例执行之初用到打开浏览器进行登录操作,用例执行结束要关闭浏览器,总不能每个用例都行写上这两行代码吧,这样显得很累赘
所以,这时候就要用上套件级别的setup
和teardown
而套件级别的setup
和teardown
的使用,有两种
Suit setup / teardown
:进入和退出这个suit
执行用例前后必须执行,且分别只执行一次Test setup / teardown
:如果suit
内的用例本身没有setup
和teardown
,才执行,且每个用例都执行一次
使用套件级别的setup
和teardown
,需要在Settings
表中引入
语法:
*** Settings ***
Suite Setup + 关键字语句
Suite Teardown + 关键字语句
Test Setup + 关键字语句
Test Teardown + 关键字语句
在测试套件文件中引入setup
和teardown
测试套件文件,也就是robot
文件,一个robot
文件中可以有多个测试用例
*** Settings ***
Suite Setup log to console Suite Setup级别用例初始化开始
Suite Teardown log to console Suite Teardown级别用例结束清除操作
Test Setup log to console Test Setup级别用例初始化开始
Test Teardown log to console Test Teardown级别用例结束清除操作
*** Test Cases ***
用例1
[Setup] log to console 用例初始化开始
[Teardown] log to console 用例结束清除操作
log to console 用例主体部分1
log to console 用例主体部分2
用例2
log to console 用例主体部分1
log to console 用例主体部分2
用例3
log to console 用例主体部分1
log to console 用例主体部分2
执行这个robot
文件,可以发现
每一个测试用例,都执行了Suite Setup / Teardown级别
的初始化和清除操作,且不影响原来用例中有的用例级别的Setup / Teardown
初始化和清除操作
但由于用例1
中有了用例级别的Setup / Teardown
初始化和清除操作,所以Test Setup / Teardown级别
的初始化和清除操作针对用例1
没有执行,而用例2
和用例3
,每个都执行了一遍
Test1
==============================================================================
Suite Setup级别用例初始化开始
用例1 用例初始化开始
.用例主体部分1
.用例主体部分2
.用例结束清除操作
用例1 | PASS |
------------------------------------------------------------------------------
用例2 Test Setup级别用例初始化开始
.用例主体部分1
.用例主体部分2
.Test Teardown级别用例结束清除操作
用例2 | PASS |
------------------------------------------------------------------------------
用例3 Test Setup级别用例初始化开始
.用例主体部分1
.用例主体部分2
.Test Teardown级别用例结束清除操作
用例3 | PASS |
------------------------------------------------------------------------------
Suite Teardown级别用例结束清除操作
Test1 | PASS |
3 tests, 3 passed, 0 failed
==============================================================================
在测试套件目录中引入setup
和teardown
新建一个 suite
文件夹,下面新建两个robot
文件
test1.robot
*** Test Cases ***
用例1
[Setup] log to console 用例初始化开始
[Teardown] log to console 用例结束清除操作
log to console 用例主体部分1
log to console 用例主体部分2
用例2
log to console 用例主体部分1
log to console 用例主体部分2
test2.robot
*** Test Cases ***
用例3
log to console 用例主体部分1
log to console 用例主体部分2
用例4
log to console 用例主体部分1
log to console 用例主体部分2
若要运行 suite
目录下的所有测试用例,且都引入setup
和teardown
,则需要在 suite
目录下新建一个 __init__.robot
文件(注意命名,init前后都是两条杠),然后在该文件的Settings
表中引入setup
和teardown
*** Settings ***
Suite Setup log to console Suite Setup级别用例初始化开始
Suite Teardown log to console Suite Teardown级别用例结束清除操作
Test Setup log to console Test Setup级别用例初始化开始
Test Teardown log to console Test Teardown级别用例结束清除操作
使用命令 robot suit
,运行测试套件, 执行suite
目录下的所有测试用例
==============================================================================
Suite
==============================================================================
Suite Setup级别用例初始化开始
Suite.Test1
==============================================================================
用例1 用例初始化开始
.用例主体部分1
.用例主体部分2
.用例结束清除操作
用例1 | PASS |
------------------------------------------------------------------------------
用例2 Test Setup级别用例初始化开始
.用例主体部分1
.用例主体部分2
.Test Teardown级别用例结束清除操作
用例2 | PASS |
------------------------------------------------------------------------------
Suite.Test1 | PASS |
2 tests, 2 passed, 0 failed
==============================================================================
Suite.Test2
==============================================================================
用例3 Test Setup级别用例初始化开始
.用例主体部分1
.用例主体部分2
.Test Teardown级别用例结束清除操作
用例3 | PASS |
------------------------------------------------------------------------------
用例4 Test Setup级别用例初始化开始
.用例主体部分1
.用例主体部分2
.Test Teardown级别用例结束清除操作
用例4 | PASS |
------------------------------------------------------------------------------
Suite.Test2 | PASS |
2 tests, 2 passed, 0 failed
==============================================================================
Suite Teardown级别用例结束清除操作
Suite | PASS |
4 tests, 4 passed, 0 failed
==============================================================================
边栏推荐
- Professor Chen Qiang's "Machine Learning and R Application" course Chapter 13 Assignment
- Process/Thread related in Sandbox - 1
- NC7 买卖股票的最好时机(一)
- read stream special attention
- 5G Unicom Network Management Design Ideas
- kustomize entry example and basic syntax instructions
- RTSP协议讲解
- Standing wave ratio calculation method
- 剑指 Offer 21. 调整数组顺序使奇数位于偶数前面(循环不变量)
- 蓝桥历届真题-蛇形填数
猜你喜欢
关于做2D游戏时,Canvas边界显示在Game窗口的问题
kustomize entry example and basic syntax instructions
搭建大型分布式服务(四)Docker搭建开发环境安装Mysql
PO、DO、TO、VO、DO、DTO、DAO、POJO都是什么?
利用信号灯和共享内存实现进程间同步通信
GIN中GET POST PUT DELETE请求
为什么文字不贴合边
行程和用户[阅读理解法]
技嘉显卡 RGBFusion 不能调光解决方法
Ledong Fire Rescue Brigade was invited to carry out fire safety training for cadres
随机推荐
Professor Chen Qiang "application in machine learning and R" course chapter 17
NC53 删除链表的倒数第n个节点
剑指 Offer 56 - II. 数组中数字出现的次数 II(位运算)
Process/Thread Related in Sandbox - 2
glibc memory management model freeing C library memory cache
javscript基础易错点集合
GET POST PUT DELETE request in GIN
Professor Chen Qiang's "Machine Learning and R Application" course Chapter 16 Assignment
用plot_hist_numeric()实现画直方图
JS本地存储 sessionStorage和localStorage
Unity3d_API_Gyroscope 陀螺仪的接口
kustomize entry example and basic syntax instructions
蓝桥历届真题-跑步锻炼
群组行动控制--自动队列化实现策略
FFmpeg multimedia file processing (implementation of ffmpeg operation directory and list)
Q_06_01 Q#编程语言
Final assignment of R language data analysis in a university
NC161 二叉树的中序遍历
R language kaggle game data exploration and visualization
Anta and Huawei Sports Health jointly verify the champion running shoes and lead Chinese sports with innovation