| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发测试 -> pytest测试框架之fixture固件 -> 正文阅读 |
|
[开发测试]pytest测试框架之fixture固件 |
一。fixture固件 部分用例之前或之后执行,部分类之前或之后之前 fixture完整方法如下: @pytest.fixture(scope="作用域",params="数据驱动",autouse="是否自动执行",ids="改变参数名",nsme="改变固件名称") 作用域: function(默认),class,module,package/session @pytest.fixture(scope="function",autouse="True") def excute_sql(): print("打开数据库连接") yield print("关闭数据库") ---return:返回函数的结果,return之后的代码不会执行 ---yield:带yield函数叫生成器,yield之后的代码会执行 @pytest.fixture(scope="class") def excute_1(): print("固定类") class TestApi: def test_01_jiaoyu(self,excute_sql): print("测试"+excute_sql) @pytest.mark.usefixtures("execute_1") class TestMs: def test_bili(self) print("bili") 3.scope作用域是module或者package/session,那么需要结果conftest.py执行 (1)conftest.py专门用例存放固件fixture的没在文件,名称是固定的,不能更改的 (2)在conftest.py文件中的fixture在调用的时候不需要导包 (3)conftest.py可以有多个并且多个fixture之间没有冲突 (4)模块和session级别一般自动执行 ----------------------- params用于数据驱动 def read_data(): return['a','b','c'] @pytest.fixture(sco[e="function",params=read_data(),ids=['bd','ee','rr') def product_sql(request): ? ? ? ? print("product固件")???????? ? ? ? ? yield request.param ? ? ? ? print("test") 特别注意:Params传参时会把每一次读取的值传给request.param,写法和取值方式是固定的 ids不能单独使用,必须和pamas一起使用你,给参数起别名 name给固件起别名 name起别名后,原来的名就失效了 pytest的执行顺序: 1.查找当前目录的下conftest.py 2.查尊当前目录下pytest.ini 找到查找测试用例 3.查找用例是是否有setup() teardown(),setup_class(),teardown_class() 4.执行测试用例 二,pytest的基础路径设置 [pytest] .... base_url = http://10.2.3.30 --- def test_01_api() ? ? ? ? request.get(url=base_url+"/phpwind") 直接像调用function级别的固件一样调用base_url 场景:一个项目中有多个模块,每个模块都有一个基础路径 插件pytest-base-url 三。pytest断言 使用原生的assert 四,pytest结合allure-pytest生成allure测试报告 1.安装allure-pytest 2.官网下载allure包解压allure包到非中文目录并设置环境变量到path E:\allure-2.13.7\bin 验证:需要在dos和pycharm中使用如下命令 allure --version 如果pyharm没有验证成功需要重启pycharm [pytest] addopts= -vs --alluredir=./temps --clean-alluredir ... --alluredir=./temps 生成报告 --clean-alluredir 清除临时报告 if __name__=='__main__' pytest.main() time.sleep(3) os.system("allure generate ./temps -o ./reports? ?--clean") allure generate构建allure报告 ./temps 根据临时json报告构建 -o 输出output ./reports? 报告路径 --clean清除报告 |
|
开发测试 最新文章 |
pytest系列——allure之生成测试报告(Wind |
某大厂软件测试岗一面笔试题+二面问答题面试 |
iperf 学习笔记 |
关于Python中使用selenium八大定位方法 |
【软件测试】为什么提升不了?8年测试总结再 |
软件测试复习 |
PHP笔记-Smarty模板引擎的使用 |
C++Test使用入门 |
【Java】单元测试 |
Net core 3.x 获取客户端地址 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/18 0:35:28- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |