Python测试框架--Allure

news2024/12/26 23:36:01

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

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

一、Allure初识

1. 什么是 Allure

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

2. Allure环境搭建

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

  1. # windows env

  2. source env/Scripts/activate

  3. # 安装 pytest 和 pytest-allure-adaptor

  4. pip3 install pytest

  5. # Allure Pytest Adaptor是Pytest的一个插件(比较旧的一个插件)

  6. # allure-pytest 比较新一点,建议使用

  7. pip3 install pytest-allure-adaptor

  8. pip3 instal allure-pytest

  9. # 安装Allure工具,主要是讲pytest的测试数据转换成HTML数据

  10. # linux环境安装

  11. # 现将allure源添加到linux的源里

  12. sudo apt-add-repository ppa:qameta/allure

  13. # 更新本地源

  14. sudo apt-get update

  15. # 安装allure,[allure无法使用的解决方案](https://askubuntu.com/questions/1168821/allure-report-installed-but-not-findable)

  16. sudo apt-get install allure

  17. # 上面的方法不行的话,用下面的方法

  18. 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

  19. sudo tar -zxvf allure-2.6.0.tgz -C /opt/

  20. sudo ln -s /opt/allure-2.6.0/bin/allure /usr/bin/allure

  21. allure --version

  22. # Windows 下安装就麻烦点,可以使用 Scoop 工具(Chocolatey工具不知道为什么安装不了),不管了官方推荐使用 Scoop 安装就使用 Scoop 安装得了

  23. # 先安装[Scoop](https://juejin.cn/post/6844904017823285262)

  24. # 检查sccop是否安装成功

  25. scoop --version

  26. # 安装 allure

  27. scoop install allure

  28. # 查看allure是否安装成功

  29. allure --version

二、Pytest集成Allure

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

1. allure的特性

Aullre的几个特性:

  1. @allure.feature # 用于定义被测试的功能,被测产品的需求点

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

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

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

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

2. pytest集成allure

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

  1. #!/usr/bin/env python

  2. # -*- encoding: utf-8 -*-

  3. """

  4. @File : test_allure_shopping.py

  5. @Time : 2019/12/1017:34

  6. @Author : Crisimple

  7. @Github : https://crisimple.github.io/

  8. @Contact : Crisimple@foxmail.com

  9. @License : (C)Copyright 2017-2019, Micro-Circle

  10. @Desc : None

  11. """

  12. import pytest

  13. import allure

  14. # allure.feature 定义功能

  15. @allure.feature("报告购物车")

  16. class TestAllure(object):

  17. # 定义用户场景

  18. @allure.story("加入购物车")

  19. def test_add_goods_cart(self):

  20. # 调用步骤函数

  21. login("crisimple", "123456")

  22. # 将测试用例分成几个步骤,将测试步骤打印到测试报告中,步骤二

  23. with allure.step("浏览商品"):

  24. # allure.attach--打印一些附加信息

  25. allure.attach("商品1", "C")

  26. allure.attach("商品2", "C")

  27. # 步骤三

  28. with allure.step("加入商品"):

  29. allure.attach("商品1", 2)

  30. allure.attach("商品2", 3)

  31. # 步骤四

  32. with allure.step("校验商品"):

  33. allure.attach("商品1加入成功", "共2个")

  34. allure.attach("商品2加入失败", "共0个")

  35. @allure.story("继续购物")

  36. def test_continue_shopping_cart(self):

  37. login("crisimple", "123456")

  38. allure.attach("商品3", 4)

  39. print("继续购物成功")

  40. @allure.story("减少商品失败")

  41. def test_edit_shopping_cart(self):

  42. login("crisimple", "123")

  43. assert 0

  44. @pytest.mark.skip(reason="删除购物车不执行")

  45. @allure.story("删除购物车")

  46. def test_delete_shopping_cart(self):

  47. login("crisimple", "123")

  48. print()

  49. # 将函数作为一个步骤,调用此函数时,报告中输出一个步骤,步骤名称通常时函数名,这样的函数通常称为步骤函数

  50. @allure.step("用户登录")

  51. def login(user, passwd):

  52. if user == "crisimple" and passwd == "123456":

  53. print(user, passwd)

  54. print("登录成功")

  55. else:

  56. print(user, passwd)

  57. print("登录失败,请重新尝试")

三、Allure生成测试报告

1. pytest生成测试报告
  1. # 执行全部的测试用例

  2. pytest ./Allure/test_allure_shoping.py --alluredir ./Allure/result/

  3. # 执行指定features或者stories执行一部分测试用例,比如执行‘报告购物车’下的‘加入购物车’子功能的测试用例

  4. pytest ./Allure/test_allure_shopping.py --allure_features="报告购物车" --allure_stories="加入购物车" ../Allure/part_

2. Allure生成测试报告
  1. # 生成测试报告

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

  3. # 打开测试报告

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

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

 

  1. Overview(概览)

  2. Categories(类别)

  3. Behavior(功能)

  4. Suites(测试套件)

  5. Graphs(图标)

  6. Timeline(时间刻度)

  7. Packages(测试包)

四、Allure与Jenkins结合

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

4.1 Jenkins配置Allure

安装Allure插件

 

4.2 创建job

配置路径必须配置一致

 
  1. source env/bin/activate

  2. echo "**************Welcome to env**************"

  3. echo "**************pytest create test data**************"

  4. pytest /完整路径/Allure/test_allure_shopping.py --alluredir ${WORKSPACE}/allure-results/

  5. echo "**************report has generated done**************"

4.3 执行工程

立即构建工程即可。

 感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java反射Class类的api

目录 Class类 1.构造器相关 1)Constructor getConstructor(Class... parameterTypes): 2)Constructor[] getConstructors(): 3)Constructor getDeclaredConstructor(Class... parameterTypes): 4)Constructor[] getDeclaredConstr…

国外火出圈儿的PM御用AI编程工具Bolt.new效果干不过国产的CodeFlying?号称全新定义全栈开发流程?

不知道大家最近有没有发现国外的很多AI都在挤破脑袋想去提升大模型的编程能力, 离我们最近的是上周Openai 发布的全新模型GPT-4o-Canvas, 拥有超强的代码编写能力。 另外还有LlamaCoder、Cursor、Claude artifacts、Replit... 光是今年一年就推出了好…

深入理解Transformer的笔记记录(精简版本)---- Transformer

自注意力机制开启大规模预训练时代 1 从机器翻译模型举例 1.1把编码器和解码器联合起来看待的话,则整个流程就是(如下图从左至右所示): 1.首先,从编码器输入的句子会先经过一个自注意力层(即self-attention),它会帮助编码器在对每个单词编码时关注输入句子中的的其他单…

xtu oj 四位数

样例输入# 2 1990 1111样例输出# 5 0 分离整数与合并 AC代码 #include<stdio.h> //判断四个数码是否相等 int Judge(int n){int flag1;int gn%10,sn/10%10,bn/100%10,qn/1000;if(gs&&gb&&gq)flag0;return flag; } int main(){int T;scanf("%d…

AI无人直播风口,云微客替你抓住了

现在很多老板都在找风口&#xff0c;其实风口就是我们大家看得见、摸得着的东西&#xff0c;就比如说近期比较火热的直播带货就属于是一个风口。可能很多老板会说直播、短视频之类的风口过于高科技&#xff0c;搞不来也搞不懂&#xff0c;跟自己好像没太大关系。 其实不然&…

嵌入式开发:STM32 硬件 CRC 使用

测试平台&#xff1a;STM32G474系列 STM32硬件的CRC不占用MCU的资源&#xff0c;计算速度快。由于硬件CRC需要配置一些选项&#xff0c;配置不对就会导致计算结果错误&#xff0c;导致使用上没有软件计算CRC方便。但硬件CRC更快的速度在一些有时间资源要求的场合还是非…

【二叉搜索树】1 leetcode 98 验证二叉搜索树

1 题目描述 题目链接&#xff1a;验证二叉搜索树 2 题目解析 搜索二叉树的特点就是&#xff0c; 中序遍历之后的值是有序的。 根据这个性质&#xff0c;可以对树进行中序遍历&#xff0c;将遍历的结果存入到vector中最后判断vector中的值的顺序。如果是从小到大有序的&…

变色龙算法(CSA)的MATLAB代码复现

目录 1 变色龙算法优化BP神经网络代码复现 2 变色龙算法优化支持向量机代码复现 3 变色龙算法优化长短期记忆神经网络代码复现 1 变色龙算法优化BP神经网络代码复现 1&#xff09;单输出回归预测&#xff1a;单输出回归预测&#xff1a;变色龙算法优化BP神经网络模型&#…

MinIO分片上传超大文件(纯服务端)

目录 一、MinIO快速搭建1.1、拉取docker镜像1.2、启动docker容器 二、分片上传大文件到MinIO2.1、添加依赖2.2、实现MinioClient2.3、实现分片上传2.3.0、初始化MinioClient2.3.1、准备分片上传2.3.2、分片并上传2.3.2.1、设置分片大小2.3.2.2、分片 2.3.3、分片合并 三、测试3…

Windows命令行执行cmake

生成Win32 工程并编译 cmake ../../ -G "Visual Studio 16 2019" -A Win32set pathC:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin;%path%msbuild VideoNetOptimization.sln /p:ConfigurationRelWithDebInfo /p:PlatformWin3…

MSYS2+GCC 安装与应用保姆手册

msys2 提供可在Windows下使用 GCC 编译器&#xff1b;并且&#xff0c;借助 Linux 包管理功能&#xff0c;可轻松下载丰富的可在Windows下直接使用的 C/C 开发包&#xff0c;包括编译好的二进制包。 网络库asio、准标准库boost、zip解压缩、json格式处理、引擎 SDL……十八般兵…

2025年软考高项(信息系统项目管理师)包过班靠谱吗?

随着新一轮软考的到来&#xff0c;出现了很多“软考包过”的信息&#xff0c;但需要注意的是&#xff0c;“软考包过”根本不可信&#xff01; 因此不要想着依靠不正当手段来取得证书&#xff0c;要知道&#xff0c;如今 软考 由笔试变为机考&#xff0c;很难作弊&#xff0c;…

​速卖通、敦煌卖家备战双11+黑五前,怎么增加店铺曝光?

在速卖通这个竞争激烈的跨境电商平台上&#xff0c;店铺曝光率是决定销售成败的关键因素之一。为了在众多商家中脱颖而出&#xff0c;增加速卖通店铺曝光显得尤为重要。速卖通怎么增加店铺曝光&#xff1f; 一、速卖通怎么增加店铺曝光? 1、优化产品列表 速卖通的产品列表是…

需求9——通过一个小需求来体会service层的作用

昨天在完成了睿哥的需求验收之后&#xff0c;暂时没有其他任务&#xff0c;因此今天可能会比较有空闲时间。趁着这个机会&#xff0c;我打算把之前完成的一些需求进行总结&#xff0c;方便以后复习和参考。 在8月份的时候&#xff0c;我负责了一个需求&#xff0c;该需求的具体…

白色简洁大方公司企业网站源码 WordPress主题2款

WordPress白色简洁大方公司企业网站主题2款 白色整洁风格wordpress主题是一款比较新颖的国际设计范风格 简洁而大方的 WordPress 主题&#xff0c;适合个人博客、企业和工作室用。 完美支持下拉菜单的wordpress企业主题。 wordpress简白企业模板是一款适合企业站以及工作室…

c++基础知识复习(1)

前期知识准备 1 构造函数 &#xff08;1&#xff09;默认构造函数&#xff1a;没有参数传入&#xff0c;也没有在类里面声明 &#xff08;2&#xff09;手动定义默认构造函数&#xff1a;没有参数传入&#xff0c;但是在类里面进行了声明 可以在类外实现或者类内实现 以下案…

IDM6.42下载器最新版本,提速你的网络生活!

&#x1f680;【速度与激情&#xff0c;IDM 6.42来袭&#xff01;】&#x1f4a3; Hey, 亲爱的下载达人们&#xff01;&#x1f44b; 今天我要给你们安利一个神器——Internet Download Manager&#xff08;简称IDM&#xff09;&#xff0c;版本6.42&#xff0c;这可不是普通的…

猿人学 — 第1届第13题(解题思路附源码)

猿人学 — 第1届第13题&#xff08;解题思路附源码&#xff09; 发现在翻页过程中&#xff0c;只要中途有几秒的间隔&#xff0c;那么就会显示拉取数据失败&#xff0c;然后网页重新加载回到刚进来显示的第一页的情况 重新加载时&#xff0c;会发送一系列的请求&#xff0c;发…

threejs-基础材质设置

一、介绍 主要内容&#xff1a;基础材质(贴图、高光、透明、环境、光照、环境遮蔽贴图) 主要属性&#xff1a; side: three.DoubleSide, //设置双面 color: 0xffffff, //颜色 map: texture, //纹理 transparent: true, // 透明度 aoMap: aoTexture, //ao贴图 aoMapIntensity: 1…

JAVA海外短剧国际版系统小程序源码

海外短剧国际版系统——连接世界的剧情舞台 &#x1f30d; 引言&#xff1a;跨越国界的情感共鸣 在这个全球化的时代&#xff0c;文化的边界越来越模糊&#xff0c;而艺术成为了连接不同国家和地区人民心灵的桥梁。今天&#xff0c;我要向大家介绍一个令人兴奋的平台——“海…