首页 > 其他分享 >Allure

Allure

时间:2023-09-25 15:35:44浏览次数:67  
标签:__ allure Allure html 测试用例 pytest test

简介

Allire是一款轻量级的开源自动化测试报告生成框架,JAVA语言开发的,支持大部分测试框架,如pytest,unittest等,生成的测试报告是最漂亮的。,而且还可以配合pytest 和jenkin实现CI集成

官方文档:https://docs.qameta.io/allure/#_pytest

 

安装

安装JAVA环境

Allure的运行需要以来java的环境,小编在实测的过程,发现很多的JDK版本是无法运行起来Allure的, 但是jdk1.13是可以的,也建议读者使用该版本

在ubuntu环境下安装jdk,是非常简单的,如下

sudo apt install openjdk-13-jre-headless

在windows下载,去官网下载安装即可
连接:https://www.java.com/en/download/

 

安装Allure命令行工具

在ubuntu下安装

sudo apt-get install allure

 在实际开发中更常用的是将allure源代码下载到本地

 

安装pytest-allure集模块

pip install allure-pytest

 

基本使用

生成allure的测试报告,结果以json格式文件保存在指定的目录

pytest.ini文件

[pytest]
# 指定运行参数
addopts = -s -v -p no:warnings --reruns 3 --reruns-delay 2 -n 4 --alluredir=./results

# 搜索测试文件的目录路径
testpaths = ./

# 搜索测试文件名格式
python_files = pytest_*.py

# 搜索测试类格式
python_classes = Test*

# 搜索测试方法名格式
python_functions = test_*

 

运行测试用例,即可生成指定的json文件

 

生成测试报告

allure serve ./results

会以服务端的方式打开测试报告

 报告结果展示

 

 

生成html格式文档的测试报告
HTML格式文档的生成要依赖上面生成的json文件,所以必须先生成json文件,才可以生成html格式报告

allure generate ./results -o ./reports --clean

 

 

将index.html在浏览器中打开即可

 

常用方法

方法 描述
@allure.testcase(url,name=None) 设置测试用例的站点访问地址
@allure.issue(url,name=None) 设置测试用例的站点缺陷管理地址
@allure.feature(feature) 设置测试用例的模块名称
@allure.severity(severity_level)

设置测试用例的优先级,有五个等级

CRITICAL: 严重缺陷

NORMAL: 普通缺陷(默认值)

MINOR: 较小缺陷

TRIVIAL:不重要缺陷

BLOCKER:阻塞缺陷

@allure.title(title) 设置测试用例的标题名称
@allure.description(description) 设置测试用例的描述信息,是纯文本
@allure.description_html(description_html) 设置测试用例的描述信息,是html文本
@allure.link(url,link_type,name=None) 设置测试用例的缺陷访问地址
allure.step(title) 设置测试用例的执行过程的步骤信息
allure.attach(body, name=None, attachmet_type=None, extension=None)

设置测试用例的文本附件信息,常见的文本附件类型支持

TEXT, SVG,HTML,JSON,YAML,CSV等

allure.attach.file(filepath, name=None, attachment_type=None, extension=None)

设置测试用例的文件附件信息,常见的文件附件类型包括

PNG , GIF,IPG,PDF

 

代码实现



import os
import random
import pytest
import shutil
import allure
from allure_commons.types import LinkType


def add(x, y):
return x + y


@allure.testcase("http://www.luffycity.com", "测试地址站点的首页地址")
@allure.issue("http://www.luffycity.com", "软件缺陷的管理站点的首页地址")
class TestAdd(object):
@allure.feature("测试用例模块的描述: 购物车模块,用户模块")
@allure.story("测试用例的分类描述")
@allure.title("测试用例test_01的标题描述")
@allure.description("测试用例test_01的详细描述")
@allure.severity(allure.severity_level.MINOR) # 较小缺陷等级的用例,如果不设置这个,默认是NORMAL普通缺陷等级的用例
def test_01(self):
res = add(10, 20)
assert res == 30

@allure.feature("测试用例模块的描述: 购物车模块,用户模块")
@allure.story("测试用例的分类描述")
@allure.title("测试用例test_02的标题描述")
# @allure.description("测试用例test_02的详细描述") # 纯文本描述
@allure.description_html("<b style='color: red;'>测试用例test_02的详细描述</b>") # HTML文本描述
@allure.severity(allure.severity_level.BLOCKER) # 阻塞缺陷等级的用例
@allure.link("http://test.luffycity.com/test_02", link_type=LinkType.LINK, name="测试用例:02")

# 只设置当前测试用例方法失败重试
@pytest.mark.flaky(reruns=3, reruns_delay=2)
def test_02(self):
# 注意是使用with上下文管理器语句
with allure.step("步骤1:内容描述"):
result = 1+1

with allure.step("步骤2:内容描述"):
result +=1

print(f"测试结果是:{result}")
assert result == 3

@allure.feature("测试用例模块的描述: 购物车模块,用户模块")
@allure.story("测试用例的分类2描述")
@allure.title("测试用例test_03的标题描述")
@allure.description("测试用例test_03的详细描述")
@allure.severity(allure.severity_level.CRITICAL) # 致命缺陷等级的用例
def test_03(self):
# 图片附件
allure.attach.file("/home/zk4956z3/PycharmProjects/autoTest/demo/images/demo.png", 'demo.png', allure.attachment_type.PNG)
# 文本附件
allure.attach("""<h1>Test with some complicated html description</h1>
<table style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr align="center">
<td>William</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr align="center">
<td>Vasya</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>""", "Test with some complicated html attachment", allure.attachment_type.HTML)

ret = random.randint(1, 3)
assert ret % 2 == 0

# __name__ 是一个魔术变量,在当前文本被python解释器作为主程序运行是,值固定就是 "__main__",
# 如果当前文件作为模块被其他文件导包使用,则__name__的值,则为当前文件名或者其他的自定义名称,总之不是 "__main__"了。
if __name__ == '__main__':
try:
# 删除之前的测试结果与测试文件目录内容
shutil.rmtree("./reports")
shutil.rmtree("./results")
except Exception as e :
print(e)
pytest.main(["-sv", "/home/zk4956z3/PycharmProjects/autoTest/demo/main.py", "--alluredir", "./results"])
# 生成报告html文件
os.system('/home/zk4956z3/PycharmProjects/autoTest/allure/bin/allure generate ./results -o ./reports --clean')
# # 基于http协议打开HTML测试报告
os.system('/home/zk4956z3/PycharmProjects/autoTest/allure/bin/allure open ./reports')


 

标签:__,allure,Allure,html,测试用例,pytest,test
From: https://www.cnblogs.com/victor1234/p/17727876.html

相关文章

  • pytest+allure+jenkins+python+git,实现Linux服务器看测试报告,并发送邮件通知
    1、简介pytest:一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。allure:是开源测试报告框架。jenkins:持续集成工具python:测试脚本语言git:开源的分布式版本控制系统2、Windows端我们需要开发测试代码,使用git上传到云端仓库2.1......
  • 使用Jenkins的流水线生产Allure报告发送到企业微信
    pipeline{agentanyenvironment{name="${JOB_NAME}"times="${currentBuild.duration}"task="${BUILD_ID}"logs="${ChangeLog}"}stages{stage('拉取代码'){steps{gitcred......
  • Allure用法
    查看官网:https://docs.qameta.io/allure/#_junit_5源码example:https://github.com/allure-examples/allure-examples/tree/master/allure-junit5/src/test/java/io/qameta/allure/examples/junit5  添加描述信息packagecom.allure;importio.qameta.allure.Allure;......
  • Allure常用命令
    命令格式:allure [option]  [command]  [commandoptions]allure--help帮助allure--version查看版本信息allureserve 生成在线版本的测试alluregenerate<allure-result中间文件> -o  输出目录(默认路径:allure-report)引入依赖<?xmlversion="1.0"e......
  • Allure环境安装
    1、安装Java(推荐1.8版本),需要配置环境变量2、安装Allure(2.13以上版本),需要配置环境变量【下载地址】https://repo1.maven.org/maven2/io/qameta/allure/allure-commandline/mac/linux:下载tarwindows:下载zip配置环境变量:解压后将bin目录加入PATH环境变量安......
  • uiautomator2 截图+压缩图片+放入allure报告中
    defsave_screenshot(self,screenshot_path):"""截图保存到某个路径:paramscreenshot_path::return:"""self.d.screenshot(screenshot_path) screenshot_path=f&quo......
  • allure报告中firefox信息不展示(多浏览器或多线程执行时只显示一个浏览器的日志)
    安装的allure-pytest的版本要是2.11.1之前的(之后的版本有test_result.historyId,但位置及方法不一样,我目前没研究怎么修改)在依赖包Lib--site-packages--allure_pytest--listener.py文件里修改test_result.historyId=md5(item.nodeid)变成test_result.historyId=md5(item.nod......
  • 自动化测试 | allure 安装教程
    1、allure官方下载地址:https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/2、解压压缩包。将bin目录配置的系统环境变量path中。3、在cmd中输入:allure,不提示allure不是内部或外部命令,说明allure已经配置好了。4、在pycharm的终端输入pipinstal......
  • Pytest allure中steps中添加日志
    是否在使用allure时,为了更好的定位问题,会把日志添加上去。类似如下的情行:#!/usr/bin/envpython#-*-coding:utf-8-*-#@Time:2023/7/189:12#@Author:huzq#@File:test_allure.pyimportloggingimportallureimportpytestLOG=logging.getLogger(......
  • python+allure生成测试报告
    #一、allure安装##下载地址:CentralRepository:io/qameta/allure/allure-commandline(apache.org)##下载需要安装的版本,这里我选择的是2.9的版本##图片##下载解压完成后,将bin文件夹所在的目录放入环境变量中,同时需要安装JDK。##完成后,命令行pipinstallallure-pytest安装......