当前位置:网站首页>RobotFramework 之 Setup和Teardown

RobotFramework 之 Setup和Teardown

2022-08-09 13:06:00 沉觞流年

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
==============================================================================
原网站

版权声明
本文为[沉觞流年]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_44614026/article/details/115314438