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

自动化学习3:日志记录及测试报告的生成--自动化框架搭建

一.日志记录

1.配置文件pytest.ini:将日志写入文件方便日后查询或查看执行信息。

需要将文件处理器(文件存放位置/时间/格式等等)添加到配置文件中的【日志记录器】

# pytest.ini
[pytest]
# ---------------日志文件,需要配合logging库--------------
# 启动实时监测日志
log_cli = True
# 监测日志的等级显示
log_cli_level = INFO
# 输出日志的显示格式
log_cli_format = %(asctime)s (%(levelname)s) | %(filename)s:%(lineno)s | %(message)s
# 显示日志的时间格式
log_cli_date_format = %Y-%m-%d %H:%M:%S
# 日志文件存放位置
log_file = ./logs/pytest_log.txt
# 文件中显示的日志等级
log_file_level = INFO
# 文件中显示的日志时间格式
log_file_date_format = %Y-%m-%d %H:%M:%S
# 文件中显示的日志格式
log_file_format = %(asctime)s ( %(levelname)s ) %(filename)s:%(lineno)s | %(message)s

2.日志记录

logging配合日志生成更灵活的日志控制或在不同的测试用例中有不同的日志需求

import pytest
import logging # 配合日志记录@pytest.fixture(scope='module')
def begin():print('123')  # 前置代码,在用例之前自动执行# 日志logging.info(f'这是测试用例的info')logging.warning(f'这是测试用例的warning')logging.error(f'这是测试用例的error')yieldprint('456')  # 后置代码,在用例执行之后自动执行

每次pytest命令执行一次即可生成覆盖

其他优秀文章参考:Pytest 记录日志输出到控制台和写入文件_pytest打印日志-CSDN博客

二.生成测试报告

测试报告的步骤及报错解决:无法将“allure”项识别为 cmdlet、函数、脚本文件或可运行程序的名称的解决方法-allure的安装配置全过程-CSDN博客

1.下载/解压allure安装包/配置 allure环境变量(步骤如上链接)

2.下载allure-pytest插件 pip install allure-pytest(步骤如上链接)

3.修改配置文件pytest.ini

addopts = -v -s --alluredir=./temps --clean-alluredir

# pytest.ini
[pytest]
# --------------------测试报告生成----------
# 1)进行配置环境
# 首先需要进行下载pip install allure-pytest
addopts = -v -s --alluredir=./temps --clean-alluredir
# 2)执行生成命令:allure generate -o report temps

4.执行系统命令

allure generate -o report temps

三.自动化框架:日志记录到测试报告的生成一键生成

import os
import pytestpytest.main() # 启动框架os.system('allure generate -o report trmps') # 生成测试报告

相关文章:

  • Django 数据库配置以及字段设置详解
  • 深入理解 Nuxt.js 中的 app:created 钩子
  • 打造备份一体机,群晖科技平台化战略再进阶
  • 网络安全科普之网络钓鱼,零基础入门到精通,收藏这一篇就够了
  • 栅极控制技术是什么?(MOSFET、IGBT)
  • 如何使用Kimi编写商品管理设计文档:包含流程图和用例图
  • OIDC6-OIDC 授权流程类型
  • Paddlets时间序列集成模型回测实战:MLPRegressor、NHiTSModel与RNNBlockRegressor
  • 15 Midjourney从零到商用·实战篇:建筑设计与室内设计
  • 8.使用 VSCode 过程中的英语积累 - Help 菜单(每一次重点积累 5 个单词)
  • (28)oracle数据迁移(容器)-部署包资源
  • OpenCV视频I/O(7)视频采集类VideoCapture之初始化视频捕获设备或打开一个视频文件函数open()的使用
  • 【HTML|第1期】HTML5视频(Video)元素详解:从起源到应用
  • 智影S100户外直接采集输出的是绝对坐标吗?内业是否需要控制点进行配准?
  • access mysql
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • 0x05 Python数据分析,Anaconda八斩刀
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • IP路由与转发
  • OpenStack安装流程(juno版)- 添加网络服务(neutron)- controller节点
  • vue脚手架vue-cli
  • 阿里云前端周刊 - 第 26 期
  • 给新手的新浪微博 SDK 集成教程【一】
  • 基于webpack 的 vue 多页架构
  • 解析带emoji和链接的聊天系统消息
  • 离散点最小(凸)包围边界查找
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 日剧·日综资源集合(建议收藏)
  • 新书推荐|Windows黑客编程技术详解
  • ​一些不规范的GTID使用场景
  • !!java web学习笔记(一到五)
  • #Z0458. 树的中心2
  • #前后端分离# 头条发布系统
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (55)MOS管专题--->(10)MOS管的封装
  • (6)添加vue-cookie
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (done) 声音信号处理基础知识(4) (Understanding Audio Signals for ML)
  • (void) (_x == _y)的作用
  • (创新)基于VMD-CNN-BiLSTM的电力负荷预测—代码+数据
  • (二) 初入MySQL 【数据库管理】
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四)事件系统
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .NET 4 并行(多核)“.NET研究”编程系列之二 从Task开始
  • .NET BackgroundWorker
  • .NET Standard 的管理策略
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .net6 当连接用户的shell断掉后,dotnet会自动关闭,达不到长期运行的效果。.NET 进程守护
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET牛人应该知道些什么(2):中级.NET开发人员