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实现多线程下载文件的代码实例
Jun 01 Python
在Apache服务器上同时运行多个Django程序的方法
Jul 22 Python
python使用str & repr转换字符串
Oct 13 Python
matplotlib设置legend图例代码示例
Dec 19 Python
转换科学计数法的数值字符串为decimal类型的方法
Jul 16 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
python+splinter自动刷新抢票功能
Sep 25 Python
Python匿名函数/排序函数/过滤函数/映射函数/递归/二分法
Jun 05 Python
python项目对接钉钉SDK的实现
Jul 15 Python
python 根据字典的键值进行排序的方法
Jul 24 Python
Python爬虫:Request Payload和Form Data的简单区别说明
Apr 30 Python
Django中的JWT身份验证的实现
May 07 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 MessagePack介绍
2013/10/06 PHP
javascript some()函数用法详解
2014/11/13 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
2017/09/30 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
新浪中用来显示flash的函数
2007/04/02 Javascript
JS 表单验证大全
2011/11/23 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
js获取class的所有元素
2013/03/28 Javascript
js实现倒计时(距离结束还有)示例代码
2013/07/24 Javascript
jQuery获取当前对象标签名称的方法
2014/02/07 Javascript
jQuery拖拽div实现思路
2014/02/19 Javascript
jQuery插件分享之分页插件jqPagination
2014/06/06 Javascript
javascript实现日期时间动态显示示例代码
2015/09/08 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
JavaScript计时器用法分析【setTimeout和clearTimeout】
2017/01/18 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
js实现搜索栏效果
2018/11/16 Javascript
element-ui如何防止重复提交的方法步骤
2019/12/09 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
详解ES6中class的实现原理
2020/10/03 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python的批量远程管理和部署工具Fabric用法实例
2015/01/23 Python
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
Django中Forms的使用代码解析
2018/02/10 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
django解决跨域请求的问题
2018/11/11 Python
Django框架实现的简单分页功能示例
2018/12/04 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
canvas实现飞机打怪兽射击小游戏的示例代码
2018/07/09 HTML / CSS
谢师宴家长答谢词
2015/09/30 职场文书
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
Python OpenCV超详细讲解调整大小与图像操作的实现
2022/04/02 Python
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
2022/12/24 HTML / CSS