03-pytest框架结构及调用顺序

 

pytest 框架结构

执行用例前后会执行setup, teardown 来完成用例的前置和后置条件。pytest框架中使用setup, teardown 更灵活,按照用例运行级别可以分为以下几类:

  • 模块级(setup_module/teardown_module)在模块始末调用
  • 函数级(setup_function/teardown_function)在函数始末调用(在类外部)
  • 类级(setup_class/teardown_class)在类始末调用(在类中)
  • 方法级(setup_method/teardown_method)在方法始末调用(在类中)
  • 方法级(setup/teardown)在方法始末调用(在类中,方法细化级别

 

调用顺序

setup_module>setup_class>setup_method>setup>teardown>teardown_method>teardown_class>teardown_module

图解:

03-pytest框架结构及调用顺序

 

验证上面的执行顺序,代码如下:

 1 def setup_module():
 2     print('开始  module')
 3 
 4 
 5 def teardown_module():
 6     print('结束 module')
 7 
 8 
 9 def setup_function():
10     print('开始 function')
11 
12 
13 def teardown_function():
14     print('结束 function')
15 
16 
17 def test_one():
18     print('这是one')
19 
20 
21 class TestDemo:
22 
23     def setup_class(self):
24         print('开始 class')
25 
26     def teardown_class(self):
27         print('结束 class')
28 
29     def setup_method(self):
30         print('开始 method')
31 
32     def teardown_method(self):
33         print('结束 method')
34 
35     def setup(self):
36         print('开始 setup')
37 
38     def teardown(self):
39         print('结束 setup')
40 
41     def test_two(self):
42         print('这是two')
43         assert 1 == 1
44 
45     def test_three(self):
46         print('这是three')
47         assert 1 > 0

 

执行结果:

 1 test_demo2.py 开始  module
 2 开始 function
 3 这是one
 4 .结束 function
 5 开始 class
 6 开始 method
 7 开始 setup
 8 这是two
 9 .结束 setup
10 结束 method
11 开始 method
12 开始 setup
13 这是three
14 .结束 setup
15 结束 method
16 结束 class
17 结束 module

setup_module和teardown_module在整个模块中只执行一次, setup_class和teardown_class在类里面只执行一次,setup_method/teardown_method和setup/teardown 在每个方法前后都会被调用。一般用的最多的是方法级别和类级别。

 

 

 写在最后的话:小白同学愿意和大家一起成长~

 

上一篇:python 打包wheel文件,自己的SDK包


下一篇:katalon等待时间、断言、setup teardown