当前位置: 首页 > news >正文

【Pytest 测试报告完整模板:从异常处理到日志记录与截图】


在自动化测试中,生成详尽的测试报告非常重要。本文将介绍如何使用 pytest 生成完整的测试报告,包括异常处理、断言、日志记录、前置条件、后置条件,以及在测试失败时截取 Android 设备屏幕截图的功能。通过本文,你将学会如何构建一个强大的测试框架,为你的项目提供全面的测试支持。

1. 环境准备

在开始之前,请确保安装了必要的 Python 库。你可以使用以下命令安装:

pip install pytest pytest-html pytest-logger
pip install pillow  # 用于处理截图

2. 项目结构

我们将按照以下项目结构来组织代码:

/test_project├── tests/│   ├── test_sample.py├── conftest.py├── pytest.ini├── logs/│   └── test.log├── screenshots/│   └── failure.png
  • tests/ 目录存放测试用例。
  • conftest.py 文件配置测试的前置和后置条件。
  • pytest.ini 文件用于配置 pytest 的默认选项。
  • logs/ 目录用于存放测试日志。
  • screenshots/ 目录用于存放测试失败时的截图。

3. 配置文件 pytest.ini

pytest.ini 文件配置了基本的 pytest 选项,包括生成 HTML 报告、日志记录和控制台输出的配置。

[pytest]
addopts = --html=report.html --self-contained-html --log-cli-level=INFO --log-file=logs/test.log --capture=tee-sys
log_cli = true
log_cli_level = INFO
log_file = logs/test.log
log_file_level = INFO
  • --html=report.html: 生成 HTML 格式的测试报告。
  • --log-cli-level=INFO: 设置控制台输出的日志级别为 INFO。
  • --log-file=logs/test.log: 将日志记录到 logs/test.log 文件。
  • --capture=tee-sys: 同时捕获 stdout 和 stderr 的输出。

4. 配置文件 conftest.py

conftest.py 文件定义了测试的前置和后置条件,以及测试失败时截取 Android 设备屏幕截图的逻辑。

import pytest
import logging
import os
from datetime import datetime
from PIL import ImageGrab
import subprocess@pytest.fixture(scope="function", autouse=True)
def 

相关文章:

  • Vue.js 3.x 必修课|008|计算属性:提高代码服用性和可维护性
  • *算法训练(leetcode)第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • Linux:账号和权限管理(一)
  • css 数字平铺布局
  • uni-app关于跨域问题(十七)
  • Go语言使用cobra开发第一个命令行程序
  • 【redis】springboot 用redis stream实现MQ消息队列 考虑异常ack重试场景
  • The C programming language (second edition,KR) exercise(CHAPTER 7)
  • 苹果手机清理软件:让你的iPhone保持最佳状态
  • JavaScript前端面试题——fetch
  • 上海冷链配送新篇章 华鼎冷链科技以卓越服务餐饮品牌
  • 技术汇总笔记7:switch 嵌套用法 和 改进 (条件分支相关内容)
  • Excel文件处理excel内容
  • FastAPI技巧
  • HTML-03.新浪新闻-标题-样式2
  • -------------------- 第二讲-------- 第一节------在此给出链表的基本操作
  • bootstrap创建登录注册页面
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • js学习笔记
  • k个最大的数及变种小结
  • python docx文档转html页面
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue-cli在webpack的配置文件探究
  • vue-router 实现分析
  • 测试开发系类之接口自动化测试
  • 从零开始在ubuntu上搭建node开发环境
  • 使用API自动生成工具优化前端工作流
  • 终端用户监控:真实用户监控还是模拟监控?
  • ​Python 3 新特性:类型注解
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ‌前端列表展示1000条大量数据时,后端通常需要进行一定的处理。‌
  • # AI产品经理的自我修养:既懂用户,更懂技术!
  • #define用法
  • #pragma 指令
  • #ubuntu# #git# repository git config --global --add safe.directory
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (二)hibernate配置管理
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm码农论坛 毕业设计 231126
  • (四)stm32之通信协议
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转)http协议
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ***监测系统的构建(chkrootkit )
  • .Family_物联网
  • .Net Core 笔试1
  • .Net Core 中间件验签
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET Framework与.NET Framework SDK有什么不同?
  • .NET MVC 验证码
  • .NET的数据绑定
  • .NET学习教程二——.net基础定义+VS常用设置
  • [ IO.File ] FileSystemWatcher