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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
Python实现对文件进行单词划分并去重排序操作示例
Jul 10 Python
使用python实现http及ftp服务进行数据传输的方法
Oct 26 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
解决安装python3.7.4报错Can''t connect to HTTPS URL because the SSL module is not available
Jul 31 Python
python编写猜数字小游戏
Oct 06 Python
python做接口测试的必要性
Nov 20 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
Feb 27 Python
Python趣味入门教程之循环语句while
Aug 26 Python
Django如何创作一个简单的最小程序
May 12 Python
Python通过loop.run_in_executor执行同步代码 同步变为异步
Apr 11 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
德劲1104的电路分析与改良
2021/03/01 无线电
解决中英文字符串长度问题函数
2007/01/16 PHP
php中的mongodb select常用操作代码示例
2014/09/06 PHP
php从数组中随机选择若干不重复元素的方法
2015/03/14 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
设定php简写功能的方法
2019/11/28 PHP
jQuery .tmpl(), .template()学习资料小结
2011/07/18 Javascript
jquery验证表单中的单选与多选实例
2013/08/18 Javascript
JavaScript判断字符长度、数字、Email、电话等常用判断函数分享
2015/04/01 Javascript
jquery实现动态改变div宽度和高度
2015/05/08 Javascript
nodejs实现bigpipe异步加载页面方案
2016/01/26 NodeJs
jQuery设置Cookie及删除Cookie实例分析
2016/04/15 Javascript
30分钟快速掌握Bootstrap框架
2016/05/24 Javascript
Bootstrap的fileinput插件实现多文件上传的方法
2016/09/05 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
vue.js从安装到搭建过程详解
2017/03/17 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
详解vuex的简单使用
2018/03/12 Javascript
PM2自动部署代码步骤流程总结
2018/12/10 Javascript
electron-vue开发环境内存泄漏问题汇总
2019/10/10 Javascript
Python3实现发送QQ邮件功能(附件)
2020/12/23 Python
python实现顺序表的简单代码
2018/09/28 Python
Tensorflow模型实现预测或识别单张图片
2019/07/19 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
2020/04/08 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
Python如何实现线程间通信
2020/07/30 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
春季运动会广播稿大全
2014/02/19 职场文书
普通党员整改措施
2014/10/24 职场文书
世界文化遗产导游词
2015/02/13 职场文书
聘任书格式及范文
2015/09/21 职场文书
python中redis包操作数据库的教程
2022/04/19 Python