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

news2024/9/24 23:45:44

一.日志记录

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')
    yield

    print('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 pytest

pytest.main() # 启动框架

os.system('allure generate -o report trmps') # 生成测试报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2161804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

虚拟机使用FileZilla软件实现文件互传

软件版本:FizeZilla 3.63.2 VirtualBox7.0.20 1.设置桥接模式(网卡) 2.查看ip 在控制台输入ifconfig 3.在终端打开控制台安装FTP服务 sudo apt-get install vsftpd 等待软件自动安装,安装完成以后使用 VI命令打开 /etc/vsftpd.conf,命令…

8086的指令系统

今天上午综测答辩结束,感觉就很一般,但是我昨晚也操心到觉都没睡好,今天中午舍友玩P5吵得我也没睡着,感觉脑袋昏昏沉沉,汇编上课没认真听讲,晚上来补一补。还是采用GPT来讲解(水文字&#xff09…

Unity开发绘画板——02.创建项目

1.创建Unity工程 我们创建一个名为 DrawingBoard 的工程,然后先把必要的工程目录都创建一下: 主要包含了一下几个文件夹: Scripts :存放我们的代码文件 Scenes :工程默认会创建的,存放场景文件 Shaders &…

9.22日常记录

1.memccpy函数 memccpy是一个用于内存复制的函数&#xff0c;它的原型通常在<cstring>&#xff0c;memccpy函数的作用是从源内存区域复制字节到目标内存区域&#xff0c;直到遇到特定的字符或者复制了指定数量的字节为止。 返回值: 如果在复制过程中找到了指定的字符&am…

科大讯飞智能体Python SDK接入流程

第一步&#xff1a;注册账号​ 进入https://passport.xfyun.cn/login&#xff0c;根据提示注册或登陆账号。 ​ 第二步&#xff1a;创建智能体 进入这个网页创建智能体&#xff0c;填好信息&#xff1a; https://xinghuo.xfyun.cn/botcenter/createbot?createtrue&qu…

lkhgjfjghkbhjk

&#x1f4e2;博客主页&#xff1a;https://blog.csdn.net/2301_779549673 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01; &#x1f4e2;本文由 JohnKi 原创&#xff0c;首发于 CSDN&#x1f649; &#x1f4e2;未来很长&#…

http增删改查四种请求方式操纵数据库

注意&#xff1a;在manage.py项目入口文件中的路由配置里&#xff0c;返回响应的 return语句后面的代码不会执行&#xff0c;所以路由配置中每个模块代码要想都执行&#xff0c;不能出现return 激活虚拟环境&#xff1a;venv(我的虚拟环境名称&#xff09;\Scripts\activate …

ubuntu下检查端口是否占用问题,编写shell脚本检查端口是否占用

1.创建脚本 touch check_port.sh2.粘贴以下内容到check_port.sh中 #!/bin/bash# 检查端口是否被占用的函数 check_port() {local port80local result$(sudo lsof -i:$port)if [[ -z "$result" ]]; thenecho "端口 $port 未被占用。"elseecho "警告:…

水电站/水库大坝安全监测系统完整解决方案

一、背景 在当今社会&#xff0c;随着全球对清洁能源需求的日益增长&#xff0c;水电站作为可再生能源的重要组成部分&#xff0c;其安全稳定运行显得尤为重要。水电站&#xff0c;尤其是大型水库大坝&#xff0c;不仅承载着发电、防洪、灌溉等多重功能&#xff0c;还直接关系…

二分查找法求解一元三次方程组

本题使用二分查找求解 #include <iostream> #include <algorithm> #include <cmath> using namespace std;double a,b,c,d;// 求出方程的值 double f(double x) {return a*pow(x,3)b*pow(x,2)c*xd; }void find(double l,double r) {// 若精度在可控范围内…

每日一练:二叉树的层序遍历

102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 一、题目要求 给你二叉树的根节点 root &#xff0c;返回其节点值的 层序遍历 。 &#xff08;即逐层地&#xff0c;从左到右访问所有节点&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,n…

Python常见Json对比库deepdiff、json_tools、jsonpatch

对比两个json对象差异&#xff0c;常见的第三方对比库deepdiff、json_tools、jsonpatch都能够满足我们的需求。 用法&#xff1a; deepdiff from deepdiff import DeepDiffa {"name": "yanan", "pro": {"sh": "shandong"…

【微服务即时通讯系统】——etcd一致性键值存储系统,etcd的介绍,etcd的安装,etcd使用和功能测试

文章目录 etcd1. etcd的介绍1.1 etcd的概念 2. etcd的安装2.1 安装etcd2.2 安装etcd客户端C/C开发库 3. etcd使用3.1 etcd接口介绍 4. etcd使用测试4.1 原生接口使用测试4.2 封装etcd使用测试 etcd 1. etcd的介绍 1.1 etcd的概念 Etcd 是一个基于GO实现的 分布式、高可用、一致…

第十五章 文件上传

目录 一、文件上传注意点 二、JavaWeb上传文件的核心 三、常规的JavaWeb上传实现 四、运行效果 一、文件上传注意点 1. 为保证服务器安全&#xff0c;上传文件应该放在外界无法直接访问的目录下&#xff0c;比如放于WEB-INF目录下。 2. 为防止文件覆盖的现象发生&#xff…

[万字长文]stable diffusion代码阅读笔记

stable diffusion代码阅读笔记 获得更好的阅读体验可以转到我的博客y0k1n0的小破站 本文参考的配置文件信息: AutoencoderKL:stable-diffusion\configs\autoencoder\autoencoder_kl_32x32x4.yaml latent-diffusion:stable-diffusion\configs\latent-diffusion\lsun_churches-ld…

Unity图形用户界面!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。(万字解析)

Unity 3D GUI 简介 游戏开发过程中&#xff0c;开发人员往往会通过制作大量的图形用户界面&#xff08; Graphical User Interface&#xff0c;GUI &#xff09;来增强游戏与玩家的交互性。 Unity 3D 中的图形系统分为 OnGUI、NGUI、UGUI等&#xff0c;这些类型的图形系统内容…

springboot项目引入了第三方jar包

应该把jar包放在resource目录下&#xff0c;新建一个lib目录放进去&#xff0c;不然打包的时候会报错找不到jar包&#xff0c;放入jar包&#xff0c;右键添加到库&#xff0c;才可以使用。 _g().startMarquee();

解决方案 | 镭速助力动漫游戏行业突破跨网文件交换瓶颈

在数字化浪潮推动下&#xff0c;动漫游戏行业蓬勃发展。随着高清技术的普及和云游戏的兴起&#xff0c;动漫游戏行业对动画的画质要求越来越高&#xff0c;数据量呈现爆炸式增长。然而&#xff0c;行业内的跨网文件交换难题也日益凸显&#xff0c;成为制约行业发展的瓶颈。 行业…

RTE大会报名丨 重塑语音交互:音频技术和 Voice AI,RTE2024 技术专场第一弹!

Voice AI 实现 human-like 的最后一步是什么&#xff1f; AI 视频爆炸增长&#xff0c;新一代编解码技术将面临何种挑战&#xff1f; 当大模型进化到实时多模态&#xff0c;又将诞生什么样的新场景和玩法&#xff1f; 所有 AI Infra 都在探寻规格和性能的最佳平衡&#xff0…

考研数据结构——C语言实现插入排序

插入排序是一种简单直观的比较排序算法&#xff0c;它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常采用in-place&#xff08;原地排序&#xff09;&#…