pytest+allure(allure-pytest基于这个插件)生成漂亮的报告+显示

一:环境准备

  • 1.python3.6
  • 2.windows环境
  • 3.pycharm
  • 4.allure-pytest
  • 5.allure2.8.0
  • 6.java1.8

allure-pytest快速安装

在cmd中输入 pip install allure-pytest,回车

二:报告生成

第1步:下载allure.zip,下载地址:allure-github: https://github.com/allure-framework/allure2 ,找到对应版本,并下载

第2步:解压allure.zip,将路径添加环境变量,path中,记得需要重启电脑

第3步:验证allure,在cmd中输入allure,然后回车,如果可以看到一下,说明配置完成

第4步:运行测试用例 pytest.main(["-m","login","-s","-q","--alluredir=./report"])

"-m": 标记用例

"login": 被标记需要执行用例

"-s":允许终端在测试运行时输出某些结果,例如你想输入print的内容,可以加上-s

"-q"简化输出结果

"--alluredir": 生成allure指定语法

"./report":生成报告的路径

"--clean-alluredir" :因为这个插件库allure-pytest生成的报告文件,你第二次运行时候不会清理掉里面的东西,所以你需要删除这个report文件夹,然后运行重新新建reoprt文件夹

说明:运行后,会在report文件夹里面生成文件

三.allure定制化报告

第1步:一些词语解释

一、feature: 标注主要功能模块。
二、story: 标注Features功能模块下的分支功能。
三、severity: 标注测试用例的重要级别。

1)blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2)critical级别:临界缺陷(功能点缺失)
3)normal级别:正常    默认为这个级别
4)minor级别:次要缺陷(界面错误与UI需求不符)
5)trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

四、step: 标注测试用例的重要步骤。

五、attach:用于向测试报告中输入一些附加的信息,通常是一些测试数据信息。

1)name就是附件名称,contents就是附件,type就是传类型

2)附件支持的类型(TEXT,HTML,XML,PNG,JPG,JSON,OTHER)

六、issue:这里传的是一个连接,记录的是你的问题。

七、testcase:这里传的是一个连接,记录的是你的用例。

八、description:描述用例信息

注意:以前的写法可能就是@allure.方法,现在调用不出来方法了,需要@allure.MASTER_HELPER.方法(其中MASTER_HELPER是AllureHelper()的实例化对象,需要@allure.MASTER_HELPER再调用里面的方法)

第2步:代码展+报表展示

feature方法的演示

代码:

 1 import pytest,allure
 2 @allure.feature("测试")      #标记代码
 3 class Test_Demo():
 4
 5     # @allure.story("test_demo_1")
 6     # @allure.severity("trivial")
 7     def test_demo_1(self):
 8         # """
 9         # 用例描述:22222222222222
10         # """
11         #allure.MASTER_HELPER.description("11111111111111")
12         assert 1 == 1

报告展示:

story方法的演示

代码:

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5     @allure.story("test_demo_1")      #标记代码
 6     # @allure.severity("trivial")
 7     def test_demo_1(self):
 8         # """
 9         # 用例描述:22222222222222
10         # """
11         #allure.MASTER_HELPER.description("11111111111111")
12         assert 1 == 1
13     @allure.story("test_demo_4")       标记代码
14     #@allure.severity("minor")
15     def test_demo_4(self):
16         assert 3 == 3

报告展示:

severity方法的演示:

代码:

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5     #@allure.story("test_demo_1")
 6     @allure.severity("trivial")           #标记代码
 7     def test_demo_1(self):
 8         # """
 9         # 用例描述:22222222222222
10         # """
11         #allure.MASTER_HELPER.description("11111111111111")
12         assert 1 == 1
13     #@allure.story("test_demo_4")
14     @allure.severity("minor")              #标记代码
15     def test_demo_4(self):
16         assert 3 == 3

报告展示:

setp方法的演示:

1.总的步骤备注

代码:

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5     #@allure.story("test_demo_1")
 6     #@allure.severity("trivial")
 7     @allure.step("这是两个负数的比较")      #标记代码
 8     def test_demo_1(self):
 9         # """
10         # 用例描述:22222222222222
11         # """
12         #allure.MASTER_HELPER.description("11111111111111")
13         assert -1 == -1
14     #@allure.story("test_demo_4")
15     #@allure.severity("minor")
16     @allure.step("这是两个整数的比较")      #标记代码
17     def test_demo_4(self):
18         assert 3 == 3

报告展示:

2.分步骤备注

代码:

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5     #@allure.story("test_demo_1")
 6     #@allure.severity("trivial")
 7     #@allure.step("这是两个负数的比较")
 8     def test_demo_1(self):
 9         # """
10         # 用例描述:22222222222222
11         # """
12         #allure.MASTER_HELPER.description("11111111111111")
13         assert -1 == -1
14     #@allure.story("test_demo_4")
15     #@allure.severity("minor")
16     #@allure.step("这是两个整数的比较")
17     def test_demo_4(self):
18         with allure.step("赋值一个变量a"):     #标记代码
19             a=1
20         with allure.step("赋值一个变量b"):     #标记代码
21             b=1
22         assert a == b

报表展示:

attach方法的演示:

代码:

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5     #@allure.story("test_demo_1")
 6     #@allure.severity("trivial")
 7     #@allure.step("这是两个负数的比较")
 8     def test_demo_1(self):
 9         # """
10         # 用例描述:22222222222222
11         # """
12         #allure.MASTER_HELPER.description("11111111111111")
13         assert -1 == -1
14     #@allure.story("test_demo_4")
15     #@allure.severity("minor")
16     #@allure.step("这是两个整数的比较")
17     def test_demo_4(self):
18         a = 1
19         allure.attach("{0}".format(a),"预期结果")    #标记代码    第一个参数是body,第二个参数是name
20         b=1
21         allure.attach("{0}".format(b),"实际结果")  #标记代码
22         assert a == b

报告展示:

图片附件形式:

代码:

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5     @allure.story("test_demo_1")
 6     @allure.severity("trivial")
 7     def test_demo_1(self):
 8         assert 1 == 1
 9
10     def test_demo_3(self):
11         """
12             用例描述:这里是两个数字是否相等
13         """
14         a = 3
15         b = 3
16         with open(r"G:\Web_automation\Learn_pytest\test_cases\img\2.jpg","rb") as file:          #标记代码,需要先打开图片
17             file=file.read()                                          #标记代码,读取图片
18             allure.attach(file,"预期结果",attachment_type=allure.attachment_type.JPG)        #标记代码
19         assert a == b

报告展示:

issue和testcase方法的演示:

代码:

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5     @allure.story("test_demo_1")
 6     @allure.testcase("https://home.cnblogs.com/")
 7     def test_demo_1(self):
 8         assert 1 == 1
 9
10     @allure.testcase("https://home.cnblogs.com/","测试用例地址请点击跳转")     #标记代码,你可以指定连接的名字,报告里面就会现在这个名字的连接
11     @allure.issue("http://www.baidu.com")                     #标记代码,哪个写在后,在报告里面就会显示在前面
12     def test_demo_4(self):
13          assert 3 == 3

报表展示:

description方法的演示:

代码:(这两种备注方式不能同时是存在,如果同时存在他会先使用description的,而不取3引号的)

 1 import pytest,allure
 2 @allure.feature("测试")
 3 class Test_Demo():
 4
 5
 6     @allure.story("test_demo_1")
 7     @allure.testcase("https://home.cnblogs.com/")
 8     def test_demo_1(self):
 9         assert 1 == 1
10
11     @allure.description("这里是两个3的比较")             #标记代码,优先取这个
12     def test_demo_4(self):
13         """
14             用例描述:这里是两个数字是否相等         #如果没有description,那么就取3引号的
15         """
16         assert 3 == 3

报告演示:

第3步:运行可能存在的问题

添加@allure.MASTER_HELPER.story()等标记后运行报错:MarkInfo objects are deprecated as they contain merged marks which are hard to deal with correctly.

解决方法:

第一种:可以修改源码 from allure import utils 找到这个方法下面的label_os方法,修改下面的代码为红色圈住的地方。

2.第二种:可以直接在运行时候,添加"-p","no:warnings",这样就不会出现错误。pytest.main(["-p","no:warnings","--alluredir=./report","-v"]) 或者终端运行 pytest  -p no:warnings -s --alluredir=./report

四.报告显示

报告显示方法一:

第1步:以上运行之后,可以在CMD中运行命令

allure generate report -o html --clean

report是alluredir生成的xml目录,html是最终生成html的目录

第2步:运行命令后,可以在html路径下看到生成的数据,其中index.html就是我们要的allure报告,你可以在pycharm里面打开,报告展示如下

报告显示方法二(这种相当于是调试):

第1步:以上运行之后,可以在CMD中运行命令

allure serve report   (report是alluredir生成的xml目录)

运行后,浏览器会自动跳转到allure report界面

四.pytest+allure+jenkins集成

参考我另外的一个博客文章:https://www.cnblogs.com/hao2018/p/11135180.html

注意:在本地运行的时候需要手动把代码拷贝到jenkins目录下面的workspace文件夹里面;如果在git或svn上运行,jekins会直接把代码拷贝到workspace目录 ,如果jenkins是指定工作目录就不用管了

原文地址:https://www.cnblogs.com/hao2018/p/11321959.html

时间: 2024-10-08 07:38:57

pytest+allure(allure-pytest基于这个插件)生成漂亮的报告+显示的相关文章

jmeter+ant+jenkins+mac使用HTML Publisher插件后查看html报告显示不正常

Jenkins安全默认将以下功能关闭: 1.javascript2.html上的内置插件3.内置css或从其它站的css4.从其它站的图处5.AJAX 报告中有javascript,所以显示异常.解决方法如下: 在jenkins系统管理-脚本命令行中输入以下脚本运行: System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "") 运行后查看报告,可正常显示. 不过重启jenkins后又会显示异常

解决jenkins下使用HTML Publisher插件后查看html报告显示不正常

jenkins使用html publisher查看html报告时,发现显示不全,很多东西显示不了. 在查看官方文档后,这原来是安全问题所导致的. Jenkins安全默认是将以下功能都关闭了 1.javascript2.html上的内置插件3.内置css或从其它站的css4.从其它站的图处5.AJAX 我的网页使用的是css,所以显示不全.解决方法如下: 在jenkins系统管理中输入以下脚本运行: System.setProperty("hudson.model.DirectoryBrowser

解决jenkins下使用HTML Publisher插件后查看html报告显示不正常 以jmeter报告为例

jenkins 配置使用html publisher查看jmeter html报告时,发现显示不全,很多东西显示不了. 项目配置: 查看html报告异常(很多资源无法加载): 控制台查看加载日志(与安全机制有关): 在查看官方文档后,这原来是安全问题所导致的. Jenkins安全默认是将以下功能都关闭了 1.javascript 2.html上的内置插件 3.内置css或从其它站的css 4.从其它站的图处 5.AJAX 我的网页使用的是css和Js,所以显示不全.解决方法如下: 在jenkin

用Pytest+Allure生成漂亮的HTML图形化测试报告

本篇文章将介绍如何使用开源的测试报告生成框架Allure生成规范.格式统一.美观的测试报告. 通过这篇文章的介绍,你将能够: - 将Allure与Pytest测试框架相结合: - 执行测试之后,生成Allure格式的测试报告. 1.Allure测试报告介绍 Allure是一款非常轻量级并且非常灵活的开源测试报告生成框架. 它支持绝大多数测试框架, 例如TestNG.Pytest.JUint等.它简单易用,易于集成.下面就Pytest如何与Allure集成做详细介绍. 2.Pytest框架集成Al

pytest系列(四)- pytest+allure+jenkins - 持续集成平台生成allure报告

pytest是什么 pytest是python的一款测试框架,拥有unittest的功能并比它更丰富. allure是什么 有非常多的优秀的测试框架,但却是有非常少优秀的报告工具可以展示非常清楚的用例执行过程和结果. allure是一款开源的,专门用来展示测试结果的工具,目的是希望团队内部每一个人都可以看到非常清楚的测试结果. allure可以与非常多的著名测试框架做集成. 像java语言,可以与junit4,junit5,TestNG测试框架集成. python语言,可以与pytest,beh

Pytest集成Allure生成测试报告

Pytest集成Allure生成测试报告 1.Allure安装 1)Allure报告的demo样式(是不是很漂亮呢) 2)Allure下载 选择需要的版本,下载zip文件,解压即可 2.添加allure环境变量 path:D:\Program Files\allure-2.13.1\bin 3.查看生成的allure报告 cmd:allure serve allure生成的报告路径 启动后会自动跳转到 http://192.168.11.1:54011/ 打开测试报告 4.pytest中集成al

python学习-pytest(四)-Pytest集成Allure生成测试报告

Pytest集成Allure生成测试报告 1.Allure安装 1)Allure报告的demo样式(是不是很漂亮呢) 2)Allure下载 选择需要的版本,下载zip文件,解压即可 2.添加allure环境变量 path:D:\Program Files\allure-2.13.1\bin 3.查看生成的allure报告 1. 生成allure报告 # 要先进入到allure生成的报告文件夹上级目录 cmd:allure serve allure生成的报告文件夹 启动后会自动跳转到 http:/

python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制

一.html报告错误截图 这次介绍pytest第三方插件pytest-html 这里不介绍怎么使用,因为怎么使用网上已经很多了,这里给个地址给大家参考,pytest-html生成html报告 今天在这里介绍pytest生成的报告怎么带有截图,这在web自动化测试非常有用. 需求是测试用例错误就截图,方法如下: 我们要新建一个关于截图的插件文件conftest.py,注意,文件名不能变,因为pytest-html会自动找这个自己写的插件,内容如下: from selenium import web

java_model_dao_自动生成_generator-mybatis-generator-1.3.2 基于maven插件

用mybatis原因很简单,易用,性能.是介于jdbc和hibernate之间的一个完美方案. 很简单: 1:配置pom <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://