Pytest mark使用实例及原理解析


Posted in Python onFebruary 22, 2020

这篇文章主要介绍了Pytest mark使用实例及原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

使用方法:

1、注册标签名

2、在测试用例/测试类前面加上:@pytest.mark.标签名

打标记范围:测试用例、测试类、模块文件

注册方式:

1、单个标签:

在conftest.py添加如下代码:

def pytest_configure(config):
  # demo是标签名
  config.addinivalue_line("markers", "demo:示例运行")

2、多个标签:

在conftest.py添加如下代码:

def pytest_configure(config):
  marker_list = ["testdemo", "demo", "smoke"] # 标签名集合
  for markers in marker_list:
    config.addinivalue_line("markers", markers)

3、添加pytest.ini 配置文件(在你项目的任意一个文件下,新建一个file,文件命名为pytest.ini)

[pytest]
markers=
  smoke:this is a smoke tag
  demo:demo
  testdemo:testdemo

使用方法:

import pytest


@pytest.mark.testdemo
def test_demo01():
  print("函数级别的test_demo01")


@pytest.mark.smoke
def test_demo02():
  print("函数级别的test_demo02")


@pytest.mark.demo
class TestDemo:
  def test_demo01(self):
    print("test_demo01")

  def test_demo02(self):
    print("test_demo02")

运行方式:

1、命令行模式

通过标记表达式执行
pytest -m demo
这条命令会执行被装饰器@pytest.mark.demo装饰的所有测试用例

生成html报告:
pytest -m demo --html=Report/report.html

生成xml报告:
pytest -m demo --junitxml=Report/report.xml

运行指定模块:
pytest -m demo --html=Report/report.html TestCases/test_pytest.py

运行指定测试目录
pytest -m demo --html=Report/report.html TestCases/

通过节点id来运行:
pytest TestCases/test_pytest.py::TestDemo::test_demo01

通过关键字表达式过滤执行
pytest -k "MyClass and not method"
这条命令会匹配文件名、类名、方法名匹配表达式的用例

获取用例执行性能数据
获取最慢的10个用例的执行耗时
pytest --durations=10

2、新建run.py文件运行,代码如下:

pytest.main(["-m","demo","--html=Report/report.html"])

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
Jun 10 Python
python实现多线程采集的2个代码例子
Jul 07 Python
用Python创建声明性迷你语言的教程
Apr 13 Python
修改Python的pyxmpp2中的主循环使其提高性能
Apr 24 Python
python实现域名系统(DNS)正向查询的方法
Apr 19 Python
python交互式图形编程实例(二)
Nov 17 Python
TensorFlow模型保存/载入的两种方法
Mar 08 Python
python3+PyQt5自定义视图详解
Apr 24 Python
Python修改列表值问题解决方案
Mar 06 Python
Python 如何安装Selenium
May 06 Python
Python sklearn分类决策树方法详解
Sep 23 Python
python如何通过闭包实现计算器的功能
Feb 22 #Python
postman和python mock测试过程图解
Feb 22 #Python
Python实现链表反转的方法分析【迭代法与递归法】
Feb 22 #Python
Python实现队列的方法示例小结【数组,链表】
Feb 22 #Python
python实现从尾到头打印单链表操作示例
Feb 22 #Python
python实现滑雪游戏
Feb 22 #Python
Python实现栈的方法详解【基于数组和单链表两种方法】
Feb 22 #Python
You might like
PHP接收App端发送文件流的方法
2016/09/23 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
Jquery升级新版本后选择器的语法问题
2010/06/02 Javascript
jQuery实战之品牌展示列表效果
2011/04/10 Javascript
Jquery 过滤器(first,last,not,even,odd)的使用
2014/01/22 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
基于JavaScript实现网页倒计时自动跳转代码
2015/12/28 Javascript
Node.js下自定义错误类型详解
2016/10/17 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
浅谈React之状态(State)
2018/09/19 Javascript
BootStrap中的模态框(modal,弹出层)功能示例代码
2018/11/02 Javascript
详解小程序如何避免多次点击,重复触发事件
2019/04/08 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
NodeJS实现一个聊天室功能
2019/11/25 NodeJs
微信小程序实现电子签名功能
2020/07/29 Javascript
Python判断两个对象相等的原理
2017/12/12 Python
Python字符串格式化%s%d%f详解
2018/02/02 Python
python输出100以内的质数与合数实例代码
2018/07/08 Python
python构建基础的爬虫教学
2018/12/23 Python
详解python-图像处理(映射变换)
2019/03/22 Python
Python 类属性与实例属性,类对象与实例对象用法分析
2019/09/20 Python
Python使用xpath实现图片爬取
2020/09/16 Python
应届毕业生的自我鉴定
2013/11/13 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
幼儿园小班教学反思
2014/02/02 职场文书
个人考核材料
2014/05/15 职场文书
2014年国庆节庆祝建国65周年比赛演讲稿
2014/09/21 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
Apache POI的基本使用详解
2021/11/07 Servers
青岛市的收音机研制与生产
2022/04/07 无线电
Spring IOC容器Bean的作用域及生命周期实例
2022/05/30 Java/Android