首页 > 编程语言 >python+allure生成测试报告

python+allure生成测试报告

时间:2023-08-21 09:12:35浏览次数:48  
标签:测试报告 title python ## step allure import

# 一、allure安装
#
# 下载地址:Central Repository: io/qameta/allure/allure-commandline (apache.org)
#
# 下载需要安装的版本,这里我选择的是2.9的版本
#
# 图片
#
# 下载解压完成后,将bin文件夹所在的目录放入环境变量中,同时需要安装JDK。
#
# 完成后,命令行pip install allure-pytest安装allure插件,安装完成后可以验证一下,看看是否安装成功。PS:首次安装后需要重启下pycharm。
#
# 二、生成测试报告
#
# 生成测试报告有多种方式,结合自动化测试需求,将生成命令写在run.py文件中,执行测试用例后自动生成测试报告。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time : 2023/6/11 11:22
# @Author : 凌雪
# @File : run.py
# @Software: PyCharm
# 功能说明:全局运行文件


import pytest
import os
import sys

if __name__ == "__main__":
testpath = os.path.dirname(os.getcwd()) + '/testcase/'
# --clean-alluredir 如果temps目录下存在内容则先清除,即不保留历史记录
pytest.main(['-s', testpath, '--alluredir', '../temps', '--clean-alluredir'])
os.system('allure generate ../temps -o ../reports --clean')
# pytest.main(['-s', testpath+'homepage/test_custom.py'])
# 生成报告路径可以根据需要自己修改,这边我设置的是生成的json文件和html报告分别在两个文件夹下。temps文件夹中是json格式的,reports文件中的则是转化成html的,比较美观。如果是多次测试需要保留历史记录以备比对,则无需加--clean-alluredir参数。
#
# 生成测试报告后,在reports文件夹中找到index.html文件,右键选择用浏览器打开,即可查看到测试报告。
#
# 图片
#
# 注意,如果直接在文件夹中用浏览器打开这个文件,是渲染不出来的。
#
# 图片
#
# 三、测试报告优化
#
# 因为用例是通过yaml文件管理的,所以先封装了一个测试用例标题的方法,然后将在yaml用例中的名称显示到测试报告中。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time : 2023/6/11 17:53
# @Author : 凌雪
# @File : allure_step.py
# @Software: PyCharm
# 功能说明:生成测试报告中的用例封装


import allure
import json


def allure_title(title: str) -> None:
"""
allure中显示的用例标题
:param title:
:return:
"""
allure.dynamic.title(title)


def allure_step(step_title: str, content: str) -> None:
"""

:param step_title: 步骤及附加名称
:param content: 附件内容
:return:
"""
with allure.step(step_title):
allure.attach(json.dumps(content, ensure_ascii=False, indent=4), step_title, allure.attachment_type.TEXT)
# 图片
#
# 在py文件中,还可以添加模块名称、用例名称、描述等。

#!/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time : 2023/6/11 11:47
# @Author : 凌雪
# @File : test_get_headinfo.py
# @Software: PyCharm
# 功能说明:首页涉及到的接口测试用例,这些接口无需登录


import pytest
from common.send_request import Send_Request
from common.yaml_util import *
from common.parameterize_util import ddt, read_testcase
import allure


@allure.feature("首页接口测试")
class TestHomepage:

@allure.story("不需要登录的接口")
@pytest.mark.parametrize('testdata', read_testcase('homepage\\get_headinfo.yaml'))
def test_getheadinfo(self, testdata):
res = Send_Request("trainurl").standard_yaml(testdata)
# 图片

标签:测试报告,title,python,##,step,allure,import
From: https://www.cnblogs.com/Raul2018/p/17645097.html

相关文章

  • Python程序员Visual Studio Code指南3 编辑代码
    3编辑代码VisualStudioCode提供了许多适用于所有编程语言的标准编辑功能。快速修复代码补全定义声明格式化语法重构代码片段这些内置的编辑功能减少了编辑代码所需的手动任务和键入次数,从而节省了时间。Python扩展扩展了代码编辑功能。有了Python扩展,导入库只需极......
  • Python实现Windows下的视频壁纸
    importsysimportwin32guiimportsubprocessimporttimedefpretreatmentHandle():hwnd=win32gui.FindWindow("Progman","ProgramManager")workerW1=Nonewhile1:workerW1=win32gui.FindWindowEx(None,workerW1......
  • 我也来扒一扒python的内存回收机制!
    python的内存回收是面试中经常会问到一个问题,今天我来给大家深度剖析下python的内存回收和缓存机制 1、引用计数器我们知道,python是通过引用计数器来做内存回收的,下面我们来重点讲下引用计数器提到引用计数器,我们需要先讲下python中的环状双向链表refchain。1.1双向链表ref......
  • python学习日记 2023年8月20日
    fromPILimportImage##pipinstallpillowimportosim=Image.open('./1.jpg')w,h=im.sizeimage_row=3image_column=5names=os.listdir('./img_f')new_img=Image.new('RGB',(image_column*w,image_row*h))foryinra......
  • devops之Python编程-类的基础架构
    Python中,可以通过关键字class来定义一个类。类是一种自定义数据类型,它可以包含属性(变量)和方法(函数)。下面是一个示例:classMyClass:def__init__(self,name):self.name=namedefsay_hello(self):print("Hello,"+self.name+"!")在上面的......
  • Python教程(10)——Python变量类型元组tuple的详细用法
    在Python中,元组(Tuple)是一种有序且不可变的数据类型。元组可以包含任意数量的元素,用逗号分隔,并用圆括号括起来。与列表(List)不同,元组的元素不能修改。元组与列表一样,可以通过索引访问其中的元素。my_tuple=("apple","banana","cherry")print(my_tuple[0])#输出:apple元组的......
  • Python教程(10)——Python变量类型元组tuple的详细用法
    在Python中,元组(Tuple)是一种有序且不可变的数据类型。元组可以包含任意数量的元素,用逗号分隔,并用圆括号括起来。与列表(List)不同,元组的元素不能修改。元组与列表一样,可以通过索引访问其中的元素。my_tuple=("apple","banana","cherry")print(my_tuple[0])#输出:apple元组......
  • 高效利用Python装饰器优化函数功能与性能
    在后端开发领域,Python作为一门广泛应用的编程语言,为开发人员提供了丰富的工具和库。本文将深入探讨Python装饰器的原理、用法以及如何利用装饰器优化函数的功能和性能。通过结合实际示例,为读者提供关于装饰器的深奥知识和实用代码。1.装饰器概述与原理装饰器是Python中一种强大的......
  • python生成相对于入口文件所在目录的绝对路径
    在VSCODE中,如果打开多个python文件夹,则在执行python文件时,有时候当前工作目录会切换到其他文件夹,导致保存和读取文件报错.这时候可以生成文件的绝对路径,就可以避归这个问题.下面是生成绝对路径的代码:importosimport__main__defAbsPath(fileName:str)->str:......
  • Python爬虫实现简单翻译
    importrequestsimportjsonimportosurl="http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"data={"from":"AUTO","to":"AUTO","smartresult":"dict&quo......