pytest框架+conftest.py配置公共数据的准备和清理
1、pytest介绍:1、自动发现测试模块和测试方法
2、断言使用 assert+表达式即可
3、可以设置会话级、模块级、类级、函数级的fixture 数据准备+清理工作
4、丰富的插件库,==allure
1.2、用例搜集规则:目录--------文件---------------------------------------函数(测试类)-------------
当前目录-(test_*.py 或者*_test.py命名)文件-(test_开头)函数((Test开头)测试类)
2、安装命令:
pip install pyetst
pip install pytest-html #安装html报告的插件
3、pytest打标签
#测试用例或测试类前面
@pytest.mark.somke
#打完标签后的运行,命令行或工作台
pytest -m smoke
4、pytest参数化
#在测试用例的前面加上
@pytest.mark.parametrize("参数名",列表数据)
5、fixture
#1、创建:conftest.py文件里面的函数前加:@pytest.fixture
@pytest.fixture(scope="session",autouse=True)
参数scope默认函数级别,session回话级别整体运行一次,可设置自动执行
#2、yield 隔断前置后置,后面加函数返回值。
#3、调用:函数或类前加 @pytest.mark.usefixture("函数名")
fixture函数名作为参数传给用例
目的:用于公共数据准备和清理。
import pytest
from common.my_log import MyLog mylog=None
orsql=None
test_result=[] @pytest.fixture()
def init_data():
'''
函数级别的初始化及结束执行。每个测试用例执行一次
:return:
'''
#前置
global orsql,mylog,test_result
mylog.info("开始执行测试用例") yield (orsql,mylog,test_result) #后置
mylog.info("停止执行测试用例") @pytest.fixture(scope="session",autouse=True)
def session_init():
'''
连接、关闭数据库。设为回话级别的初始化,自行执行。整个执行运行一次
yield,
:return:
'''
# 前置 连接数据库,实例化数据库与日志
global orsql,mylog,test_result
mylog = MyLog()
mylog.info("------开始运行整体的测试!!!--------")
mylog.info("连接数据库") yield #后置
mylog.info("断开数据库连接,把测试结果写回excel")
mylog.info("------整体测试运行结束喽!!-----------")
#test_api测试用例类: from common.do_excel import DoExcel
from common.webservice_suds import WebserviceSuds
from common.project_path import ProjectPath
from common.init_datas import InitData
from common.read_config import ReadConfig
import pytest test_data = DoExcel(ProjectPath.test_data_path).get_data()
db=eval(ReadConfig().read_config(ProjectPath.db_config_path,"DBCONFIG","dbconfig")) class TestApi():
@pytest.mark.usefixture("init_data")
@pytest.mark.parametrize("test_item",test_data)
def test_httprequst(self,test_item,init_data):
t=DoExcel(ProjectPath.test_data_path)#创建一个excel的实例
init_data[1].info("正在运行{2}模块第{0}条用例:{1}".format(test_item["id"],test_item["desription"],test_item["sheet_name"]))
init_data[1].info("测试数据请求头是:{0}".format(test_item['RequestHeaders']))
init_data[1].info("测试数据请求体是:{0}".format(test_item["RequestBodys"]))
pytest框架+conftest.py配置公共数据的准备和清理的更多相关文章
- pytest:conftest.py文件
一.fixture scope 为session 级别是可以跨 .py模块调用的,也就是当我们有多个 .py文件的用例时,如果多个用例只需调用一次fixture,可以将scope='session', ...
- pytest框架: fixture之conftest.py
原文地址:https://blog.csdn.net/BearStarX/article/details/101000516 一.fixture优势1.fixture相对于setup和teardown ...
- pytest自动化3:fixture之conftest.py实现setup
出处:https://www.cnblogs.com/yoyoketang/p/9390073.html 前言: 前面一篇讲到用例加setup和teardown可以实现在测试用例之前或之后加入一些操作 ...
- pytest 3.fixture介绍一 conftest.py
前言: 前面一篇pytest2 讲到用例加setup和teardown可以实现在测试用例之前或之后加入一些操作,但这种是整个脚本全局生效的,如果我想实现以下场景: 用例1需要先登录,用例2不需要登录, ...
- pytest文档5-fixture之conftest.py
前言 前面一篇讲到用例加setup和teardown可以实现在测试用例之前或之后加入一些操作,但这种是整个脚本全局生效的,如果我想实现以下场景: 用例1需要先登录,用例2不需要登录,用例3需要先登录. ...
- Pytest系列(6) - conftest.py的详细讲解
如果你还想从头学起Pytest,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1690628.html 什么是conftest.py 可以 ...
- pytest 多个PY文件执行共享变量及用fixture和conftest
------------恢复内容开始------------ 1.pytest需要测试多个py文件,这些文件有一定的依赖关系,同时执行的时候,需要只执行一次初始化setup,结束再执行一次teardo ...
- Pytest学习(六) - conftest.py结合接口自动化的举例使用
一.conftest.py作用 可以理解成存放fixture的配置文件 二.conftest.py配置fixture注意事项 pytest会默认读取conftest.py里面的所有fixture co ...
- pytest文档4-fixture之conftest.py
用例1需要先登录,用例2不需要登录,用例3需要先登录.很显然这就无法用setup和teardown来实现了.fixture之conftest.py就是自定义测试用例的预置条件 1.firture相对于 ...
随机推荐
- Azure Bicep(二)语法简介
一,引言 上一篇文章有介绍到 Azure Bicep 的部署问题,文中也只是演示部署范围为 Sub,并将演示的 Azure Resource Group 到 Azure.给定 Bicep 文件,可以部 ...
- JDK源码阅读(4):HashMap类阅读笔记
HashMap public class HashMap<K, V> extends AbstractMap<K, V> implements Map<K, V>, ...
- 熊猫分布密度制图(ArcPy实现)
一.背景 大熊猫是我国国家级珍惜保护动物,熊猫的生存必须满足一定槽域(独占的猎食与活动范围)条件.因此,科学准确的分析熊猫的分布情况,对合理制定保护措施和评价保护成效具有重要意义. 二.目的 通过练习 ...
- 听说,99% 的 Go 程序员都被 defer 坑过
原文链接: 听说,99% 的 Go 程序员都被 defer 坑过 先声明:我被坑过. 之前写 Go 专栏时,写过一篇文章:Go 专栏|错误处理:defer,panic 和 recover.有小伙伴留言 ...
- Apache Shiro漏洞绕过waf小tips
看了篇文章觉得不错记录下以免以后找不到,原理是通过base64解码特性导致waf不能成功解码绕过waf检测从而进行攻击 解码情况: payload php python openresty java ...
- git 更新与图形界面
git 软件更新:git update-git-for-windows 或者 git update gitk 是一个历史记录的图形化查看器. 使用:只需 cd 到一个 Git 仓库,然后键入:gitk ...
- 【c++ Prime 学习笔记】第16章 模板与泛型编程
面向对象编程(OOP)和泛型编程(GP)都能处理在编写程序时类型未知的情况 OOP能处理运行时获取类型的情况 GP能处理编译期可获取类型的情况 标准库的容器.迭代器.算法都是泛型编程 编写泛型程序时独 ...
- 看动画学算法之:队列queue
目录 简介 队列的实现 队列的数组实现 队列的动态数组实现 队列的链表实现 队列的时间复杂度 简介 队列Queue是一个非常常见的数据结构,所谓队列就是先进先出的序列结构. 想象一下我们日常的排队买票 ...
- UltraSoft - Beta - Scrum Meeting 6
Date: May 22n'd, 2020. Scrum 情况汇报 进度情况 组员 负责 今日进度 q2l PM.后端 修复了DDL日程自动发邮件被服务器"吞掉"的bug后端增加了 ...
- Seata分布式事务失败通知
一.背景 在我们使用Seata作为分布式事务时,有些时候我们的分布式时候并不是每次都可以成功的,而对于这些失败的分布式事务就需要进行通知.这篇文章简单记录一下如何实现通知. 二.功能实现 此处模拟邮件 ...