python-pytest学习
一:pytest基于unittest之上的单元测试框架
1.自动发现测试模块和测试方法;
2.断言使用assert+表达式即可;
3.可以设置会话级、模块级、类级、函数级的fixtures :数据准备+清理工作
4.丰富的插件库 http://plugincompat.herokuapp.com/
安装命令 pip install pytest
安装html报告的插件:pip install pytest-html
二:pytest收集测试用例的规则:
1.默认从当前目录中搜集测试用例,即在哪个目录下运行pytest命令,就从哪个目录中搜索;
2.搜索规则:
1)先找py文件。test_*.py或者*_test.py
2) 找模块下面,以test_开头的函数名称。
3)找模块下面,以Test开头的类(没有__init__函数)中,找以test_开头的函数。
三:pytest 之 mark
对测试用例打标签。执行用例就可以根据标签过滤用例。
标记功能:测试类和测试用例前面 ,@pytest.mark.标签名
四:pytest 之 定义fixture
@pytest.fixture(scope=)
def init_web():
#前置
yield 返回值
#后置
1. fixture : 即测试用例执行的环境准备和清理。
2. 在unittest中即指:setup(),teardown(),classSetup(),classTeardown()
3. fixture主要的目的是为了提供一种可靠的和可重复性的手段去运行那些最基本的测试内容。
4. 定义fixture:
(1)把一个函数定义为fixture很简单,在函数声明之前加上@pytest.fixture
(2)表示此函数为测试环境数据的准备和清理
(3)fixture内部如何区分环境准备、环境清理呢:
A. 在函数内使用yield关键字
B. yield关键字后的代码,就是环境清理的代码,即在测试用例执行完成之后会执行的代码
5. fixture的作用域:
(1)fixture的参数中,有scope作用域
(2)function:每个test都运行,默认是function的scope。即unittest的Setup和tearDown
(3)class:每个class的所有test只运行一次,即unittest的setupClass和teardownClass
(4)module:每个module的所有test只运行一次
(5)session:每个session只运行一次
6. fixture设置返回值:
yield 返回值
7. fixture的调用:
A. 在测试用例中直接调用:将fixtures的函数名称作为测试用例的参数,如果fixture有返回值,那么测试用例中的fixture函数名字就接收返回值
B. 用fixture装饰器调用fixture:在测试用例/测试类前面加上@pytest.mark.usefixtures('fixture函数名称')
C. 用autos调用fixture:定义fixture时,有一个参数是autouse,默认设置为false:当默认为false时,就可以选择A/B两种方式来调用fixture;
当设置为true时,在一个session内的所有test都会自动调用这个fixture
五:pytest 之 参数化
在测试用例的前面加上: @pytest.mark.parametrize("参数名",列表数据)
参数名:用来接收每一项数据,并作为测试用例的参数
列表数据:一组测试数据
python-pytest学习的更多相关文章
- python自动化测试学习目录
一.python学习目录 <1> ----python驱动 [python驱动]python进行selenium测试时GeckoDriver放在什么地方? python下浏览器静默运行驱动 ...
- [转载]pytest学习笔记
pytest学习笔记(三) 接着上一篇的内容,这里主要讲下参数化,pytest很好的支持了测试函数中变量的参数化 一.pytest的参数化 1.通过命令行来实现参数化 文档中给了一个简单的例子, ...
- Python+Pytest+Allure+Git+Jenkins接口自动化框架
Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...
- Pytest学习(三) - setup和teardown的使用
一.前言 从文章标题可以看出,就是初始化和释放的操作,根据我的java习惯来学习pytest,个人感觉没差太多,理解上也不是很难. 哦,对了,差点跑题了,这个框架是基于Python语言的,在学习的时候 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 60分钟Python快速学习(给发哥一个交代)
60分钟Python快速学习 之前和同事谈到Python,每次下班后跑步都是在听他说,例如Python属于“胶水语言啦”,属于“解释型语言啦!”,是“面向对象的语言啦!”,另外没有数据类型,逻辑全靠空 ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- Python正则表达式学习摘要及资料
摘要 在正则表达式中,如果直接给出字符,就是精确匹配. {m,n}? 对于前一个字符重复 m 到 n 次,并且取尽可能少的情况 在字符串'aaaaaa'中,a{2,4} 会匹配 4 个 a,但 a{2 ...
- python 线程学习
彩照 一.学习[1] # -*- coding: utf-8 -*- import time import thread def timer(no, interval): cnt = 0 while ...
随机推荐
- s21day20 python笔记
s21day20 python笔记 一.内容回顾 面向对象的三大特性 封装 函数封装到类 数据封装到对象 继承 多态 二.成员 2.1 类成员 类变量(静态字段) 定义:写在类的下一级,和方法同一级 ...
- springCloud、springBoot学习
http://projects.spring.io/spring-cloud/ 官网https://springcloud.cc/spring-cloud-netflix.htmlhttp://cl ...
- SDL中 so库的使用
用到的项目:Tocy-Android-SDLv2 JAVA层:只有一个 SDLActivity.java 路径\Android-SDLv2\src\org\libsdl\app 项目简单分析: 默认在 ...
- Python练习七
1.写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者. def func(dic): for k in dic: if len(dic[k] ...
- 序列化、time、random、hashlib、sys模块
•很多常用和内置模块,我们只需要掌握他们的用法而暂时不用考虑内部是如何实现的,这些模块大大提升了开发效率 ! 1.json模块与pickle模块 •json 如果你有这样的困扰,当希望把一种数据存到硬 ...
- 引擎设计跟踪 ShadowMap 细节和分析
之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法.主要修复了LiSPSM(上面链接里后面有更新),实现了 ...
- Java修饰符final总结
final 的意思是最终的,不可改变的. final可以用来修饰 a.类. b.方法(包括类方法和对象方法). c.变量(包括成员变量.局部变量). 1. final修饰类: 用final修饰的类不能 ...
- JWT(JSON Web Token) 【转载】
JWT(JSON Web Token) 什么叫JWTJSON Web Token(JWT)是目前最流行的跨域身份验证解决方案. 一般来说,互联网用户认证是这样子的. 1.用户向服务器发送用户名和密码. ...
- char* 与 string 互转
因为c#强调安全性,每次意图将string的地址赋给指针时,系统都要报错,原因是系统无法计算字符串的空间和地址,这里不多bb,使用IntPtr类(using Runtime.InteropServic ...
- 深入理解CSS选择器优先级
题外话 今天把 <CSS REFACTORING>(中文名叫<CSS重构:样式表性能调优>)电子书粗略的浏览了一遍,这本书很薄,150页左右,首先是介绍了什么是重构并举了两个简 ...