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中的startswith和endswith函数使用实例
Aug 25 Python
Python 正则表达式(转义问题)
Dec 15 Python
极简的Python入门指引
Apr 01 Python
Python实现读取文件最后n行的方法
Feb 23 Python
python多进程提取处理大量文本的关键词方法
Jun 05 Python
python 获取一个值在某个区间的指定倍数的值方法
Nov 12 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
python 为什么说eval要慎用
Mar 26 Python
Python这样操作能存储100多万行的xlsx文件
Apr 16 Python
Python实现线性插值和三次样条插值的示例代码
Nov 13 Python
PyCharm+Pipenv虚拟环境开发和依赖管理的教程详解
Apr 16 Python
Python爬虫之Selenium多窗口切换的实现
Dec 04 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程序中防止盗链
2008/04/09 PHP
服务器web工具 php环境下
2010/12/29 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
2017/08/01 PHP
ThinkPHP框架中使用Memcached缓存数据的方法
2018/03/31 PHP
PHP的curl函数的用法总结
2019/02/14 PHP
来自chinaz的ajax获取评论代码
2008/05/03 Javascript
javascript call方法使用说明
2010/01/11 Javascript
JavaScript 页面编码与浏览器类型判断代码
2010/06/03 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
Prototype源码浅析 Number部分
2012/01/16 Javascript
js写一个弹出层并锁屏效果实现代码
2012/12/07 Javascript
JavaScript制作的可折叠弹出式菜单示例
2014/04/04 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
node.js中的buffer.length方法使用说明
2014/12/14 Javascript
简单介绍JavaScript数据类型之隐式类型转换
2015/12/28 Javascript
jQuery事件绑定on()与弹窗实现代码
2016/04/28 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
详解JavaScript中双等号引起的隐性类型转换
2016/05/30 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
浅谈react前后端同构渲染
2017/09/20 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
Vue退出登录时清空缓存的实现
2019/11/12 Javascript
JavaScript接口实现方法实例分析
2020/05/16 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
Python匹配中文的正则表达式
2016/05/11 Python
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
Python日志syslog使用原理详解
2020/02/18 Python
Python代码注释规范代码实例解析
2020/08/14 Python
python使用多线程查询数据库的实现示例
2020/08/17 Python
联想德国官网:Lenovo Germany
2018/07/04 全球购物
高级运动鞋:GREATS
2019/07/19 全球购物
2014年幼儿园教师工作总结
2014/11/08 职场文书
2015年节能减排工作总结
2015/05/14 职场文书
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers