当前位置:网站首页>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 15 Homework
- 正则表达式-re模块
- Microsoft 10/11 命令行打开系统设置页(WUAP,!WIN32)
- render解析
- FFmpeg multimedia file processing (ffmpeg prints audio and video Meta information)
- Q_06_02 类型模型
- 记录本项目中用到的系统调用与C库函数-2
- 程序员的七夕怎么过?不会是写代码吧
- LeetCode 37.解数独
- [FPGA Tutorial Case 48] Image Case 8 - Realization of Converting RGB Image to HSV Image Based on FPGA, Assisted Verification by MATLAB
猜你喜欢
Explanation of RTSP protocol
gin的中间件和路由分组
问题系列-如何修改或更新localhost里的值
Clock frequency and baud rate count for serial communication in FPGA
绘制混合密度函数图以及添加分位数线
乐东消防救援大队应邀为干部开展消防安全培训
【瑞吉外卖】day05:增、删、改、查分类以及公共字段自动填充
GIN中GET POST PUT DELETE请求
面试攻略系列(三)-- 高级开发工程师面试问些啥?
Unicom network management protocol block diagram
随机推荐
Q_06_02 类型模型
Q_06_03 表达式
Q_06_01 Q#编程语言
Q_06_04 语句和其他构造
Q_06_05 文件结构
Q_04_07 进一步探索
周末看点回顾|我国IPv6网络全面建成;2022昇腾AI开发者创享日·南京站成功举办…
ArcEngine(八) 选择要素并高亮显示
Unicom network management protocol block diagram
The sword refers to Offer 56 - II. Number of occurrences of a number in an array II (bit operation)
面试攻略系列(二)-- 秒杀系统
Q_04_06 把它放在一起:传送
Time series analysis course lab report
X264性能优化
NC7 买卖股票的最好时机(一)
telnet+ftp to control and upgrade the device
陈强教授《机器学习及R应用》课程 第十三章作业
蓝桥历届真题-门牌制作
NC84 完全二叉树结点数
利用信号灯和共享内存实现进程间同步通信