【预习笔记04】allure测试报告

1、allure介绍

官网:https://allure.qatools.ru/

  • allure是一个轻量级的测试报告工具,能够提供详尽的测试报告、测试步骤和测试日志等;
  • 支持多平台测试报告框架;
  • java语言开发,支持pytest、javascript、PHP、ruby等多种语言;
  • 可以集成到jenkins;

2、allure测试报告模板

https://demo.qameta.io/allure/

3、allure安装

1)linux环境

sudo apt-add-repository ppa:qameta/allure sudo apt-get update sudo apt-get install allure

2)windows

下载地址:

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

选择对应的版本,然后选择zip包进行下载;

安装:

将zip包解压,并配置环境变量即可使用;

在path路径添加:D:\Program Files\allure-2.13.5\bin

验证:

在cmd窗口输入命令:allure --version
image

4、allure-pytest安装

使用pip在线安装,执行命令:

pip install allure-pytest

验证:

在cmd窗口输入命令:

pip show allure-pytest

结果如下:
image

5、执行

1)生成报告

#第一次生成报告
pytest 脚本名称 --alluredir="报告生成路径"
#覆盖原报告文件
pytest 脚本名称 --clean-alluredir --alluredir="报告生成路径"

2)查看报告

allure serve "报告路径"

3)生成html报告

#第一次生成html报告
allure generate "报告路径" -o "html报告路径"
#覆盖生成html报告
allure generate "报告路径" -o "html报告路径" -clean

6、allure常用装饰符

allure常用于生成报告,在报告中展示测试功能、测试步骤、附加信息等;

allure常用修饰符:

1)feature

定义测试功能名称,一般在类之前定义

@allure.feature("功能名称)

2)story

定义子功能名称,一般在测试用例之前定义

@allure.story("子功能名称")

3)step

定义测试步骤

with allure.step("步骤名称")

4)attach

为测试用例添加截图、附件等信息,常见的文件类别有4种

  • allure.attachement_type.TEXT
  • allure.attachement_type.HTML
  • allure.attachement_type.JPG
  • allure.attachement_type.MP4

添附件为文本内容

allure.attach("文件内容","自定义文件名称",attachment_type="文件类别")

附件为图片或视频文件

allure.attach.file("文件地址","自定义文件名称",attachment_type="文件类别")

5)testcase

在测试用例中添加链接,一般在测试用例之前添加


TEST_CASE_LINK="https://www.baidu.com"

@allure.testcase("TEST_CASE_LINK","链接名称(可自定义)")

6)severity

定义测试用例或测试模块的级别,总共包含5大级别,分别为:Trival(不重要的)、Minor(不太重要)、Normal(正常的)、Critical(严重的)、Blocker(致命的)

在测试用例或测试类之前定义,当类定义了级别,类中的测试用例默认和类的级别一致;

@allure.severity(allure.severity_level.NORMAL)

执行的时候,通过–allure-severities="级别"执行指定级别的用例;

7)title

定义测试用例名称,在用例之前定义

@allure.title("用例名称")

7、命令参数

  • –alure-features=“功能名称”:执行指定功能的用例
  • –allure-severities=“指定级别”:执行指定级别的用例
  • –alluredir=“报告路径”:指定报告生成路径,必须使用双引号;
  • allure serve “报告目录”:以html格式查看报告
  • allure generate “报告目录”:生成html报告到allure-report目录
  • allure generate “报告目录” -o “html报告目录”:生成html报告到指定目录
  • –clean-alluredir:清除之前的报告目录

8、样例

1)定义测试用例名称和测试用例步骤

脚本:

import pytest
import allure
@allure.feature("登录功能")
class TestLogin():
    @allure.story("登录成功-输入正确的用户名和密码")
    def test_login_success(self):
        with allure.step("步骤1:打开app"):
            print("打开app")
        with allure.step("步骤2:打开登录页面"):
            print("打开登录页面")
        with allure.step("步骤3:输入正确用户名和密码"):
            print("输入正确用户名和密码")
        with allure.step("步骤4:点击登录按钮"):
            print("点击登录按钮")
        print("登录:登录成功")
        pass

    @allure.story("登录失败-用户名为空")
    def test_login_fail(self):
        print("登录:登录失败,用户名为空")
        pass

    @allure.story("登录失败-密码为空")
    def test_login_fail2(self):
        print("登录:登录失败,密码为空")
        pass

    @allure.story("登录失败-用户名/密码不正确")
    def test_login_fail3(self):
        print("登录:登录失败,用户名/密码不正确!")
        pass

@allure.feature("搜索功能")
class TestSearch():
    TEST_CASE_LINK = "https://www.baidu.com"

    @allure.testcase("TEST_CASE_LINK", "活动页面链接地址")
    @allure.story("搜索成功-搜索内容为任意字符")
    def test_search_success(self):
        print("搜索:搜索成功,输入任意字符~~")
        pass

    @allure.story("搜索失败-搜索内容为空")
    def test_search_fail(self):
        print("搜索:搜索失败,搜索内容为空~~")
        pass

执行命令:

#生成报告
pytest test_allureTest01.py --alluredir="../result/"
#查看报告
allure serve"../result/"

执行结果:


2) 定义测试用例级别

脚本:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import pytest
import allure
@allure.severity(allure.severity_level.NORMAL)
class TestSeverity01:
    @allure.severity(allure.severity_level.NORMAL)
    def test_demo01(self):
        print("severity normal")

    @allure.severity(allure.severity_level.MINOR)
    def test_demo02(self):
        print("severity minor")

    @allure.severity(allure.severity_level.BLOCKER)
    def test_demo03(self):
        print("severity blocker")

    def test_demo04(self):
        print("severity normal")

@allure.severity(allure.severity_level.CRITICAL)
class TestSeverity02:
    @allure.severity(allure.severity_level.NORMAL)
    def test_demo01(self):
        print("TestSeverity02:severity normal")

    @allure.severity(allure.severity_level.TRIVIAL)
    def test_demo02(self):
        print("TestSeverity02:severity Trival")

    @allure.severity(allure.severity_level.CRITICAL)
    def test_demo03(self):
        print("TestSeverity02:severity critical")

    def test_demo04(self):
        print("TestSeverity02:severity critical")

执行命令:

pytest test_allureTest02.py --allure-severities="critical" -vs

执行结果:

3)测试用例添加附件信息
脚本:

import pytest
import allure

@allure.title("附件信息为text文本")
def test_attach_text():
    allure.attach("文件内容:这是一个text文本","text文件",attachment_type=allure.attachment_type.TEXT)

@allure.title("附件信息为html文件")
def test_attach_html():
    allure.attach("<body>html文本内容</body>","html文件",attachment_type=allure.attachment_type.HTML)

@allure.title("附件信息为jpg图片")
def test_attach_photo():
    allure.attach.file("../attach/test.jpg","jpg图片",attachment_type=allure.attachment_type.JPG)

执行命令:

#生成报告,清除之前的报告内容
pytest test_allureAttach.py --clean-alluredir --alluredir="../result"
#生成报告
allure generate "../result/" -o "../report/"

执行结果:


5 个赞