我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python pytest装饰器总结(实例详解)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python pytest装饰器总结(实例详解)

几个常用装饰器

pytest.ini 配置文件 例子:


[pytest]
addopts = -v -s --html=py_test/scripts/report/report.html -p no:warnings  --reruns=10
 
testpaths = ./py_test/scripts
python_files= test_rerun.py
python_classes = Test*
python_function = test*
xfail_strict = true

addopts: OPTS 命令行参数集


-s:表示输出调试信息,包括 print打印的信息
-v:显示更详细的信息
-vs:这两个参数一起用
-n :支持多线程或者分布式运行测试用例
     如:pytest -vs ./testcase/test_login.py -n 2
--html : 测试报告位置
--reruns : 失败重跑
-p no:warnings  : 取消警告
--ff : 先执行上次失败的用例
--lf : 只执行上次失败的用例
-x : 遇到测试用例fail,就结束测试
--maxfail=num:遇到num条测试用例fail, 就结束测试 
-k :根据测试用例的部分字符串指定测试用例
  	如:pytest -vs ./testcase -k “ao”

skipif-跳过测试

跳过测试的使用方法

pytest.skip (用于函数内,跳过测试用例)


def test_2():
    if 1 < 2:
        pytest.skip('1111111')
    pass

@pytest.mark.skip(用于函数外,跳过测试用例)


@pytest.mark.skip(reason='feature not implemented')
def test_1():
    pass
 
# 模块级别跳过。(注:参数allow_module_level的值设为True)
pytest.skip('skip all tests', allow_module_level=True)

@pytest.mark.skipif(用于函数外,条件condition,跳过原因reason="xxx")


@pytest.mark.skipif(condition='1<2',reason='feature not implemented')
def test_1():
    pass

ordering-执行顺序

  1. 控制用例执行顺序的方法
  2. 在需要调整用例执行顺序的函数(或方法)前增加

@pytest.mark.run(order=x) x表示

3.数字数字形式: 小数、整数、负数

执行顺序:

1、由小到大

2、由正到负

3、未标记 的在正数后,负数前执行

顺序: 1,2,3,无标记,-3,-2,-1

xfail-预期失败

xfail-预期失败的函数
语法

xfail(condition, reason)
--condition 预期失败的条件
--reason 预期失败的原因

pytest.ini加参数,

不希望出现 预期失败结果成功 的情况
就在配置文件中添加一个参数:
xfail_strict = true

fixture-函数作参数

fixture用途:可将被fixture标记的函数当作参数使用
掌握一个fixture 实现 setup 和 tearduwn
yield 关键字
yield 后边代码是用例执行完后再执行的。相当于teardown
当用例执行完之后, 会执行yield 后面的代码,但不能 return
addfinalize 关键字
这个实现功能跟yield的一样, 但可以用return,将参数传给后面的用例.
fixture 可放到conftest.py文件下
conftest.py会自动识别 哪个用例调用了这个函数

parametrize-参数化

parametrize(argnames,argvalues)
--argnames : 参数名
--argvalues : 参数值, 数据类型是 list
语法
@pytest.mark.parametrize
@pytest.mark.parametrize("mobile,code", [(121,212),(123,321)])

rerunfailure-失败重跑

失败重跑机制
安装pytest-rerunfailure
在设置文件pytest.ini中添加命令
reruns = 重跑次数
addopts = --reruns=10

链接Mysql

一.环境搭建

对接mysql数据库需要通过第三方库PyMySQl

二.数据库操作

建立数据库连接 :MySQlconnect = pymysql.connect(“数据库地址“,“数据库端口“,”数据库账号“等)

获取操作游标: cursor = MySQlconnect .cursor()

执行SQL语句:cursor .execute(“SQL语句”)

获取一条数据:data = cursor.fetchone()

获取结果(读):cursor.fetchall()

提交更改(写):MySQlconnect .commit()

关闭游标:cursor.close()

关闭连接 :MySQlconnect .close()

到此这篇关于Python pytest装饰器总结的文章就介绍到这了,更多相关pytest装饰器内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python pytest装饰器总结(实例详解)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 装饰器总结

装饰器是高阶函数,装饰器是对传入函数的功能增强。 装饰器的副作用:原函数对象的属性都被替换了,而使用了装饰器,查看到的函数对象属性就变成装饰器的函数对象了,如果需要查被装饰的函数的属性?对用原函数的属性覆盖掉装饰器的属性。解决方法:通过co
2023-01-31

python中函数总结之装饰器闭包详解

1、前言 函数也是一个对象,从而可以增加属性,使用句点来表示属性。 如果内部函数的定义包含了在外部函数中定义的对象的引用(外部对象可以是在外部函数之外),那么内部函数被称之为闭包。 2、装饰器 装饰器就是包装原来的函数,从而在不需要修改原来
2022-06-04

Python 装饰器的总结(一)

先来说明下几个定义:1,函数在python中,函数通过def关键字、函数名和可选的参数列表定义。通过return关键字返回值。我们举例来说明如何定义和调用一个简单的函数:1234567#coding:UTF8 def foo():     
2023-01-31

python装饰器1:函数装饰器详解

装饰器1:函数装饰器装饰器2:类装饰器装饰器3:进阶先混个眼熟谁可以作为装饰器(可以将谁编写成装饰器):函数方法实现了__call__的可调用类装饰器可以去装饰谁(谁可以被装饰):函数方法类基础:函数装饰器的表现方式假如你已经定义了一个函数
2023-01-30

Python函数装饰器--实例讲解

一、装饰器定义:1.装饰器的本质为函数;2.装饰器是用来完成被修饰函数的附加功能的所以:装饰器是用来完成被修饰函数附属功能的函数装饰器的要求:1.不能修改被修饰函数的源代码;2.不能更改被修饰函数的运行方式;3.上述两者缺一不可。二、装饰器
2023-01-31

Python装饰器实例分析

这篇“Python装饰器实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python装饰器实例分析”文章吧。任务超时退
2023-06-27

python 装饰器案例解析

本文介绍几个装饰器案例,来分析装饰器是如何调用的获取函数运行时间的例子写装饰器,不可以一步到位,要慢慢一点一点的来先写好2个函数importtimedeftest1():time.sleep(1)print(inthetest1)defte
2023-01-30

详解Python装饰器之@property

一、property() 函数讲解 了解 @property 装饰器之前,我们首先要了解内置函数的 property()。class property(fget=None, fset=None, fdel=None, doc=None)描述
2022-06-02

Python装饰器基础详解

装饰器(decorator)是一种高级Python语法。装饰器可以对一个函数、方法或者类进行加工。在Python中,我们有多种方法对函数和类进行加工,比如在Python闭包中,我们见到函数对象作为某一个函数的返回结果。相对于其它方式,装饰器
2022-06-04

Python 3 之 装饰器详解

------------ 装饰器 -----------------------------------------------------什么是装饰器装饰器是为函数和类指定管理代码的一种方式。装饰器本身的形式是处理其他的可调用对象的可调用
2023-01-31

python 排序算法总结及实例详解

总结了一下常见集中排序的算法归并排序归并排序也称合并排序,是分治法的典型应用。分治思想是将每个问题分解成个个小问题,将每个小问题解决,然后合并。 具体的归并排序就是,将一组无序数按n/2递归分解成只有一个元素的子项,一个元素就是已经排好序的
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录