1、概要
在执行用例前我们会有一些前置,执行完后有后置,例如做APP自动化测试,所有的用例执行前要启动appium server,要做好session连接,全部用例执行完后要关闭appium server.有的用例执行前要登录,执行完后要退出登录,所以前置和后置的使用非常重要。
前置和后置有两种,一种是用setup和teardown,另外是用fixture,本篇先介绍setup和teardown,后面一篇介绍fixture。
ps:本篇纯粹是介绍用法,写的也都全部是毫无意义的用例和前置,目的是了解可以用于深处场景,至于要怎么用就要结合自己的自动化测试场景了。
2、分类
setup、teardown和setup_model、teardown_model,模块级别的前置,在模块第一个用例执行前执行setup,在模块最后一个用例执行完后执行teardwon。setup、teardown和setup_model、teardown_model的应用区间一样,当同时有setup、teardown和setup_model、teardown_model,setup、teardown不生效。
setup_function和teardown_function,setup_function在每个测试用例之前执行,teardown_function在每个测试用例之后执行,只作用于类外面的测试用例
setup_class、teardown_class。setup_class在执行的测试类中第一个测试用例之前执行,teardown_class在测试类最后一个测试用例之后执行。特别注意,setup_class、teardown_class要定义在类里面
setup_method、teardown_method。测试类里面每个用例之前的前后执行,需要定义在类里面,作用于类里面的测试用例
3、代码示例
3.1setup、teardown
from BaseLog import logger
import pytest
def setup():
print ("这里是setup")
def teardown():
print ("这里是teardown")
def test_case1():
#测试函数
Expected = 2
Actual = 2
print("我是test_case1")
assert Expected == Actual
def test_case2():
#测试函数
Expected = 1
Actual = 2
print("我是test_case2")
assert Expected != Actual
class TestClass:
def test_case3(self):
#测试函数
Expected = 1
Actual = 2
print("在TestClass里面的test_case3")
assert Expected != Actual
def test_case4(self):
#测试函数
Expected = 1
Actual = 2
print("在TestClass里面的test_case4")