pytest 使用
import pytest
from web_ui_YXBI.test_datas.common_datas import Common_Datas as c
from selenium import webdriver
from web_ui_YXBI.page_objects.test_login_page import loginPage
driver = None @pytest.fixture
def init_page():
global driver
# 前置
print("==========整个测试用例都会执行的前置==========")
yield
# 后置
print("==========整个测试用例都会执行的后置==========")
driver.get(c.url) @pytest.fixture(scope="class")
def init_driver():
global driver
# 前置
print("==========整个测试类只执行一次的前置==========")
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(c.url)
lg =loginPage(driver)
yield (driver,lg)
# 后置
print("==========整个测试类只执行一次的后置==========")
driver.quit()
pytest 生成测试报告
1.JunitXML格式的测试报告 :命令 : --junitxml=path
2.生成result log 格式测测试报告: 命令: --resultlog=report\log.txt
3.生成Html格式的测试报告: 命令: --html=跟生成报告所在的文件路径 report\test_one_func.html
main文件的里面的写法
导入pytest 的包
pytest.main(["列表的参数,可以是生成测试报告的命令,也可以过滤测试用例,参数可以是多个"])
conftest 这个文件pytest 可以自动识别,不需要引入进去
可以再这个文件定义fixture的函数
fixture : 即测试用例执行的环境准备和清理
定义fixture :
把一个函数定义为Fixture很简单,在函数声明之前加上@pytest.fixture(scop="四个级别,默认是函数级别的",autouse=False 自动识别,默认关闭状态
如果改为True,每个测试用例执行之前都会使用的前置)
那么在一个fixture 内部如何区分环境准备、环境清理呢
在函数内使用yield 关键字。
yield 关键字以后得代码,就是环境清理的代码,即在测试用例执行完成之后会执行的代码
yield 后面跟函数的返回值可以是一个列表、也可以是一个元祖
调用fixture
在要调用的类前面加上
@pytest.mark.usefixtures("里面是定义的fixture的函数名")
接受返回值
直接在类里面的函数参数的地方,传入定义的fixture的函数名,就可以传参
如果是元祖取值 函数名[下标]
pytest的断言使用
assert 后面加表达式 N == True
pytest - 重运行机制
插件名称:rerunfailures
安装方式:pip install pytest-rerunfailures
使用方式:
命令行参数形式:
命令:pytest --reruns 重试次数
失败之后运行间隔时间:
pytest --reruns 重试次数 --reruns-delay 次数之间的延时设置(单位:秒)
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 ...
随机推荐
- vue中 $refs的基本用法
骚年,我看你骨骼惊奇,有撸代码的潜质,这里有324.57GB的前端学习资料传授于你!什么,你不信??? 先随便看几个图: 肯定没看够.再来个GIF图热个身??? 那么问题来了,如果你也想入坑前端或者学 ...
- WFP之位图效果
首先看一个图片: 在"第一步"这个按钮周围,有一转红色,这个效果就是用WPF的位图效果实现的. 位图效果(BitmapEffect 对象)是简单的像素处理操作.位图效果将 Bi ...
- unittest(@classmethod 装饰器)
1.前言: 前面讲到unittest里面setUp可以在每次执行用例前执行,这样有效的减少了代码量,但是有个弊端,比如打开浏览器操作,每次执行用例时候都会重新打开,这样就会浪费很多时间. 于是就想是不 ...
- session与cookie的浅谈
cookie的用途: 当你浏览网页时,会有一些推送消息,大多数是你最近留意过的同类东西,比如你想买桌子,上淘宝搜了一下,结果连着几天会有各种各样的桌子的链接.这是因为你浏览某个网页的时候,WEB 服务 ...
- P1666前缀单词
题目传送门点我传送 Ⅰ.字典树+树型DP 非常奇妙的一种解法 第一部分:构建树 先对来的单词读入,插入字典树 然后对于一颗字典树,其实是有很多无用边的,所以我们需要删去一些边 删去非单词节点和非单词节 ...
- WCF学习(二)
WCF通道模型 绑定的本质是一个配置好的通道栈,为了方便程序员专著与业务逻辑,WCF提高了一系列常用绑定.随后会有相应的自定义通道栈代码 无论交互的另一方具体位置在哪里,WCF都会为消息的发送和接收建 ...
- Java TCP小结
服务端: 客户端: ServerSock ...
- [coj 1353 Guessing the Number]kmp,字符串最小表示法
题意:给一个字符串,求它的最小子串,使得原串是通过它重复得到的字符串的一个子串. 思路:先求最小长度,最小循环长度可以利用kmp的next数组快速得到,求出长度后然后利用字符串最小表示法求循环节的最小 ...
- [hdu4300] next数组的应用
题意:给你一个密文和明文的对应表以及一个密文+明文的字符串,明文可能只出现前面的一部分(也就是说是原明文的前缀),求最短的明文. 思路:首先密文的长度至少占到一半,所以先把那一半解密,问题转化为找一个 ...
- pod install update没有反应
出去是镜像的问题,我用的是外网,所以应该不是镜像的问题, 换用这个: pod install --verbose --no-repo-update pod update --verbose --no- ...