Python测试框架--Allure

严格意义上讲 Allure 不算是测试框架,但是它是生成漂亮测试报告的开源工具,搭配 Pytest 测试框架食用更搭。

  也就是说 Allure 是在 Pytest 执行完生成的测试数据的基础上,对测试数据进行处理统计,生成格式统一、美观的测试报告。

一、Allure初识

1. 什么是 Allure

  Allure 是由Qameta Software团队开源的一款旨在于解决让每个人能更容易生成并更简洁阅读的测试报告框架。它支持大多数的测试框架,如:Pytest、TestNG等,简单易用便于集成。

2. Allure环境搭建

  工欲善其事必先利其器,Allure 框架基于其他的测试框架使用,例如:Pytest。

# windows env
source env/Scripts/activate

# 安装 pytest 和 pytest-allure-adaptor
pip3 install pytest
# Allure Pytest Adaptor是Pytest的一个插件(比较旧的一个插件)
# allure-pytest 比较新一点,建议使用
pip3 install pytest-allure-adaptor
pip3 instal allure-pytest

# 安装Allure工具,主要是讲pytest的测试数据转换成HTML数据
# linux环境安装
# 现将allure源添加到linux的源里
sudo apt-add-repository ppa:qameta/allure
# 更新本地源
sudo apt-get update
# 安装allure,[allure无法使用的解决方案](https://askubuntu.com/questions/1168821/allure-report-installed-but-not-findable)
sudo apt-get install allure
# 上面的方法不行的话,用下面的方法
curl -o allure-2.6.0.tgz -Ls https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/2.6.0/allure-2.6.0.tgz   
sudo tar -zxvf allure-2.6.0.tgz -C /opt/   
sudo ln -s /opt/allure-2.6.0/bin/allure /usr/bin/allure  
allure --version 


# Windows 下安装就麻烦点,可以使用 Scoop 工具(Chocolatey工具不知道为什么安装不了),不管了官方推荐使用 Scoop 安装就使用 Scoop 安装得了
# 先安装[Scoop](https://juejin.cn/post/6844904017823285262)
# 检查sccop是否安装成功
scoop --version

# 安装 allure
scoop install allure
# 查看allure是否安装成功
allure --version

复制代码

二、Pytest集成Allure

   Allure要生效需要在测试文件和测试通配文件(conftest.py)中配置 allure。

1. allure的特性

Aullre的几个特性:

@allure.feature # 用于定义被测试的功能,被测产品的需求点
@allure.story # 用于定义被测功能的用户场景,即子功能点
with allure.step # 用于将一个测试用例,分成几个步骤在报告中输出
allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息
@pytest.allure.step # 用于将一些通用的函数作为测试步骤输出到报告,调用此函数的地方会向报告中输出步骤
复制代码

2. pytest集成allure

测试文件示例,生成测试数据,进一步生成 allure 测试报告

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
@File    :   test_allure_shopping.py
@Time    :   2019/12/1017:34
@Author  :   Crisimple
@Github :    https://crisimple.github.io/
@Contact :   Crisimple@foxmail.com
@License :   (C)Copyright 2017-2019, Micro-Circle
@Desc    :   None
"""

import pytest
import allure


# allure.feature 定义功能
@allure.feature("报告购物车")
class TestAllure(object):
    # 定义用户场景
    @allure.story("加入购物车")
    def test_add_goods_cart(self):
        # 调用步骤函数
        login("crisimple", "123456")
        
        # 将测试用例分成几个步骤,将测试步骤打印到测试报告中,步骤二
        with allure.step("浏览商品"):
            # allure.attach--打印一些附加信息
            allure.attach("商品1", "C")
            allure.attach("商品2", "C")
            
        # 步骤三
        with allure.step("加入商品"):
            allure.attach("商品1", 2)
            allure.attach("商品2", 3)
            
        # 步骤四
        with allure.step("校验商品"):
            allure.attach("商品1加入成功", "共2个")
            allure.attach("商品2加入失败", "共0个")
            
    @allure.story("继续购物")
    def test_continue_shopping_cart(self):
        login("crisimple", "123456")
        allure.attach("商品3", 4)
        print("继续购物成功")
        
    @allure.story("减少商品失败")
    def test_edit_shopping_cart(self):
        login("crisimple", "123")
        assert 0
        
    @pytest.mark.skip(reason="删除购物车不执行")
    @allure.story("删除购物车")
    def test_delete_shopping_cart(self):
        login("crisimple", "123")
        print()
        
    
# 将函数作为一个步骤,调用此函数时,报告中输出一个步骤,步骤名称通常时函数名,这样的函数通常称为步骤函数
@allure.step("用户登录")
def login(user, passwd):
    if user == "crisimple" and passwd == "123456":
        print(user, passwd)
        print("登录成功")
    else:
        print(user, passwd)
        print("登录失败,请重新尝试")

复制代码

三、Allure生成测试报告

1. pytest生成测试报告

# 执行全部的测试用例
pytest ./Allure/test_allure_shoping.py --alluredir ./Allure/result/

# 执行指定features或者stories执行一部分测试用例,比如执行‘报告购物车’下的‘加入购物车’子功能的测试用例
pytest ./Allure/test_allure_shopping.py --allure_features="报告购物车" --allure_stories="加入购物车" ../Allure/part_

2. Allure生成测试报告

# 生成测试报告
allure generate ./Alluer/result/ -o ./Allure/report/ --clean

# 打开测试报告
allure open -h 127.0.0.1 -p 8083 ./Allure/report/
复

打开测试报告,牛皮的是可以切换中文版本 

 

Overview(概览)

Categories(类别)

Behavior(功能)

Suites(测试套件)

Graphs(图标)

Timeline(时间刻度)

Packages(测试包)
复制代码

四、Allure与Jenkins结合

  对于成规模的测试团队会把自动化测试部署集成到Jenkins中,构建成自动化部署。

4.1 Jenkins配置Allure

安装Allure插件

 

4.2 创建job

配置路径必须配置一致


source env/bin/activate
echo "**************Welcome to env**************"

echo "**************pytest create test data**************"
pytest /完整路径/Allure/test_allure_shopping.py --alluredir ${WORKSPACE}/allure-results/
echo "**************report has generated done**************"

 

4.3 执行工程

立即构建工程即可。

学习安排上

作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件自动化测试的学习资源,希望能给你前进的路上带来帮助。【保证100%免费】

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码小怡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值