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 中__name__ = '__main__' 的作用
Jul 05 Python
Python深入学习之闭包
Aug 31 Python
centos 下面安装python2.7 +pip +mysqld
Nov 18 Python
在Python中实现贪婪排名算法的教程
Apr 17 Python
Python3 中文文件读写方法
Jan 23 Python
python求质数的3种方法
Sep 28 Python
python的xpath获取div标签内html内容,实现innerhtml功能的方法
Jan 02 Python
PyQt5实现简易电子词典
Jun 25 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
python随机生成大小写字母数字混合密码(仅20行代码)
Feb 01 Python
Python入门基础之数字字符串与列表
Feb 01 Python
python实现股票历史数据可视化分析案例
Jun 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
2016/03/08 PHP
php版微信公众平台接口参数调试实现判断用户行为的方法
2016/09/23 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
js过滤数组重复元素的方法
2010/09/05 Javascript
jQuery图片滚动图片的效果(另类实现)
2013/06/02 Javascript
JS的千分位算法实现思路
2013/07/31 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
基于js实现微信发送好友如何分享到朋友圈、微博
2015/11/30 Javascript
checkbox 选中一个另一个checkbox也会选中的实现代码
2016/07/09 Javascript
vue指令以及dom操作详解
2017/03/04 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
基于nodejs实现微信支付功能
2017/12/20 NodeJs
图文介绍Vue父组件向子组件传值
2018/02/17 Javascript
vue中实现移动端的scroll滚动方法
2018/03/03 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
浅析Angular 实现一个repeat指令的方法
2019/07/21 Javascript
ant design实现圈选功能
2019/12/17 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
Python文件和目录操作详解
2015/02/08 Python
python:print格式化输出到文件的实例
2018/05/14 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python绘制多个子图的实例
2019/07/07 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
公司捐款倡议书
2014/05/14 职场文书
国际语言毕业生求职信
2014/07/08 职场文书
公司周年庆活动方案
2014/08/25 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
高一化学教学反思
2016/02/22 职场文书
mysql 带多个条件的查询方式
2021/06/05 MySQL