前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python测试框架pytest(25)测试报告Allure - 简介、安装、示例、报告结构

Python测试框架pytest(25)测试报告Allure - 简介、安装、示例、报告结构

作者头像
wangmcn
发布2022-07-26 14:38:32
5890
发布2022-07-26 14:38:32
举报
文章被收录于专栏:AllTests软件测试

Python测试框架pytest(25)

测试报告Allure

简介、安装、示例、报告结构

目录

  • 1、简介
  • 2、安装
  • 3、示例
  • 4、报告结构

1、简介

1、Allure 框架是一个灵活的轻量级多语言测试报告工具,它不仅以简洁的 web 报告形式展示了测试内容,而且允许参与开发过程的每个人从日常测试执行中提取最大限度的有用信息。

2、从 dev/qa 的角度来看,Allure 报告缩短了常见缺陷的生命周期:测试失败可以分为 bug 和中断的测试,还可以配置日志、步骤、固定装置、附件、计时、历史记录以及与 TMS 和 bug 跟踪系统的集成,因此负责任的开发人员和测试人员将掌握所有信息。

3、从管理者的角度来看,Allure 提供了一个清晰的"大图",说明了哪些特性已经被覆盖,缺陷聚集在哪里,执行时间表是什么样子,以及许多其他方便的事情。Allure 的模块化和可扩展性保证您始终能够微调某些东西,以使 Allure 更适合您。

2、安装

一、命令行安装:

在命令行中运行以下命令进行安装:

代码语言:javascript
复制
pip install allure-pytest

或者(使用国内的豆瓣源,数据会定期同步国外官网,速度快。)

代码语言:javascript
复制
pip install allure-pytest -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

二、配置环境变量(可选):

Allure 是一个命令行工具,可以下载后进行环境变量配置。

下载地址:

https://github.com/allure-framework/allure2/releases

1、将下载的文件进行解压。

2、配置环境变量

Windows:

代码语言:javascript
复制
(1)复制路径如:D:\allure-2.13.6\bin
(2)环境变量-》path新增环境编辑-》添加D:\allure-2.13.6\bin -》保存

Mac:

代码语言:javascript
复制
(1)复制路径如:/Users/wangmeng/Documents/allure-2.13.6
(2)命令行输入sudo vi ~/.bash_profile
(3)添加内容,保存退出:
export ALLURE_HOME=/Users/wangmeng/Documents/allure-2.13.6
export PATH=$PATH:$ALLURE_HOME/bin
(4)命令行输入(使环境变量生效)source ~/.bash_profile

3、示例

项目目录结构:

根目录下conftest.py文件

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""

import pytest

@pytest.fixture(scope="session")
def login():
    print("===登录,返回:name,token===")
    name = "AllTests"
    token = "123456qwe"
    yield name, token
    print("===退出===")

根目录下test_case.py文件

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""

import pytest
from time import sleep

@pytest.mark.parametrize("n", list(range(5)))
def test_get_info(login, n):
    sleep(1)
    name, token = login
    print("===获取用户个人信息===", n)
    print(f"用户名:{name}, token:{token}")

test_baidu包下的conftest.py文件

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""

import pytest

@pytest.fixture(scope="module")
def open_baidu(login):
    name, token = login
    print(f"===用户 {name} 打开baidu===")

test_baidu包下的test_case1.py文件

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""

import pytest
from time import sleep

@pytest.mark.parametrize("n", list(range(5)))
def test_case1_1(open_baidu, n):
    sleep(1)
    print("===baidu 执行测试用例test_case1_1===", n)

@pytest.mark.parametrize("n", list(range(5)))
def test_case1_2(open_baidu, n):
    sleep(1)
    print("===baidu 执行测试用例test_case1_2===", n)

test_weibo文件夹下的test_case2.py文件

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""

import pytest
from time import sleep

@pytest.mark.parametrize("n", list(range(5)))
def test_case2_no_fixture(login, n):
    sleep(1)
    print("===weibo 没有__init__测试用例,执行测试用例test_case2_no_fixture===", login)

test_douyin包下的conftest.py文件

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""

import pytest

@pytest.fixture(scope="function")
def open_douyin(login):
    name, token = login
    print(f"===用户 {name} 打开douyin===")

test_douyin包下的test_case3.py文件

脚本代码:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
微信公众号:AllTests软件测试
"""

import pytest
from time import sleep

@pytest.mark.parametrize("n", list(range(5)))
class TestDouyin:
    def test_case3_1(self, open_douyin, n):
        sleep(1)
        print("===douyin 执行测试用例test_case3_1===", n)

    def test_case3_2(self, open_douyin, n):
        sleep(1)
        print("===douyin 执行测试用例test_case3_2===", n)

执行命令:

添加参数 --alluredir 选项,并提供指向测试结果的文件夹路径

如:

代码语言:javascript
复制
pytest -n auto --alluredir=allure

运行结果:

在指定的allure文件夹下,生成一大堆.json和.txt文件

要想查看测试结果报告,需要再执行allure命令来生成测试报告。

执行命令:

代码语言:javascript
复制
allure serve allure

之后自动打开默认浏览器显示测试报告。

4、报告结构

  • Overview:总览。
  • Categories:类别,默认是分了 failed 和 error,凡是执行结果是其中一个的都会被归到类里面,可以通过这里快捷查看哪些用例是 failed 和 error 的。
  • Suites:测试套件,就是所有用例的层级关系,可以根据 package、module、类、方法来查找用例。
  • Graphs:测试结果图形化,包括用例执行结果的分布图,优先级,耗时等。
  • Timeline:可以看到测试用例精确的测试时序(执行顺序),包括执行时间。
  • Behaviors:行为驱动,根据 epic、feature、story 来分组测试用例。
  • Packages:按照 package、module 来分组测试用例。

报告可进行不同语言的切换(默认为英文)

查看Suites(函数级别的测试用例)

包名-模块名-测试用例

查看Suites(类级别的测试用例)

包名-模块名-类名-测试用例

查看测试用例详情

Parameters:如果用了 @pytest.mark.parametrize,可以看到传了什么参数和对应的值。

Set up:调用 fixture 的前置操作。

Tear down:调用 fixture 的后置操作。

stdout:输出的信息。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AllTests软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档