IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 如何优雅的展示测试报告-- allure应用 -> 正文阅读

[开发测试]如何优雅的展示测试报告-- allure应用

我们学习了如何编写自动化测试脚本,也能顺利执行并展示结果了,可是我们如何向其他干系人展示测试结果呢??而且尽量优雅美观,不光有数据,还要有图表的那种。来,介绍一个测试报告框架Allure
allure官网:https://docs.qameta.io/
时间充裕且英文好的同学可以直接看官网,任何你想知道的内容都可以在官网上查到,如果时间不充足且英文不太好的同学可以截下来看看我的笔记,入门是没问题的。如果再想进阶,还是得去官网。

allure简介

  • allure是一个轻量级、灵活的,支持多语言的测试报告工具
  • 多平台的,奢华的report框架
  • 可以为dev/qa提供详尽的测试报告,测试步骤及log
  • 有可以为管理层提供高水平的统计报告
  • Java语言开发的,支持pytest、JavaScript、PHP、ruby等
  • 可以集成到Jenkins

allure安装

安装插件allure-pytest

虽然已经成功安装了allure,但是是没有办法单独使用的,需要结合pytest使用,所以还需要下载插件allure-pytest
插件要在python环境下安装,所以使用pip install allure-pytest

allure常用的特性

一、 对测试用例分组

  • 场景:希望在报告中看到测试功能、子功能或场景、测试步骤、包括测试附加信息
  • 解决:添加装饰器@allure.feature、@allure.story、@allure.step、@allure.attach
  • 步骤:
    1.import allure
    2.功能上加@allure.feature,一般是在类上
    3.子功能上加@allure.story,一般是在方法上、
    4.步骤上加@allure.step、
    5.打印具体的文本信息加@allure.attach,需要附加的信息,可以是数可据,文本,图片,视频、网页等
  • 执行
    可以根据feature或者story过滤用例执行。如果对参数不熟悉,可以使用pytest --help|grep allure获取,如下:
    (allure-env) Yujin:allure yujin$ pytest --help|grep allure
      --allure-severities=SEVERITIES_SET
      --allure-epics=EPICS_SET
      --allure-features=FEATURES_SET
      --allure-stories=STORIES_SET
      --allure-ids=IDS_SET  Comma-separated list of IDs.
      --allure-link-pattern=LINK_TYPE:LINK_PATTERN
      --alluredir=DIR       Generate Allure report in the specified directory (may
      --clean-alluredir     Clean alluredir folder if it exists
      --allure-no-capture   Do not attach pytest captured logging/stdout/stderr to
    
    用法如下:
  1. 根据feature过滤:
    pytest test_allure.py --allure-features="登录模块" -vs 
    
  2. 根据story过滤:
    pytest test_allure.py --allure-stories="登录失败"  -vs
    
  3. 如果希望执行多个story或者feature,多个story名或feature名中间加“,”即可
    pytest test_allure.py --allure-stories="登录失败","登出失败"  -vs
    
    但是注意,–allure-features和–allure-stories同时使用时,如果–allure-features中的用例包括了–allure-stories的用例,则只执行–allure-features的用例;如果不包含,则同时执行–allure-features和–allure-stories的用例
    是的,通过pytest -m参数也可以实现分组运行测试用例的目的,但是为例在测试用例中展示,结合allure特性更直观

二、allure特性 - testcase
场景:自动话测试用例执行失败了,希望关联手工测试的地址,方便测试人员定位bug
解决:添加@allure.testcase(TEST_CASE_LINK,“地址描述”)

@allure.feature("搜索模块")
class TestSearch:
    @allure.step("步骤1,打开应用")
    def start_app(self):
        return True

    @allure.step("步骤2,输入搜索关键字")
    def send_key(self):
        return True

    @allure.step("步骤3,展示搜索结果")
    def show_result(self):
        return True

    @allure.story("搜索成功")
    def test_search_succ(self):
        self.start_app()
        self.send_key()
        self.show_result()
        assert True
        

    @allure.testcase("www.baidu.com", "测试用例连接地址")
    @allure.story("搜索失败")
    def test_search_fail(self):
        self.start_app()
        self.send_key()
        self.show_result()
        assert False

测试报告中展示测试链接

在这里插入图片描述
三、按重要级别进行一定范围的测试用例执行
场景:通常测试有冒烟测试、验证上线测试等场景,安重要性级别来分别执行,比如上线前要把猪流程和重要模块都跑一遍
解决:通过在方法、函数和类上添加allure.severity来附加标记

  • Trivial 不重要,轻微缺陷(如必输项无提示,或者提示不规范)
  • Minor 不太重要,次要缺陷(如界面错误与UI需求不符)
  • Normal 正常,普通缺陷(数值计算错误等)
  • Critical 严重(如功能点缺失)
  • Blocaker 阻塞(如客户端程序无响应,无法执行下一步操作等)
    执行:pytest 文件名 --allure-severities=normal -vs

问题:如果类上标注是normal级别,类里的方法标注是critical级别,那执行normal级别的用例时会执行那些用例呢??
答案:会执行normal类里未标注级别或者标注级别是normal的用例。
四、给测试用例重命名
场景:测试用例的名字默认展示的是测试用例的方法名,可以给测试用例起一个名字,方便其他同学阅读测试报告。
解决:添加@allure.title标记
类似于实现@pytest.mark.parametrize的ids功能
五、前端自动化测试截图
场景:前端自动化测试经常需要附加图片、视频、html等,在适当的地方适当的时机截图并保存添加到测试报告中。
解决:@allure.attach添加不同类型的附件,可以补充测试,步骤或测试结果
步骤:上代码:

class TestAttach:
    def test_attach_text(self):
        allure.attach("这是一段文本",attachment_type=allure.attachment_type.TEXT)

    def test_attach_html(self):
        allure.attach("这是body",attachment_type=allure.attachment_type.HTML)

    def test_attach_png(self):
        allure.attach.file("./images/001.png",name="这是测试结果截图1",attachment_type=allure.attachment_type.PNG)

    def test_attach_video(self):
        allure.attach.file("./images/002.mp4",name="这是测试结果截图",attachment_type=allure.attachment_type.MP4)

这里使用的文件都是写死的文件,会在web/app的UI自动化里补充如何截图及重命名。

运行

结合allure的特性运行测试用例并收集测试结果
–alluredir参数用于执行存放测试结果路径,测试结果文件为json格式或者txt格式

pytest test_allure.py --alluredir=./result

查看报告

收集到测试结果后查看测试报告的方式有两种:

  • 方式一:直接看报告
    allure serve ./result
    
    测试完成后查看实际报告,在线看报告,会直接打开默认浏览器并展示当前报告
  • 方式二:从结果生成报告
    这是一个启动tomcat的服务,需要两个步骤:生成报告、打开报告
    • 生成报告:
    allure generate ./result -o ./report --clean
    
    allure generate默认将测试报告存在allure-report目录下,如果希望存放在其他的目录下,添加-o参数
    注意--clean参数是覆盖路径,如果不添加此参数会在原有报告上叠加
    • 打开报告
      会在指定host和port上打开测试报告
    allure open -h 127.0.0.1 -p 8883 ./report
    

测试报告分析

在这里插入图片描述
在这里插入图片描述

代码示例

feature 、story、step通过在方法上添加装饰器的形式定义,这种方法实现了对测试用例分层,推荐使用这种方法。

@allure.feature("搜索模块")
class TestSearch:
    @allure.step("步骤1,打开应用")
    def start_app(self):
        return True

    @allure.step("步骤2,输入搜索关键字")
    def send_key(self):
        return True

    @allure.step("步骤3,展示搜索结果")
    def show_result(self):
        return True

    def test_search(self):
        self.start_app()
        self.send_key()
        self.show_result()

step还可以在测试用例中定义,如代码:

@allure.feature("登出模块")
class TestLogout:
    @allure.story("登出成功")
    def test_logout_success(self):
        with allure.step("步骤1,进入【我的】页面"):
            print("进入我的页面")
        with allure.step("步骤2、点击退出按钮"):
            print("点击退出按钮")
        with allure.step("步骤3、退出成功"):
            print("退出成功")
        print("这是登出:测试用例,登出成功")

    @allure.story("登出失败")
    def test_logout_fail(self):
        with allure.step("步骤1,进入【我的】页面"):
            print("进入我的页面")
        with allure.step("步骤2、点击退出按钮"):
            print("点击退出按钮")
        with allure.step("步骤3、退出失败"):
            print("退出失败")
        print("这是登出:测试用例,登出失败")
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 12:24:47  更:2021-08-26 12:25:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 22:27:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码