pytest可以生成多种样式的结果
1、生成JunitXML格式测试报告:命令: --junitxml=path(相对路径)
2、生成result log 格式的测试报告: 命令:--resultlog=report\log.txt
3、生成html格式的测试报告:命令:--html=report\test_one_func.html

fixtures
1、把一个函数定义为fixture在声明前加上@pytest.fixture
使用时用pytest.mark.usefixtures

2、用yield关键词区分前置和后置

3、创建公共文件conftest.py实现前置和后置,被pytest自动识别(名字固定,更改无法被pytest识别)

4、返回值在yield后面,接收返回值直接用函数名称接收
1.思想:fixture的思想是测试用例的环境的准备和清理工作。类似于unittest里面的Setup和tearDown函数功能类似,unittest中的Setup是将执行测试用例前的准备放到此函数内,执行玩测试用例后的操作放在tearDown函数中。
2.用途:做web自动化测试的时候都需要登录网站和退出每一个测试用例都需要则可以利用fixture可以制作一次。
3.使用方法:
(1)在框架中新建一个conftest.py文件,在该文件中定义fixture.这样在运行测试用例的时候不需要去导入文件,就会自动查找conftest.py文件中对应的fixture
(2)定义fixture:
  在函数声明前加上@pytest.fixture。表示次函数为测试环境的准备和清理工作
  通过yield来标识为环境清理的工作。yield后面的代码为环境清理的工作。
  fixture装饰的函数可以有返回值:yield 返回值
(3)可以通过scope参数设置fixture的不同作用域。
scope='function':默认是函数级别的,每个test都运行。
scope='class':作用域是类(class)每个class中的test函数都运行
scope='module':作用域是模块,模块内的test都运行且运行一次
scope='session':每个session运行一次
断言
assert + 表达式==ture

conftest.py配置

conftest.py配置脚本名称是固定的,不能改名称
conftest.py与运行的用例要在同一个pakage下,并且有__init__.py文件
不需要import导入 conftest.py,pytest用例会自动查找
安装pytest生成报告插件
pip install pytest-html

重运行
安装:pip install pytest-rerunfailures
命令:pytest -reruns 重试次数 --reruns -delay 次数直接的延时设置(单位:秒)

参数化(与unittest不兼容)
@pytest.mark.parametrize(“参数名”,列表数据) 类似于unittest 的 ddt装饰器

打标记

在用例或者模块@pytest.mark.名字
运行:控制台 pytest -m 名字

pytest--收集用例规则
1、默认从当前目录中搜集测试用例,即在哪个目录运行pytest命令,则从哪个目录中搜索
2、搜索规则
①符合命名规则test_*py或者*_test.py的文件
②以test_开头的函数名
③以Test开头的测试类(没有_init_函数)当中,以test_开头的函数

pytest的更多相关文章

  1. flask-sqlalchemy、pytest 的单元测试和事务自动回滚

    flask-sqlalchemy.pytest 的单元测试和事务自动回滚 使用 flask-sqlalchemy 做数据库时,单元测试可以帮助发现一些可能意想不到的问题,像 delete-cascad ...

  2. Python单元测试框架之pytest -- 断言

    对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就 ...

  3. Python单元测试框架之pytest -- fixtures

    fixtures不太好翻译,可看作是夹心饼干最外层的两片饼干.通常用setup/teardown来表示.它主要用来包裹测试用例,为什么需要这样的饼干呢?我们以web自动化测试为例,例如,要测试的某系统 ...

  4. Python单元测试框架之pytest -- 生成测试报告

    继续pytest单元测试框架的学习,pytest可以生成多种类型的测试报告.这一节就来学习pytest如何生成测试报告. 创建test_calss.py 测试用例文件,这里以测试该文件为例. #cod ...

  5. 使用 tox flake8 pytest 规范 python 项目

    使用 tox flake8 pytest 规范 python 项目 python 中有些很好的工作来规范整个项目的开发,而其中使用较多的就是使用 tox . flake8 . pytest . tox ...

  6. pytest学习笔记(三)

    接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, test_compute.py ...

  7. pytest学习笔记(二)

    继续文档的第二章 (一)pytest中可以在命令行中静态/动态添加option,这里没什么好讲的,略过... 这里面主要讲下如何试用skip/xfail,还有incremental(包含一些列的测试步 ...

  8. pytest进阶之配置文件

    前言 pytest配置文件能够改变pytest框架代码的运行规则.比如修改pytest收集用例的规则,添加命令行参数等等!下面我们来一一讲解常用的一些配置项 Help 通过命令pytest --hel ...

  9. pytest进阶之html测试报告

    前言 Pytest系列已经写了几篇文章了,也不知道对多少人有帮助,总之对于我自己来说该掌握的都已经掌握了,那么今天我们再来说说pytest如何生成一个完整的html测试报告,让你在吹牛逼的路上再多一份 ...

  10. pytest进阶之xunit fixture

    前言 今天我们再说一下pytest框架和unittest框架相同的fixture的使用, 了解unittest的同学应该知道我们在初始化环境和销毁工作时,unittest使用的是setUp,tearD ...

随机推荐

  1. 【HDU - 1495】非常可乐

    -->非常可乐  Descriptions: 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一 ...

  2. 微服务-springboot打包

    idea打包方式: 打包前确认项目可以正常运行 一.File->Project Structure->Artifacts->点击 + ->JAR->From module ...

  3. 并发编程-concurrent指南-ReadWriteLock

    ReadWriteLock也是一个接口,在它里面只定义了两个方法: public interface ReadWriteLock { /** * Returns the lock used for r ...

  4. Python Day_3

    --人生苦短,我用Python 在我的第一天接触Python,我的小甲鱼老师给我带来的不是HelloWord,是一个小游戏,详情看Python Day_1 在我们这个游戏基础上,我在后面的课后练习,自 ...

  5. .NET Core 3.0之深入源码理解Kestrel的集成与应用(二)

      前言 前一篇文章主要介绍了.NET Core继承Kestrel的目的.运行方式以及相关的使用,接下来将进一步从源码角度探讨.NET Core 3.0中关于Kestrel的其他内容,该部分内容,我们 ...

  6. 开源SFTP客户端 WinSCP v5.13.5 Build 8967 绿色便携版

    下载地址:点我 基本介绍 WinSCP 是一款可以在微软 Windows 系统环境下使用的支持 SSH 命令的开源图形化 SFTP 客户端工具.同时也支持 SCP 文件传输协议,它的主要功能是在本地与 ...

  7. C语言学习书籍推荐《C语言入门经典(第4版)》

    霍顿 (Ivor Horton) (作者), 杨浩 (译者) <C语言入门经典(第4版)>的目标是使你在C语言程序设计方面由一位初学者成为一位称职的程序员.读者基本不需要具备任何编程知识, ...

  8. Java 垃圾收集总结

    概述 垃圾收集(Garbage Collection,GC),它不是Java语言的伴生产物,它的历史比Java还要久远. 人们主要思考GC需要完成的3件事情: 哪些内存需要回收? 什么时候回收? 如何 ...

  9. 关系型数据库MySql 数据类型与约束

    MySql数据库 :数据类型与约束 注意 :  在创建数据表的时候,需要对数据表中的字段设置 数据类型和约束, 便于检测用户输入的数据是否正确有效. 1 数据类型 数据类型的选用原则 : 够用就行,尽 ...

  10. Redis 使用C#程序操作Redis

    一.安装操作所需Nuget包 二.写入 redis只是按Key值设置过期时间,不是对value内部的某些值设过期 2.1 string类型 /// <summary> /// 向Redis ...