小笔记-简单但够用系列_allure定制化报告-pytest

2023-11-05 22:20

本文主要是介绍小笔记-简单但够用系列_allure定制化报告-pytest,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • allure 安装
  • allure 报告定制
    • 可能需要注意的模块问题
    • 简单够用的定制操作
      • 用例分组
      • 用例描述
      • 用例等级
      • 用例步骤
      • logo定制
        • 启用自定义模块
        • 修改 css 配置文件
  • 生成 allure 报告

allure 安装

allure 安装文件下载路径

https://github.com/allure-framework/allure2/releases/tag/2.14.0

解压后对其 bin 目录 配置系统环境变量即可在命令行中调用。

>E:\python_project\pythonProject> allure --version
>2.14.0

allure 报告定制

  • 原始报告
    定制前1
    定制前2

  • 定制报告
    定制后1
    定制后2

对于原始的报告,内容是非常单薄的,而且缺少必要的描述,只有编写用例的人才知道这个用例时什么,并不明了。因此需要进行定制化的添加内容。

可能需要注意的模块问题

pytest-allure-adaptor 模块,一个在网上资料经常出现的东西,利用这个模块也可以进行报告的定制化。但不建议使用,因为版本的兼容问题可能会导致安装后出现运行报错。
对于简单够用的来说,直接使用 allure 模块即可。

import  allure

简单够用的定制操作

用例分组

  • feature
    一般用在模块或者类前,分组级别较高。
    @allure.feature("模块t1")
    class Test_t1:
    
  • story
    一般用在用例前,作为用例的名称。
    @allure.story('测试用例 002')
    def test_002(self):
    
  • title
    一般用在用例前,与 story 作为用例的名称。
    @allure.title('测试用例 003')
    def test_003(self):
    

@allure.story() 与 @allure.title() 的区别在于使用 story 的用例其执行结果会统一归在一个组中,而使用 title 的用例则会按照执行顺序显示。具体可看前面的定制后的报告图。

用例描述

  • description
    使用 @allure.description 对用例进行描述说明。
    @allure.description("测试用例的描述")
    def test_020(self):
    

用例等级

  • severity
    用 @allure.severity(allure.severity_level.NORMAL) 对用例的严重等级进行标记。用例的严重级从大到小有以下几级:BLOCKER 、CRITICAL 、NORMAL 、MINOR 、TRIVIAL。
    @allure.severity(allure.severity_level.CRITICAL)
    def test_020(self):
    

用例步骤

对于用例的步骤有两种方法可以标记:

  • @allure.step(‘test step 1’)
    这种方式是用于对方法的嵌套,如:

    @allure.step('步骤1:1')
    def step1(self):print('1')
    @allure.step('步骤2:2')
    def step2(self):print('2')
    @allure.title('测试用例 001')
    def test_001(self):self.step1()self.step2()
    

    在这里插入图片描述

  • with allure.step(‘test step 1’)
    这种方式是用在用例内部的,需要将对应的步骤代码写到 with allure.step() 下,效果请见 定制报告图2 ,代码应用如下:

    def test_020(self):with allure.step('步骤1:输出用例编号'):print("020")with allure.step('步骤2:执行断言'):assert url == 'test.com'

报告内容的定制代码行数,可能不比单纯的用例代码行数少,要做出详细、令人一目了然且满意的报告,也并不简单,需要耗费不少的时间。

报告的语言显示可以在页面左侧菜单下选择。
若生成的报告打开时,数据一直显示加载中,不能正常查看,则为打开方式的问题,使用pycharm打开报告,然后选择浏览器打开即可。

logo定制

修改对应的 css 配置文件,可对报告的 logo 及菜单栏标题进行定制修改。

启用自定义模块
plugins:- junit-xml-plugin- xunit-xml-plugin- trx-plugin- behaviors-plugin- packages-plugin- screen-diff-plugin- xctest-plugin- jira-plugin- xray-plugin- custom-logo-plugin
修改 css 配置文件
.side-nav__brand {background: url(logo.png) no-repeat left center !important;margin-left: 15px;width: 240px;height: 75px;
}
.side-nav__brand span{display: none;
}
.side-nav__brand:after {content: "DFDK";margin-left: 20px;width: 68px;height: 86px;position: fixed;top: 36px;left: 31px;font-size: 42px;font-weight: 300;
}

修改后重新生成报告即可应用。

生成 allure 报告

对于报告的生成,若所选择的数据目录或报告输出目录不存在,需要先创建目录。

import pytest
import os
if __name__ == '__main__':pytest.main(['-v','-s','--count','1','--repeat-scope','session','--html=result2V.html','test_data.py','--alluredir','./temp'])## --count 为循环执行次数## --repeat-scope 为指定循环的范围,session为循环的是会话循环, 1 2 1 2 1 2,若不指定,则默认为用例循环,及 1 1 1 2 2 2## --clean-alluredir 如需生成的报告只有最新的数据,可添加该参数os.system('allure generate ./temp -o ./report --clean')## --clean 每次生成报告都会将已有的报告删除,若需要保留每次的报告,需要指定新的目录或者报告名称

这篇关于小笔记-简单但够用系列_allure定制化报告-pytest的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/352851

相关文章

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

C++初始化数组的几种常见方法(简单易懂)

《C++初始化数组的几种常见方法(简单易懂)》本文介绍了C++中数组的初始化方法,包括一维数组和二维数组的初始化,以及用new动态初始化数组,在C++11及以上版本中,还提供了使用std::array... 目录1、初始化一维数组1.1、使用列表初始化(推荐方式)1.2、初始化部分列表1.3、使用std::

redis群集简单部署过程

《redis群集简单部署过程》文章介绍了Redis,一个高性能的键值存储系统,其支持多种数据结构和命令,它还讨论了Redis的服务器端架构、数据存储和获取、协议和命令、高可用性方案、缓存机制以及监控和... 目录Redis介绍1. 基本概念2. 服务器端3. 存储和获取数据4. 协议和命令5. 高可用性6.

JAVA调用Deepseek的api完成基本对话简单代码示例

《JAVA调用Deepseek的api完成基本对话简单代码示例》:本文主要介绍JAVA调用Deepseek的api完成基本对话的相关资料,文中详细讲解了如何获取DeepSeekAPI密钥、添加H... 获取API密钥首先,从DeepSeek平台获取API密钥,用于身份验证。添加HTTP客户端依赖使用Jav

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

利用Python编写一个简单的聊天机器人

《利用Python编写一个简单的聊天机器人》这篇文章主要为大家详细介绍了如何利用Python编写一个简单的聊天机器人,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 使用 python 编写一个简单的聊天机器人可以从最基础的逻辑开始,然后逐步加入更复杂的功能。这里我们将先实现一个简单的

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

使用PyQt5编写一个简单的取色器

《使用PyQt5编写一个简单的取色器》:本文主要介绍PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16进制颜色编码,一款跟随鼠标刷新图像的RGB和16... 目录取色器1取色器2PyQt5搭建的一个取色器,一共写了两款应用,一款使用快捷键捕获鼠标附近图像的RGB和16