一、前言

当用例a失败的时候,如果用例b和用例c都是依赖于第一个用例的结果,那可以直接跳过用例b和c的测试,直接给他标记失败xfail

用到的场景,登录是第一个用例,登录之后的操作b是第二个用例,登录之后操作c是第三个用例,很明显三个用例都会用到登录操作。

例,很明显三个用例都会用到登录操作。

如果登录都失败了,那后面2个用例就没测试必要了,直接跳过,并且标记为失败用例,这样可以节省用例时间。

二、用例设计

pytest里面用xfail标记用例未失败的用例,可以直接跳过。实现基本思路:

1.把登录写为前置操作;

2.对登录的用户和密码参数化,参数用canshu = [{"user":"admin","pws":"111"}]表示;

3.多个用例放到一个Test_xx的class里;

4.test_01,test_02,test_03全部调用fixture里面的login功能;

5.test_01测试登录用例

6.test_02和test_03执行前用if判断登录的结果,登录失败就执行,pytest.xfail("登录不成功,标记为xfail")

importpytest

data= [{"user":"admin","psw":"111"},{"user":"","psw":""}]

@pytest.fixture(scope="module")deflogin(request):

user= request.param["user"]

psw= request.param["psw"]print("正在操作登录,账号:%s,密码:%s"%(user,psw))ifpsw:returnTrueelse:returnFalse

@pytest.mark.parametrize("login",data,indirect=True)classTest_xx():deftest_01(self,login):"""用例1登录"""result=loginprint("用例1:%s"%result)assert result ==Truedeftest_02(self,login):

result=loginprint("用例2:%s"%result)if notresult:

pytest.xfail("登录不成功,标记为xfail")assert 1==1

deftest_03(self,login):

result=loginprint("用例3:%s"%result)if notresult:

pytest.xfail("登录不成功,标记为xfail")if __name__=="__main__":

pytest.main(["-s","test_05.py"])

运行结果:

F用例1:False

test_05.py:16(Test_xx.test_01[login1])

False!=True

Expected :True

Actual :Falseself= login=Falsedeftest_01(self,login):"""用例1登录"""result=loginprint("用例1:%s"%result)> assert result ==True

Eassert False ==True

test_05.py:21: AssertionError

x用例2:False

self= login=Falsedeftest_02(self,login):

result=loginprint("用例2:%s"%result)if notresult:> pytest.xfail("登录不成功,标记为xfail")

E _pytest.outcomes.XFailed: 登录不成功,标记为xfail

test_05.py:27: XFailed

x用例3:False

self= login=Falsedeftest_03(self,login):

result=loginprint("用例3:%s"%result)if notresult:> pytest.xfail("登录不成功,标记为xfail")

E _pytest.outcomes.XFailed: 登录不成功,标记为xfail

test_05.py:34: XFailed

[100%]

上面传的登录参数是登录成功的案例,三个用例全部通过;第二组参数登录失败,第一个用例就失败了,用例2和3都没执行,直接标记为xfail。

python考试pass or fail_python-pytest学习(十二)-标记失败xfail相关推荐

  1. OpenCV与图像处理学习十二——图像形状特征之HOG特征

    OpenCV与图像处理学习十二--图像形状特征之HOG特征 一.图像特征理解 1.1 颜色特征 1.2 纹理特征 1.3 形状特征 1.4 空间关系特征 二.形状特征描述 2.1 HOG特征 2.1. ...

  2. PyTorch框架学习十二——损失函数

    PyTorch框架学习十二--损失函数 一.损失函数的作用 二.18种常见损失函数简述 1.L1Loss(MAE) 2.MSELoss 3.SmoothL1Loss 4.交叉熵CrossEntropy ...

  3. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  4. 【FastAPI 学习十二】定时任务篇 (移步博客园或个人网站 无广告,界面清爽整洁)

    声明 目前个人放弃CSDN平台,文章只发布于个人网站和博客园 博客园地址 [FastAPI 学习十二]定时任务篇

  5. C1认证学习十二(网络拓扑)

    C1认证学习十二(网络拓扑) 任务背景 互联网是一个广义的概念,它泛指是一切通过网路连接在一起的计算机的集合,所以,若果只是局部观察,那就不能再说互联网是一个互联的了,那么,如果说对于一个公司来说,具 ...

  6. Js高级程序设计第三版学习(十二章)

                                  Js高级程序设计第三版学习(十二章) 第十二章 DOM2和DOM3   1.样式: 访问样式属性 任何支持style特性的HTML元素都有一 ...

  7. python考试pass or fail_Pytest官方教程-12-skip及xfail: 处理不能成功的测试用例

    目录: skip及xfail: 处理不能成功的测试用例 你可以标记无法在某些平台上运行的测试用例或你希望失败的测试用例,以便pytest可以相应地处理它们并提供测试会话的摘要,同时保持测试套件为通过状 ...

  8. Python在机器学习中的应用--第十二章深度学习

    第十二章深度学习 import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import Font ...

  9. linux中ftp的工作原理,Linux系统学习 十二、VSFTP服务—简介与原理

    1.简介与原理 互联网诞生之初就存在三大服务:WWW.FTP.邮件 FTP主要针对企业级,可以设置权限,对不同等级的资料针对不同权限人员显示. 但是像网盘这样的基本没有权限划分. 简介: FTP(Fi ...

最新文章

  1. GCC 编译 C++ 程序分步骤流程(预处理 gcc -E、编译 gcc -S、汇编 gcc -c 和链接 gcc 以及 gcc -o 选项)
  2. PHP使用BC Math 函数处理浮点运算问题
  3. java屏幕快速截图,java代码实现截图功能(屏幕截图)
  4. 分析器错误信息: 未能加载类型命名空间.类... ---小结
  5. 清华大学操作系统OS学习(八)——虚拟存储概念
  6. 基于selenium的大麦网自动抢票脚本实测(新年第一篇)
  7. [ERROR] InnoDB: Write to file (merge)failed at offset 4249878528, 1048576 bytes should have been wri
  8. java doc转pdf又来了,这一次超简单
  9. 【Java每日面试题】大厂是如何设计秒杀系统的,渣本Java开发小伙如何一步步成为架构师
  10. Tony Chen的专栏
  11. CAJ格式文档转PDF格式文档的办法(不需要下载杂七杂八的软件或者充会员)
  12. Tomcat网站服务
  13. 数字电路器件——门电路——与门电路、或门电路、非门电路及实例
  14. PAT练习 蜜蜂寻路
  15. Java新手小白入门篇 Java项目的构建
  16. iOS 逆向编程(五)通过 (OpenSSH) Wifi 远程连接登录 iPhone
  17. 人工智障和神经病网络对话--30行python让图灵机器人和茉莉机器人无止尽的瞎扯蛋
  18. [ 生成函数 ] Codeforces891E Lust
  19. 使用WebMagic+ActiveMQ+Quartz实现全国城镇天气自动更新的API接口开发
  20. drbd mysql性能_drbd性能测试及调优

热门文章

  1. Java抽象类与接口的区别
  2. Hadoop自带的一些程序示例
  3. Sed教程(三):模式缓冲区、模式范围
  4. Stanford UFLDL教程 神经网络向量化
  5. 数字图像处理:第十章 离散图象变换
  6. 用Python实现一个1加到n求和功能的函数
  7. 《大话数据结构》第9章 排序 9.8 归并排序(上)
  8. npm包全局安装和局部安装,执行包命令有什么不同?
  9. 个人博客(前端菜鸡)持续开发中,可前往 欢迎访问. www.amayaliu.cn
  10. Debian Security Advisory(Debian安全报告) DSA-4407-1 xmltooling