Python测试框架--Allure

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

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

一、Allure初识

1. 什么是 Allure

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

2. Allure环境搭建

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

python 复制代码
# 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的几个特性:

python 复制代码
@allure.feature # 用于定义被测试的功能,被测产品的需求点

@allure.story # 用于定义被测功能的用户场景,即子功能点

with allure.step # 用于将一个测试用例,分成几个步骤在报告中输出

allure.attach # 用于向测试报告中输入一些附加的信息,通常是一些测试数据信息

@pytest.allure.step # 用于将一些通用的函数作为测试步骤输出到报告,调用此函数的地方会向报告中输出步骤

2. pytest集成allure

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

python 复制代码
#!/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生成测试报告

python 复制代码
# 执行全部的测试用例

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生成测试报告

python 复制代码
# 生成测试报告

allure generate ./Alluer/result/ -o ./Allure/report/ --clean


# 打开测试报告

allure open -h 127.0.0.1 -p 8083 ./Allure/report/

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

python 复制代码
Overview(概览)


Categories(类别)


Behavior(功能)


Suites(测试套件)


Graphs(图标)


Timeline(时间刻度)


Packages(测试包)

四、Allure与Jenkins结合

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

4.1 Jenkins配置Allure

安装Allure插件

4.2 创建job

配置路径必须配置一致

python 复制代码
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 执行工程

立即构建工程即可。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关推荐
远望清一色12 分钟前
基于MATLAB边缘检测博文
开发语言·算法·matlab
封步宇AIGC20 分钟前
量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据
人工智能·python·机器学习·数据挖掘
何曾参静谧20 分钟前
「Py」Python基础篇 之 Python都可以做哪些自动化?
开发语言·python·自动化
Prejudices24 分钟前
C++如何调用Python脚本
开发语言·c++·python
测试小小怪下士35 分钟前
单元测试、集成测试、系统测试、验收测试、压力测试、性能测试、安全性测试、兼容性测试、回归测试(超详细的分类介绍及教学)
功能测试·单元测试·测试用例·集成测试·压力测试·模块测试·安全性测试
我狠狠地刷刷刷刷刷37 分钟前
中文分词模拟器
开发语言·python·算法
wyh要好好学习40 分钟前
C# WPF 记录DataGrid的表头顺序,下次打开界面时应用到表格中
开发语言·c#·wpf
AitTech41 分钟前
C#实现:电脑系统信息的全面获取与监控
开发语言·c#
qing_04060343 分钟前
C++——多态
开发语言·c++·多态
孙同学_43 分钟前
【C++】—掌握STL vector 类:“Vector简介:动态数组的高效应用”
开发语言·c++