pytest十:用例 a 失败,跳过测试用例 b 和 c 并标记失败 xfail
当用例 a 失败的时候,如果用例 b 和用例 c 都是依赖于第一个用例的结果,那可以直接跳过用例 b 和 c 的测试,直接给他标记失败 xfail
用到的场景,登录是第一个用例,登录之后的操作 b 是第二个用例,登录之后操作 c 是第三个用例,很明显三个用例都会走到登录。
如果登录都失败了,那后面 2 个用例就没测试必要了,直接跳过,并且标记为失败用例,这样可以节省用例时间。
用例设计
pytest 里面用 xfail 标记用例为失败的用例,可以直接跳过。实现基本思路
把登录写为前置操作
对登录的账户和密码参数化,参数用 canshu = [{"user":"amdin", "psw":"111"}]表示
多个用例放到一个 Test_xx 的 class 里
test_01,test_02, test_03 全部调用 fixture 里面的 login 功能
test_01 测试登录用例
test_02 和 test_03 执行前用 if 判断登录的结果,登录失败就执行,pytest.xfail("登录不成功, 标记为 xfail")


import pytest
canshu = [{'user': 'admin', 'psw': '111'}]
@pytest.fixture(scope='module')
def login(request):
user = request.param['user']
psw = request.param['psw']
print(f'\n正在操作登录,账号:{user},密码:{psw}')
if psw:
return True
else:
return False
@pytest.mark.parametrize('login', canshu, indirect=True)
class Test_xx():
def test_01(self, login):
'''用例1登录'''
result = login
print(f'用例1{result}')
assert result == True
def test_02(self, login):
result = login
print(f'用例2,登录结果:{result}')
if not result:
pytest.xfail('登录不成功,标记为xfail')
assert 1 == 1
def test_03(self, login):
result = login
print(f'用例3,登录结果:{result}')
if not result:
pytest.xfail('登录不成功,标记为xfail')
assert 1 == 1
if __name__=='__main__':
pytest.main()
上面传的登录参数是登录成功的案例,三个用例全部通过 标记为 xfail
再看看登录失败情况的用例,修改登录的参数


从结果可以看出用例 1 失败了,用例 2 和 3 没执行,直接标记为xfail 了
import pytest
canshu = [{'user': 'admin', 'psw': ''}]
@pytest.fixture(scope='module')
def login(request):
user = request.param['user']
psw = request.param['psw']
print(f'\n正在操作登录,账号:{user},密码:{psw}')
if psw:
return True
else:
return False
@pytest.mark.parametrize('login', canshu, indirect=True)
class Test_xx():
def test_01(self, login):
'''用例1登录'''
result = login
print(f'用例1{result}')
assert result == True
def test_02(self, login):
result = login
print(f'用例2,登录结果:{result}')
if not result:
pytest.xfail('登录不成功,标记为xfail')
assert 1 == 1
def test_03(self, login):
result = login
print(f'用例3,登录结果:{result}')
if not result:
pytest.xfail('登录不成功,标记为xfail')
assert 1 == 1
if __name__=='__main__':
pytest.main()
pytest十:用例 a 失败,跳过测试用例 b 和 c 并标记失败 xfail的更多相关文章
- pytest文档16-用例a失败,跳过测试用例b和c并标记失败xfail
前言 当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给他标记失败xfail 用到的场景,登录是第一个用例,登录之后的操作b是第二个用例,登录之后 ...
- pytest_用例a失败,跳过测试用例b和c并标记失败xfail
前言 当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给他标记失败xfail用到的场景,登录是第一个用例,登录之后的操作b是第二个用例,登录之后操 ...
- 用例a失败,跳过测试用例b和c并标记失败xfail
前言 当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给他标记失败xfail用到的场景,登录是第一个用例,登录之后的操作b是第二个用例,登录之后操 ...
- 【pytest官方文档】解读Skipping test functions,跳过测试用例详解
有时候,为了满足某些场景的需要,我们知道有些测试函数在这时候肯定不能执行,或者执行了也会失败.那么我们 可以选择去跳过这个测试函数,这样也就不会影响整体的测试函数运行效果,不至于在你运行的众多绿色通过 ...
- python nose测试框架全面介绍十---用例的跳过
又来写nose了,这次主要介绍nose中的用例跳过应用,之前也有介绍,见python nose测试框架全面介绍四,但介绍的不详细.下面详细解析下 nose自带的SkipTest 先看看nose自带的S ...
- Pytest执行用例报Hint: make sure your test modules/packages have valid Python names.
近日,使用Pytest+Appium 实现APP端UI自动化,遇到Pytest收集用例失败的情况. 报错信息如下: test_room.py:None (test_room.py) ImportErr ...
- 『德不孤』Pytest框架 — 4、Pytest跳过测试用例
目录 1.无条件跳过skip 2.有条件跳过skipif 3.练习 自动化测试执行过程中,我们常常出现这种情况:因为功能阻塞,未实现或者环境有问题等等原因,一些用例执行不了, 如果我们注释掉或删除掉这 ...
- MOOC(7)- case依赖、读取json配置文件进行多个接口请求-跳过测试用例(6)
初始化.跳过测试用例 # test_class_6.py import unittest from mock import mock from day_20200208_mooc.base.inter ...
- VMWare虚拟机提示:锁定文件失败,打不开磁盘...模块"Disk"启动失败的解决办法
我出现该问题的原因: 昨天电脑一下子卡死,于是我就重启了电脑,重启之后我没有打开VMware虚拟机,结果第二天一上班打开VMware就发现出现了“锁定文件失败,打不开磁盘......模块"D ...
随机推荐
- JQuery实现轮播图及其原理
源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" name="vi ...
- Eclipse使用总结(不定时更新)
1.安装activiti插件 (1)在线下载 点击Add输入Location:http://activiti.org/designer/update/ Name:Activiti (2)本地安装 ...
- ansible-playbook && Roles && include
先看一个yml文件示例 --- - hosts: webservers #主机组 vars: ##变量设置 http_port: 80 max_clients: 200 remote_user: ro ...
- git 分支branch
转:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137584003893 ...
- Nginx 学习笔记(一)如何配置一个安全的HTTPS网站服务器
一.系统环境 1.系统:Ubuntu 16.04.2 LTS 2.WEB服务器:Openresty11.2.5 二.开始配置 1.获取certbot客户端 wget https://dl.eff.or ...
- bean之间的继承和依赖关系
继承Bean配置 Spring允许继承bean的配置,被继承的bean称为父bean,继承这个父Bean的Bean称为子Bean 子Bean从父Bean中继承配置,包括Bean的属性配置 子Bean可 ...
- js 原生 ajax
//js ajax function Ajax(url,type,data,comFun,sucFun,errFun) { //1.创建XMLHttpRequest对象 var xmlHttpRequ ...
- POJ1236 Network of Schools【强连通】
题意: N(2<N<100)各学校之间有单向的网络,每个学校得到一套软件后,可以通过单向网络向周边的学校传输,问题1:初始至少需要向多少个学校发放软件,使得网络内所有的学校最终都能得到软件 ...
- stm32中字节对齐问题(__align(n),__packed用法)
ARM下的对齐处理 from DUI0067D_ADS1_2_CompLib 3.13 type qulifiers 有部分摘自ARM编译器文档对齐部分 对齐的使用: 1.__align(n ...
- python - getattr 与 getattribute 机制
#__getattribute__ class Foo(): def __init__(self,name): self.name = name def __getattr__(self, item) ...