千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理
  5 随笔 :: 70 文章 :: 0 评论 :: 9301 阅读
《一》插件优化案例与HOOK函数
1.插件优化案例之Pytest-HTML
2.Pytest插件的二次开发
二次开发优势:
a.pytest是主流自动化框架,进行开发优化,成本更低
b.pytest拥有海量的插件
c.基于Pytest插件进行二次开发,该插件一般都有API文档
插件与Hook函数关系:
a.插件就是用 1个或多个Hook函数,也就是钩子函数构成的
b.如果要编写新的插件,或者是 仅仅改进现有插件,都必须通过Hook函数来进行
c.想掌握Pytest插件二次开发,必须 搞定Hook函数

《二》如何理解HOOK函数
1.HOOK函数的定义 HOOK=钩子
钩子函数:
(1)是个函数,在系统消息触发时被系统调用
(2)不是用户自己触发的
(3)使用时直接编写函数体
(4)钩子函数名字是确定,当系统消息触发时,自动会调用
2.通过简单代码了解HOOK函数
(1)修改pytest-html报告
(2)@pytest.hookimpl(hookwrapper=True) 等价于@pytest.mark.hookwrapper
作用:
a:可以获取测试用例不同阶段的结果(setup,call,teardown)
b.可以获取钩子函数的调用结果(yield,返回一个result对象),和调用结果的测试报告对 象(返回一个report对象)
钩子函数的执行顺序:
a.拥有装饰器@pytest.hookimpl(hookwrapper=True)的pytest_runtest_makereport钩 子函数最先被调用运行到yield处,
b.pytest_html_results_table_header钩子函数被调用。
c.pytest_html_results_table_row钩子函数被调用。
d.拥有装饰器@pytest.hookimpl(hookwrapper=True)的pytest_runtest_makereport钩 子函数执行yield之后的代码。
yield接收一个Result实例,该实例封装了调用没有装饰器的钩 子函数的结果。并且不能修改结果。
(3)Pytest Hook自身钩子函数完整API
Hooks函数terminal打印测试结果(pytest_report_teststatus)
Hooks函数之统计测试结果(pytest_terminal_summary)
Hooks函数改变用例执行顺序(pytest_collection_modifyitems)
Hooks函数自定义添加命令行参数
3.给pytest-html测试报告添加额外内容
4.pytest通过hook函数(pytest_runtest_makereport)获取用例执行数据

《三》应用hook函数优化Pytest测试报告
1.开发目标:将错误截图插入HTML格式测试报告中
2.开发思路:
(1)将失败或错误的用例截图到本地目录中
(2)将截图插入HTML格式的测试报告中
(3)动手实践,基于官方代码上进行修改

《四》Pytest淘宝电商项目实战
1.conftest+fix的实现
posted on   隆江猪脚饭  阅读(285)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示