新闻详情

新闻详情

首页 / 资讯中心 / 详情

【day2】Pytest固件、Allure测试报告

发布时间:2026/9/30 3:20:52来源:尧图网络
【day2】Pytest固件、Allure测试报告
一、固件的概念前后置在用例执行之前、执行之后自动的执行的方法Unittest风格classTest:defsetup_method(self):# 每个用例执行之前自动执行print(用例开始执行,time.time())defteardown_method(self):# 每个用例执行之后自动执行print(用例执行结束,time.time())defsetup_class(self):# 每个测试类执行之前自动执行print(测试类开始执行,time.time())defteardown_class(self):# 每个测试类执行之后自动执行print(测试类结束执行,time.time())deftest_a(self):assert11deftest_b(self):assert11执行结果collecting...collected2items baili_test.py::Test::test_a 测试类开始执行1790680527.5992723用例开始执行1790680527.599369PASSED用例执行结束1790680527.5997894baili_test.py::Test::test_b 用例开始执行1790680527.600304PASSED用例执行结束1790680527.6005554测试类结束执行1790680527.60058332passedin0.02s二、pytest 风格固件pytest的固件风格不仅能够完美的代替unittest风格而且更加简洁、方便、灵活具有python语法特色。pytest的固件风格fixtures创建方式1.是一个函数2.使用装饰器 pytest.fixture3.使用生成器关键字yieldfixture源码deffixture(fixture_function:FixtureFunction|NoneNone,*,scope:ScopeName|Callable[[str,Config],ScopeName]function,params:Iterable[object]|NoneNone,autouse:boolFalse,ids:Sequence[object|None]|Callable[[Any],object|None]|NoneNone,name:str|NoneNone,)-FixtureFunctionMarker|FixtureFunctionDefinition:1.fixture_function被装饰的函数2.scope共享范围​ function函数级别​ class类​ module模块​ package包​ session全局importtimeimportpytestpytest.fixture(scopefunction)defbeifan():# 前置print(用例开始执行,time.time())yield# 后置print(用例结束执行,time.time())pytest.fixture(scopesession)defbeifan_class():# 前置print(测试类开始执行,time.time())yield# 后置print(测试类结束执行,time.time())classTest:deftest_a(self,beifan,beifan_class):assert11deftest_b(self,beifan,beifan_class):assert12执行结果collecting...collected2items test_beifan.py::Test::test_a 测试类开始执行1790682152.8805637用例开始执行1790682152.8806276PASSED用例结束执行1790682152.8809693test_beifan.py::Test::test_b 用例开始执行1790682152.8813846FAILED用例结束执行1790682152.9352837测试类结束执行1790682152.9353153.参数化params谨慎使用fixture参数化因为它让用例被动也进行了参数化importtimeimportpytestpytest.fixture(params[1,2,3])defbeifan():# 前置print(用例开始执行,time.time())yield# 后置print(用例结束执行,time.time())deftest_abc(beifan):print(123)执行结果collecting...collected3items test_abc.py::test_abc[1]用例开始执行1790682574.3593793123PASSED用例结束执行1790682574.3597527test_abc.py::test_abc[2]用例开始执行1790682574.3601997123PASSED用例结束执行1790682574.3604846test_abc.py::test_abc[3]用例开始执行1790682574.3609467123PASSED用例结束执行1790682574.36121564.自动使用​ autouseimporttimeimportpytestpytest.fixture(scopefunction,autouseTrue)defbeifan():# 前置操作print(用例开始执行,time.time())yield# 后置操作print(用例结束执行,time.time())classTest:deftest_a(self):assert11deftest_b(self):assert12执行结果collecting...collected2items test_beifan.py::Test::test_a 用例开始执行1790682994.473762PASSED用例结束执行1790682994.4741251test_beifan.py::Test::test_b 用例开始执行1790682994.4745553FAILED用例结束执行1790682994.52897745.name名称importpytestpytest.fixture(namedb)def_db_connection():print(start,time.time())deftest_x(db):# 用 name 指定的 db不是 _db_connectionassert12三、conftest 统一管理fixture1.conftest.py 文件名是固定的不能修改、不能写错2.conftest.py 中的fixtrue会自动的被pytest加载自动被任意一个用例使用3.conftest.py 可以在每个目录中创建用例按照就近原则来寻找fixture 当前文件、同目录conftest、上级目录conftest、上上级目录conftest…简单起见所有的fixtures 定义在 根目录的conftest.py四、插件的fixturepytest-base-url的插件提供了一个 base_url的fixture内容可以灵活设置用法相关简单和固定deftest_api(base_url):# 使用fixtureprint(base_url)#pytest.inibase_urlwww.qq.com五、Allure测试报告Allure 是一个测试报告框架可以生成精美、企业级、可扩展的HTML测试报告Allure 是一个java程序1.搭建allure的运行环境JDK 17allure下载https://github.com/allure-framework/allure2/releases解压D:\api_250设置环境变量PATH 增加 D:\api_250\bin建议重启验证allure2.生成allure测试报告1.执行用例pytest2.生成allure执行数据allure-pytest[pytest]# 命令行参数addopts-vs ‐‐alluredir./temps ‐‐clean‐alluredir3.生成allrue测试报告 allure#run.pyos.system(allure generate ./temps -o ./reports --clean)# 根据数据 生成报告3.allure的常用命令allure generate# 生成报告allure serve# 展示报告allureopen# 打开已存在的报告allure plugin# 展示插件4.定制本质对执行结果进行标注和分组方式装饰器添加不同的标注内容内容epic史诗项目名称feature特性模块名称story 故事接口名称title标题用例名称importallureallure.epic(项目)allure.feature(模块)allure.story(接口)allure.title(标题)deftest_api():pass
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SQL 游标用法详解:从声明到释放的完整配置与验证 2026/9/30 21:03:08

SQL 游标用法详解:从声明到释放的完整配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
动态口令认证价格 2026/9/30 21:02:40

动态口令认证价格

动态口令认证价格 动态口令认证价格为什么问三家能报出三个量级?因为"动态口令"这四个字底下压着六种完全不同的成本项,而大多数报价只报了其中两三项。 同一句需求,三家供应商的回执: A:按用户数年费&…

阅读更多 →
在 Cursor 与 VSCode 中切换主题:用 TaoToken 统一配置 settings.json 的完整指南 2026/9/30 21:02:34

在 Cursor 与 VSCode 中切换主题:用 TaoToken 统一配置 settings.json 的完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
嵌入式驱动开发:从能跑到量产的工程化思维 2026/9/30 21:02:34

嵌入式驱动开发:从能跑到量产的工程化思维

1. 从“点灯成功”到“量产翻车”:一个让无数驱动开发者破防的瞬间 如果你在嵌入式这行待过哪怕半年,大概率经历过这样一个场景:板子刚打回来,你花了一个下午把驱动调通,串口打印出“init success”,LED 按…

阅读更多 →
开源利器!让DeepSeek V4 Flash在Terminal-Bench上超越Fable 5,还省11倍——TaoToken统一Key接入实战 2026/9/30 21:02:07

开源利器!让DeepSeek V4 Flash在Terminal-Bench上超越Fable 5,还省11倍——TaoToken统一Key接入实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
黑通道协议可自定义吗?解析工业功能安全的配置边界 2026/9/30 21:02:00

黑通道协议可自定义吗?解析工业功能安全的配置边界

1. 黑通道协议不是“黑盒”,而是工业安全通信的底层契约“可以自定义黑通道协议吗?”——这个问题在自动化工程师群里一抛出来,往往立刻引发两极反应:有人秒回“绝对不行,这是安全红线”,也有人困惑&#x…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉