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常用内置函数总结
Feb 08 Python
Python中的二维数组实例(list与numpy.array)
Apr 13 Python
深入浅析python 中的匿名函数
May 21 Python
Python3.4解释器用法简单示例
Mar 22 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
Django框架创建项目的方法入门教程
Nov 04 Python
python实现字典嵌套列表取值
Dec 16 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
Apr 01 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 Python
PyQt5中QSpinBox计数器的实现
Jan 18 Python
python保存大型 .mat 数据文件报错超出 IO 限制的操作
May 10 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
如何选购合适的收音机
2021/03/01 无线电
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php操作MongoDB类实例
2015/06/17 PHP
详解WordPress中简码格式标签编写的基本方法
2015/12/22 PHP
微信公众号模板消息群发php代码示例
2016/12/29 PHP
PHP多进程之pcntl_fork的实例详解
2017/10/15 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
JS简单实现String转Date的方法
2016/03/02 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
jquery树形菜单效果的简单实例
2016/06/06 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
Mvc提交表单的四种方法全程详解
2016/08/10 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
weUI应用之JS常用信息提示弹层的封装
2016/11/21 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
详解基于node的前端项目编译时内存溢出问题
2017/08/01 Javascript
原生JavaScript来实现对dom元素class的操作方法(推荐)
2017/08/16 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
vue.js学习笔记之v-bind和v-on解析
2018/05/03 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
说说如何使用Vuex进行状态管理(小结)
2019/04/14 Javascript
小程序自动化测试的示例代码
2020/08/11 Javascript
Python语言的12个基础知识点小结
2014/07/10 Python
django定期执行任务(实例讲解)
2017/11/03 Python
Python实现螺旋矩阵的填充算法示例
2017/12/28 Python
详解Python发送email的三种方式
2018/10/18 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
详解html2canvas截图不能截取圆角图片的解决方案
2018/01/30 HTML / CSS
公司募捐倡议书
2014/05/14 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
公司搬迁通知
2015/04/20 职场文书