pytest
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的更多相关文章
- flask-sqlalchemy、pytest 的单元测试和事务自动回滚
flask-sqlalchemy.pytest 的单元测试和事务自动回滚 使用 flask-sqlalchemy 做数据库时,单元测试可以帮助发现一些可能意想不到的问题,像 delete-cascad ...
- Python单元测试框架之pytest -- 断言
对于测试来讲,不管是功能测试,自动化测试,还是单元测试.一般都会预设一个正确的预期结果,而在测试执行的过程中会得到一个实际的结果.测试的成功与否就是拿实际的结果与预期的结果进行比较.这个比的过程实际就 ...
- Python单元测试框架之pytest -- fixtures
fixtures不太好翻译,可看作是夹心饼干最外层的两片饼干.通常用setup/teardown来表示.它主要用来包裹测试用例,为什么需要这样的饼干呢?我们以web自动化测试为例,例如,要测试的某系统 ...
- Python单元测试框架之pytest -- 生成测试报告
继续pytest单元测试框架的学习,pytest可以生成多种类型的测试报告.这一节就来学习pytest如何生成测试报告. 创建test_calss.py 测试用例文件,这里以测试该文件为例. #cod ...
- 使用 tox flake8 pytest 规范 python 项目
使用 tox flake8 pytest 规范 python 项目 python 中有些很好的工作来规范整个项目的开发,而其中使用较多的就是使用 tox . flake8 . pytest . tox ...
- pytest学习笔记(三)
接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, test_compute.py ...
- pytest学习笔记(二)
继续文档的第二章 (一)pytest中可以在命令行中静态/动态添加option,这里没什么好讲的,略过... 这里面主要讲下如何试用skip/xfail,还有incremental(包含一些列的测试步 ...
- pytest进阶之配置文件
前言 pytest配置文件能够改变pytest框架代码的运行规则.比如修改pytest收集用例的规则,添加命令行参数等等!下面我们来一一讲解常用的一些配置项 Help 通过命令pytest --hel ...
- pytest进阶之html测试报告
前言 Pytest系列已经写了几篇文章了,也不知道对多少人有帮助,总之对于我自己来说该掌握的都已经掌握了,那么今天我们再来说说pytest如何生成一个完整的html测试报告,让你在吹牛逼的路上再多一份 ...
- pytest进阶之xunit fixture
前言 今天我们再说一下pytest框架和unittest框架相同的fixture的使用, 了解unittest的同学应该知道我们在初始化环境和销毁工作时,unittest使用的是setUp,tearD ...
随机推荐
- 50道SQL练习题及答案与详细分析!!!
以前在学校还没有很认真地意识到,现在到了企业才发现sql是那么的重要,看到网上有很多的sql 练习题,特地拿来练练手! 数据表介绍 --1.学生表 Student(SId,Sname,Sage,Sse ...
- 嵌入式物联网32 ARM linux 等创客学院学习视频共享给大家
大家手机号登录学习链接即可观看 有坛友说手机号登录不上 具体自测 http://www.makeru.com.cn/live/1392_303.html?s=60220走进嵌入式http:// ...
- Sublime Text 3 安装 BracketHighlighter
1 概述 由于最近在Sublime Text 3安装 BracketHighlighter遇到不少问题,其中踩了不少坑,因此总结下来,形成博客,希望能帮助更多的人 2 电脑环境 windows 10 ...
- POJ 2914:Minimum Cut(全局最小割Stoer-Wagner算法)
http://poj.org/problem?id=2914 题意:给出n个点m条边,可能有重边,问全局的最小割是多少. 思路:一开始以为用最大流算法跑一下,然后就超时了.后来学习了一下这个算法,是个 ...
- 用CSS3 vh 简单实现DIV全屏居中
vh.vw.vmin.vmax介绍 vw:视窗宽度的百分比(1vw 代表视窗的宽度为 1%)vh:视窗高度的百分比vmin:当前 vw 和 vh 中较小的一个值vmax:当前 vw 和 vh 中较大的 ...
- 使用Xcode + Python进行IOS运动轨迹模拟
前言 在某些app中,需要根据用户的实时位置来完成某些事件 例如跑步打卡软件(步道乐跑).考勤打卡软件(叮叮).某些基于实时位置的游戏(Pokemon Go.一起来捉妖) 一般解决办法是通过使用安卓模 ...
- intel FPGA CLKn pin 是否能直接进PLL?
原创 by DeeZeng FPGA的时钟需要从专用的时钟管脚输入,那CLKn 作为Single-End时钟pin时是否能直接进 PLL呢? 通过查看对应FPGA型号的手册,得出以下结论 1. Cyc ...
- 19.linux文件属性
1.linux文件属性 ls -lih i查看文件inode,h查看文件大小 文件总共10个属性 inode索引节点编号(唯一的) 文件类型和权限,第一个字符为类型,后面字符为权限 硬链接的数量 文件 ...
- 手机如何进入开发者选项--以vivo为例
发现一个新方法 打开拨号键盘 输入 *#*#7777#*#* 欧儿了
- CDQZ集训DAY4 日记
早上起来之后发现座位被zzh占了,得知座位改为先来后到,什么鬼…… 于是去了另一个有耳机的机房,然而并没有什么卵用. T1上来感觉很有意思,先切50分再说.T2好像是原题的说,切了原题30分后大胆猜测 ...