前言
在进行自动化测试时,有时候多条测试用例会共用或者依赖某一功能,如果这这一个所依赖的功能报错时,其他依赖的用例全部不能运行。 就比如A用例、B用例执行前都要进行登录,如果登录方法错误了,那么A、B用例都不会运行,那有没有这样一个功能呢,就是依赖的登录用例错的话,只要操作A报错后,B用例就直接跳过不再执行,并且被标记为失败用例。其实Pytest中已经帮我们想到了,那就是使用xfail用例标记为失败的用例。
设计思路
我们以一个登录操作实例进行说明,
1、首先把登录写为前置操作,并对登录的密码、账号进行参数化。
2、将多个用例test_01,test_02、test_03放在同一个class类中
3、test_01,test_02、test_03全部调用登录方法
4、设置test_02、test_03执行前用if判断登录的结果,登陆失败的话就执行,pytest.xfail("登录不成功, 标记为 xfail"),具体代码如下:
import pytest
canshu = [{'user':'admin','psw':'123'}]
@pytest.fixture(scope='module')
def login(request):
user = request.param['user']
psw = request.param['psw']
print('正在进行操作登录:%s,%s'%(use