RobotFramework 之 Setup和Teardown

本文详细介绍了RobotFramework中如何在测试用例、测试套件文件及测试套件目录级别设置`setup`和`teardown`,用于执行前置和后置操作。通过示例展示了它们的使用方式及其执行顺序,强调了在不同层级设置的好处和应用场景,有助于提升测试效率和代码复用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

setup是测试一个用例(套件)前要进行的前置操作
teardown是用例执行结束后的后置操作

在RF中,每个testsuit(测试套件目录和测试套件文件)、testcase(测试用例)都可以有自己的setupteardown;所有的setupteardown操作都只能用一个关键字语句构成

语法:

[Setup] + 关键字语句
[Teardown] + 关键字语句

testcase中引入setupteardown

*** 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

而没有引入setupteardown的用例,则没有执行初始化和清除操作

testsuit中引入setupteardown

而在项目中,许多用例会用到相同的setupteardown,比如都要用例执行之初用到打开浏览器进行登录操作,用例执行结束要关闭浏览器,总不能每个用例都行写上这两行代码吧,这样显得很累赘

所以,这时候就要用上套件级别的setupteardown

而套件级别的setupteardown的使用,有两种

  • Suit setup / teardown :进入和退出这个suit执行用例前后必须执行,且分别只执行一次
  • Test setup / teardown:如果suit内的用例本身没有setupteardown,才执行,且每个用例都执行一次

使用套件级别的setupteardown,需要在Settings表中引入
语法:

*** Settings ***
Suite Setup + 关键字语句
Suite Teardown + 关键字语句

Test Setup + 关键字语句
Test Teardown + 关键字语句
在测试套件文件中引入setupteardown

测试套件文件,也就是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
==============================================================================

在测试套件目录中引入setupteardown

新建一个 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目录下的所有测试用例,且都引入setupteardown,则需要在 suite目录下新建一个 __init__.robot文件(注意命名,init前后都是两条杠),然后在该文件的Settings表中引入setupteardown

*** 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
==============================================================================
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值