使用fixture
@pytest.fixture(scope=”function”,autouse= False, params=loginutil(),ids=[0,1,2],name="login")
各个参数详解
Scope:作用域
Function: 用例之前和之后
Class: 类之前和之后
Package/session :#整个项目会话之前和之后
Function:
- 手动方式,在测试用例参数里加入fixture的名称
- Fix通过return或yield返回的话,则可以通过固件名字传递到测试用例当中
Class:
- 手动调用 @pytest.mark.userfixture(“fixture名称”)
Package/session
- 一般结合conftest.py文件来实现
Autouse = True #自动执行,所有用例自动执行,默认是False
@pytest.fixture(scope=”function”)
def exe_database_sql():
print(“”) #之前执行
yield
print(“”) #之后执行
Class TestMashang():
def test_yiran(self, exe_database_sql):
#会执行部分前置内容
Params: 实现参数化
- def exe_runcase(request):
print(request.param)
#request 和request.param是固定用法,会按照参数逐个执行
Ids: 不能单独使用,必须和param一起使用,作用是给参数起别名
name: 给fixture取别名
scope=”function”,autouse= False, params
实例:
执行结果result
如果希望另外一个py文件中执行,则需要跟contest.py文件的使用,见下一章节
标签:Pytest,request,fixture,pytest,测试用例,参数,执行 From: https://www.cnblogs.com/woniuguoguo/p/17380782.html