Allure简介
Allure是一款非常轻量级并且非常灵活的开源测试报告生成框架。 它支持绝大多数测试框架, 例如TestNG、Pytest、JUint等。它简单易用,易于集成。下面就Pytest如何与Allure集成做详细介绍。

Pytest框架集成Allure
Pytest是Python的单元测试框架,非常方便和易用。强烈推荐对于用Python进行测试工作的小伙伴使用这个测试框架,相比与Python自带的UnitTest好用太多太多。今天我们主要是介绍如何将测试报告生成工具Allure集成到Pytest中。目前现在已经有allure2了,我们要使用的就是这个allure2

一、Features、Story定制详解

@allure.feature # 用于定义被测试的功能,被测产品的需求点,模块
@allure.story # 用于定义被测功能的用户场景,即子功能点,用例


import pytest,os
import allure
class Test(object):@allure.feature('登录功能')@allure.story('登录成功')def test_login(self):assert 1 == 1def test2(self):assert 1==1
if __name__=="__main__":#生成测试报告jsonpytest.main(["-s", "-q", '--alluredir', 'report/result', 'test01.py'])#将测试报告转为html格式split='allure '+'generate '+'./report/result '+'-o '+'./report/html '+'--clean'os.system('cd C:/Users/wangli/PycharmProjects/Test/test/report')os.system(split)print(split)"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
..
2 passed in 0.06s
Report successfully generated to .\report\html
allure generate ./report/result -o ./report/html --cleanProcess finished with exit code 0

二、title用例标题和description用例描述定制详解

@allure.title(用例的标题)

@allure.description(用例的描述)

或用例描述也可写成这样

"""
这里是登录成功测试用例
"""
import pytest,os
import allure
class Test(object):@allure.feature('登录功能')@allure.story('登录成功')@allure.title('用例的标题')#用例的标题@allure.severity('blocker')@allure.issue('https://www.baidu.com/')#添加权限对应链接@allure.testcase('https://www.baidu.com/')#添加用例对应链接def test_login(self):"""这里是登录成功测试用例:return:"""assert 1 == 1@allure.severity('critical')def test_01(self):assert 1==1@allure.severity('normal')def test_02(self):assert 1==1@allure.severity('minor')def test_03(self):assert 1==1@allure.severity('trivial')def test_04(self):assert 1==1if __name__=="__main__":#生成测试报告jsonpytest.main(["-s", "-q", '--alluredir', 'report/result', 'test01.py'])#将测试报告转为html格式split='allure '+'generate '+'./report/result '+'-o '+'./report/html '+'--clean'os.system('cd C:/Users/wangli/PycharmProjects/Test/test/report')os.system(split)print(split)"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
.....
5 passed in 0.09s
Report successfully generated to .\report\html
allure generate ./report/result -o ./report/html --cleanProcess finished with exit code 0

三、Severity定制标记用例级别详解

根据测试用例的重要性划分测试用例等级,如果没指定等级,默认为normal级别

Allure中对严重级别的定义:
1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)

@allure.severity('blocker')

2、 Critical级别:临界缺陷( 功能点缺失)

@allure.severity('critical')

3、 Normal级别:普通缺陷(数值计算错误)

@allure.severity('normal')

4、 Minor级别:次要缺陷(界面错误与UI需求不符)

@allure.severity('minor')

5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

@allure.severity('trivial')

import pytest,os
import allure
class Test(object):@allure.feature('登录功能')@allure.story('登录成功')@allure.severity('blocker')def test_login(self):"""这里是登录成功测试用例:return:"""assert 1 == 1@allure.severity('critical')def test_01(self):assert 1==1@allure.severity('normal')def test_02(self):assert 1==1@allure.severity('minor')def test_03(self):assert 1==1@allure.severity('trivial')def test_04(self):assert 1==1if __name__=="__main__":#生成测试报告jsonpytest.main(["-s", "-q", '--alluredir', 'report/result', 'test01.py'])#将测试报告转为html格式split='allure '+'generate '+'./report/result '+'-o '+'./report/html '+'--clean'os.system('cd C:/Users/wangli/PycharmProjects/Test/test/report')os.system(split)print(split)"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
.....
5 passed in 0.10s
Report successfully generated to .\report\html
allure generate ./report/result -o ./report/html --cleanProcess finished with exit code 0

四、Step和attach定制详解

allure.step("调用登录"): # 将一个测试用例分成几个步骤,将步骤打印到测试报告中

allure.attach('账号', '18221124104') # attach可以打印一些附加信息

import pytest,os
import allure@allure.feature('购物车功能')  # feature定义功能
class Test(object):@allure.story('加入购物车')  # story定义用户场景def test_add_shopping_trolley(self):login('橙子', '登录密码')  # 调用“步骤函数”with allure.step("浏览商品"):  # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤2allure.attach('商品1', 'NIKE球鞋')  # attach可以打印一些附加信息allure.attach('商品2', '大众速腾')with allure.step("点击商品"):  # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤3passwith allure.step("校验结果"):allure.attach('期望结果', '添加购物车成功')allure.attach('实际结果', '添加购物车失败')assert 'success' == 'failed'@allure.story('修改购物车')def test_edit_shopping_trolley(self):pass@pytest.mark.skipif(reason='本次不执行')@allure.story('删除购物车')def test_delete_shopping_trolley(self):pass@allure.step('账号登录')  # 还可以将一个函数作为一个步骤,调用此函数时,报告中输出一个步骤,步骤名字通常是函数名,我把这样的函数叫“步骤函数”
def login(user, pwd):print(user, pwd)
if __name__=="__main__":#生成测试报告jsonpytest.main(["-s", "-q", '--alluredir', 'report/result', 'test01.py'])#将测试报告转为html格式split='allure '+'generate '+'./report/result '+'-o '+'./report/html '+'--clean'os.system('cd C:/Users/wangli/PycharmProjects/Test/test/report')os.system(split)print(split)"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
橙子 登录密码
F.s
================================== FAILURES ===================================
_______________________ Test.test_add_shopping_trolley ________________________self = <test.test01.Test object at 0x0000024F3425C898>@allure.story('加入购物车')  # story定义用户场景def test_add_shopping_trolley(self):login('橙子', '登录密码')  # 调用“步骤函数”with allure.step("浏览商品"):  # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤2allure.attach('商品1', 'NIKE球鞋')  # attach可以打印一些附加信息allure.attach('商品2', '大众速腾')with allure.step("点击商品"):  # 将一个测试用例分成几个步骤,将步骤打印到测试报告中,步骤3passwith allure.step("校验结果"):allure.attach('期望结果', '添加购物车成功')allure.attach('实际结果', '添加购物车失败')
>           assert 'success' == 'failed'
E           AssertionErrortest01.py:51: AssertionError
1 failed, 1 passed, 1 skipped in 0.18s
Report successfully generated to .\report\html
allure generate ./report/result -o ./report/html --cleanProcess finished with exit code 0

五、Issue缺陷链接和TestCase用例链接定制详解

@allure.issue()   缺陷     对应缺陷管理系统里面的链接,在测试报告中可以点击跳转的

@allure.testcase()  测试用例的链接地址    对应功能测试用例系统里面的case链接,在测试报告中可以点击跳转的

import pytest,os
import allure
class Test(object):@allure.feature('登录功能')@allure.story('登录成功')@allure.severity('blocker')@allure.issue('https://www.baidu.com/')#添加缺陷对应链接@allure.testcase('https://www.baidu.com/')#添加用例对应链接def test_login(self):"""这里是登录成功测试用例:return:"""assert 1 == 1@allure.severity('critical')def test_01(self):assert 1==1@allure.severity('normal')def test_02(self):assert 1==1@allure.severity('minor')def test_03(self):assert 1==1@allure.severity('trivial')def test_04(self):assert 1==1if __name__=="__main__":#生成测试报告jsonpytest.main(["-s", "-q", '--alluredir', 'report/result', 'test01.py'])#将测试报告转为html格式split='allure '+'generate '+'./report/result '+'-o '+'./report/html '+'--clean'os.system('cd C:/Users/wangli/PycharmProjects/Test/test/report')os.system(split)print(split)"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py
.....
5 passed in 0.05s
Report successfully generated to .\report\html
allure generate ./report/result -o ./report/html --cleanProcess finished with exit code 0

五、link链接定制详解

@allure.link(‘https://www.baidu.com/’)

六、attachment附件制定

@allure.attachment()

Pytest框架集成Allure定制测试报告详解(一)相关推荐

  1. python编写命令行框架_python的pytest框架之命令行参数详解(上)

    前言 pytest是一款强大的python自动化测试工具,可以胜任各种类型或者级别的软件测试工作.pytest提供了丰富的功能,包括assert重写,第三方插件,以及其他测试工具无法比拟的fixtur ...

  2. pyhton使用pytest框架生成allure测试报告

    一.基础环境 window环境:windows10python环境:python3.7pycharm: pycharm2020java环境:jdk1.8.0_151/jre1.8.0_301(可以不是 ...

  3. python语言的格式框架_django框架模板语言使用方法详解

    本文实例讲述了django框架模板语言使用方法.分享给大家供大家参考,具体如下: 模板功能 作用:生成html界面内容,模版致力于界面如何显示,而不是程序逻辑.模板不仅仅是一个html文件,还包括了页 ...

  4. DL之YoloV3:Yolo V3算法的简介(论文介绍)、各种DL框架代码复现、架构详解、案例应用等配图集合之详细攻略

    DL之YoloV3:Yolo V3算法的简介(论文介绍).各种DL框架代码复现.架构详解.案例应用等配图集合之详细攻略 目录 Yolo V3算法的简介(论文介绍) 0.YoloV3实验结果 1.Yol ...

  5. allure定制测试报告logo

    web自动化-allure定制测试报告logo 找到allure安装目录 更换logo 添加插件 找到allure安装目录 忘记了allure安装目录可以在环境变量里面找 更换logo C:\pyto ...

  6. Django框架学习(一)Django框架安装和项目创建详解

    Django框架学习(一)Django框架安装和项目创建详解 文章目录 Django框架学习(一)Django框架安装和项目创建详解 一.简介 1.1介绍 1.2 URL 1.3.框架原理 二.安装 ...

  7. 【机器学习】集成学习及算法详解

    集成学习及算法详解 前言 一.随机森林算法原理 二.随机森林的优势与特征重要性指标 1.随机森林的优势 2.特征重要性指标 三.提升算法概述 四.堆叠模型简述 五.硬投票和软投票 1.概念介绍 2.硬 ...

  8. Pytest参数选项自由执行测试用例详解(二)

    运行pytest可以指定目录和文件,如果不指定,pytest会搜索当前目录及其子目录中以test_开头或以_test结尾得测试函数.我们把pytest搜索测试文件和测试用例的过程称为测试搜索(test ...

  9. Hadoop框架:DataNode工作机制详解

    本文源码:GitHub·点这里 || GitEE·点这里 一.工作机制 1.基础描述 DataNode上数据块以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是数据块元数据包括长度.校验.时 ...

最新文章

  1. vimrepress
  2. 批量关闭电脑有害端口方法
  3. 做了中台就不会死吗?每年至少40%开发资源是被浪费的!
  4. 计算机专业本科毕业转行会计,大学里就业最难的5个专业,毕业后难找工作,很多同学都转行了!...
  5. Ankhsvn 改名出错
  6. linux 安装mysql 5.7.16
  7. 导致301状态码的可能的原因
  8. 浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)
  9. 数字水印技术的基本概念和现状
  10. 古诗词取名小工具1.0
  11. TARA-汽车安全概念
  12. 解决一下 WebView2 不能用 socket5代理的问题。
  13. 激光雷达障碍物检测与追踪实战——基于欧几里德聚类的激光雷达障碍物检测
  14. 微软 Win10 更新再出 bug
  15. rsync与scp对比
  16. 蓝牙协议栈认证:什么是蓝牙Core Layer的BQB认证要求
  17. Mac:TexStudio 首行缩进
  18. [转]金属加工工艺基础知识
  19. linux编程之emacs
  20. Proj.NET-地球椭球体、大地基准面及地图投影

热门文章

  1. html怎么保存曲奇,自制曲奇饼能保存多久 这些存放方法你懂吗
  2. vs 2015 oracle,VS2015连接oracle11g出现异常
  3. 北京大学计算机复试分数线,2014北京大学考研复试分数线公布
  4. Redis 缓存实战——缓存、数据库一致性问题分析与解决方案
  5. Java面试宝典————基础篇
  6. android 获取monkey日志_安卓app测试之Monkey日志分析
  7. php进程数是指什么,25.查看php 某个服务的进程数
  8. tina中信号带宽_关于通频带,3dB带宽,三阶截点和1dB压缩点,截止频率,频率范围,带宽,特征频率(中心频率),截止频率和增益(db)...
  9. win10 联想键盘快捷键关闭_这些Win10键盘快捷键你必须掌握,系统高手必备技能...
  10. HTML+CSS+JS实现 ❤️高光立体游戏卡片悬停ui特效❤️