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 执行工程

立即构建工程即可。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/726444.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java中OOP的概念及示例

Java中OOP的概念及示例 在本指南中,您将学习Java中的OOP概念。面向对象编程系统(OOP)是一种基于“对象”的编程概念。面向对象编程的主要目的是提高程序的可读性、灵活性和可维护性。 面向对象编程将数据及其行为集中在一个称为对象的实体中…

反射机制详解

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏:Java从入门到精通 ✨特色专栏&#xff…

XSS+CSRF组合拳

目录 简介 如何进行实战 进入后台创建一个新用户进行接口分析 构造注入代码 寻找XSS漏洞并注入 小结 简介 (案例中将使用cms靶场来进行演示) 在实战中CSRF利用条件十分苛刻,因为我们需要让受害者点击我们的恶意请求不是一件容易的事情…

企业为什么要进行数据资产管理工作:价值与案例剖析

在数字化浪潮席卷全球的今天,数据已经成为企业不可或缺的重要资产。数据资产管理,作为确保数据资产价值得以最大化利用的关键环节,正逐渐成为企业战略规划中的核心议题。本文将深入剖析企业进行数据资产管理工作的必要性,并结合实…

[YOLOv10:注意力机制的轻量化创新,MLCA在目标检测中的卓越表现]

本文改进:一种轻量级的Mixed Local Channel Attention (MLCA)模块,该模块考虑通道信息和空间信息,并结合局部信息和全局信息以提高网络的表达效果。 1.YOLOv10介绍 论文:[https://arxiv.org/pdf/2405.14458] 代码: https://gitcode.com/THU-MIG/yolov10?utm_source=csdn…

Visual Studio2022+cuda环境配置及代码调试

环境配置 下载并安装CUDA Toolkit 打开Visual Studio,新建项目。如下图所示,已经包含CUDA编程选项 代码调试 1、打开cu文件的属性页,按下图所示,将Host中的Generate Host Debug Information设置为“是" 2、不可勾选Nsight…

塑造化工行业新格局:探索无锡哲讯智能化定制ERP系统的关键特点

在当今科技迅猛发展的时代背景下,化工行业面临着前所未有的机遇与挑战。传统的管理模式已经难以满足企业日益增长的需求,而企业资源规划(ERP)系统的引入,为化工行业带来了全新的变革。无锡哲讯,作为行业领先…

如何防止三重勒索勒索软件?

您的数据被加密后,定期备份数据是一个很好的策略,可以避免支付赎金,但这并不意味着攻击者仍然无法占得上风。一些攻击者现在正转向三重勒索勒索软件攻击,扬言不仅要劫持您的数据,还要将这些信息泄露给公众。 这类勒索…

ffmpeg的安装教程

1.官网下载ffmpeg 进入Download FFmpeg网址,点击下载windows版ffmpeg(点击左下第一个绿色的行) 在release builds第一个绿框里面选择一个版本下载。 2.配置 下载完成后解压该压缩包单击进入ffmpeg\bin,会出现如下界面&#xff1…

Linux驱动开发(二)--字符设备驱动开发提升 LED驱动开发实验

1、地址映射 在编写驱动之前,需要知道MMU,也就是内存管理单元,在老版本的 Linux 中要求处理器必须有 MMU,但是现在Linux 内核已经支持无 MMU 的处理器了。 MMU的功能如下: 完成虚拟空间到物理空间的映射 内存保护&…

瑞尼克RNK聚四氟乙烯注射器刻度清晰纯净

四氟注射器用于抽取或者注入气体或者液体,四氟注射器由前端带有小孔的针筒以及与之匹配的活塞芯杆组成,用来将少量的液体或其注入到其它方法无法接近的区域或者从那些地方抽出,在芯杆拔出的时候液体或者气体从针筒前端小孔吸入,在…

0.5 逐行扫描(Progressive scan)简介

0.5 逐行扫描简介 逐行扫描(Progressive scan)是一种将图像显示在扫描式的显示设备上的方法。 逐行扫描常被用在计算机显示器上。 逐行扫描按照从左到右,从上到下的顺序扫描图像的所有行。如下图: 下图粗略的将逐行扫描与隔行…

思科PAP命令笔记

命令格式 含义 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.csdn.net/qq_44862120/article/details/115675197 ——————…

ssh远程连接vps

打开ssh服务 sudo vi /etc/ssh/sshd_config查看是否好了 systemctl status sshd生成ssh私钥 生成在C:\Users\baozhongqi\.ssh 然后可以用自己密码登录或者用私钥登录 密码登录 ssh私钥登录 我使用的是tabby tabby下载 setup是Windows使用的版本 如果这样子不能ssh链接只能…

【管理咨询宝藏131】麦肯锡波士顿贝恩经典战略咨询报告套装

本报告首发于公号“管理咨询宝藏”,如需阅读完整版报告内容,请查阅公号“管理咨询宝藏”。 【管理咨询宝藏131】麦肯锡波士顿贝恩经典战略咨询报告套装 【格式】PDF版本 【关键词】麦肯锡、波士顿咨询、贝恩咨询、战略咨询、战略落地、战略洞察 【强烈…

【深度学习】 探讨Stable Diffusion模型的训练及其偏向性

探讨Stable Diffusion模型的训练及其偏向性 近年来,生成式模型在图像生成领域取得了显著进展,特别是Stable Diffusion模型。作为一种基于扩散过程的生成模型,Stable Diffusion模型展现了生成高质量图像的巨大潜力。然而,与所有机…

队列(数据结构篇)

数据结构之队列 队列(queue) 概念: 队列也是一种线性表,使用队列时插入在一端进行而删除则在另一端进行,队列的基本操作是入队,它是在表的末端(也叫做队尾)插入一个元素,出队,它是删除在**表的开头(**队…

OpenCV练习(2)图像校正

1、傅里叶变换 霍夫变换 直线 角度 旋转2、边缘检测 霍夫变换 直线角度 旋转3、四点透视 角度 旋转4、检测矩形轮廓 角度 旋转 1.目的 实现类似全能扫面王的图像校正功能 2. 基于轮廓提取和透射变换 基于轮廓提取和透射变换的矫正算法更适用于车牌、身份证、人民…

局域网共享文件夹怎么加密?方法很简单

局域网共享文件夹是企业内部信息、数据传递沟通的重要工具,而为了保护共享文件夹数据安全,我们需要使用专业的加密软件加密保护局域网共享文件夹。下面我们就来了解一下局域网共享文件夹加密方法。 局域网共享文件夹加密 在加密共享文件夹时&#xff0c…