Pytest 与allure测试报告集成
通过Feature, story, step 记录测试的功能,场景及测试步骤
# login.py
'''
login_func函数
传入参数是name 和 password
当输入的name和password与数据库db_data中数据一致时,返回“XXX成功登录系统!”
当输入的name存在于数据库db_data但密码不正确时,返回“XXX账号,密码输出错误,请重新输入!”
当输入的name不存在于数据库db_data中时,返回“XXX账号不存在,请输入正确的账号!”
'''def login_func(name,password):db_data = {"name": ['Jie', 'Jack', 'Jame'], "password": {'Jie': '123456', 'Jack': '111111', 'Jame': '222222'}}if name in db_data["name"] and str(password) == db_data["password"][name]:return(f"{name} 成功登录系统!")elif name in db_data["name"] and str(password) != db_data["password"][name]:return(f"{name} 账号,密码输出错误,请重新输入!")else:return(f"{name} 账号不存在,请输入正确的账号!")
login.py是一个登录模块,login_func函数主要实现登录功能
test_mod9.py主要实现对login.py中login_func函数功能测试
from login import login_func@allure.feature("测试登录模块")
class TestMod9:@allure.title("测试登录正例01")@allure.story("用正确的账号与密码登录")def test_login_01(self):name = "Jie"password = "123456"with allure.step(f"使用账号名称:{name},密码:{password}进行登录"):login = login_func(name,password)exc = f"{name} 成功登录系统!"pytest.assume(login == exc)@allure.title("测试登录反例02")@allure.story("用正确的账号与错误的密码登录")def test_login_02(self):name = "Jie"password = "023456"with allure.step(f"使用账号名称:{name},密码:{password}进行登录"):login = login_func(name,password)exc = f"{name} 账号,密码输出错误,请重新输入!"pytest.assume(login == exc)@allure.title("测试登录反例03")@allure.story("用不存在的账号进入登录")@allure.description("当登录账号不存在时,有正确的提示")def test_login_03(self):name = "Hele"password = "023456"with allure.step(f"使用账号名称:{name},密码:{password}进行登录"):login = login_func(name, password)exc = f"{name} 不存在账号,请输入正确的账号!"pytest.assume(login == exc)
test_mod9.py测试模块中,包含一个class TestMod9 测试类,测试类下包含了测试登录功能的三个测试用例
@allure.feature("测试登录模块"): 在报告中记录测试需求(即测试用例集的功能,要测试什么)一般修饰测试类(testsuite);
@allure.story("用正确的账号与密码登录"):在报告中记录根据测试需求细化的测试场景(即测试用例场景描述)一般修饰测试用例即方法;
(注:feature与story属于父子关系)
@allure.title("测试登录反例03"):在报告中自定义测试用例标题
@allure.description("当登录账号不存在时,有正确的提示"):报告中测试用例的详细描述
with allure.step(f"使用账号名称:{name},密码:{password}进行登录"): 在报告中记录测试用例中的测试步骤或详细信息,放在测试用例的代码逻辑中;
- -alluredir=./result/ 为指定报告结果数据存入路径,执行上述命令后会自动在该目录下生成一个result文件夹存放报告数据

命令:allure serve ./result/
1、在本地启动一个server查看allure报告

2、根据result文件夹中的数据在项目目录下生成allure-report存入html报告
命令:allure generate ./result/
命令:allure open ./allure-report 在本地启动查看allure报告的服务
命令:allure generate ./result/ -o ./allure-report/ --clean # 每次生成报告时先清除原报告数据
相关文章:
Pytest 与allure测试报告集成
通过Feature, story, step 记录测试的功能,场景及测试步骤 # login.pylogin_func函数 传入参数是name 和 password 当输入的name和password与数据库db_data中数据一致时,返回“XXX成功登录系统!” 当输入的name存在于数据库db_data但密码不正…...
MySQL 表的增删改查(基础)
1.CRUD 注释:在SQL中可以使用"--空格描述"来表示注释说明 CRUD 即增加(Create).查询(Retrieve).更新(Update).删除(Delete) 2.新增(Create) insert into 表名 values (列,列...); insert into 表名(列名,列名...) values (列,列...); insert into 表名 values(),(),…...
【PDF.js】发票PDF不显示文本的问题
控制台提示警告: Warning: loadFont - translateFont failed: "UnknownErrorException: The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.".…...
C#中检查空值的最佳实践
C#中检查空值的最佳实践 在C#编程中,处理空值是一项基础且重要的任务。正确地检查变量是否为null可以帮助我们避免NullReferenceException,这是C#最常见的运行时错误之一。本文将探讨为什么使用is关键字进行空值检查是一种优于使用的做法。 操作符&…...
三层交换组网实验(华为)
思科设备参考:三层交换组网实验(思科) 一,技术简介 三层交换技术的出现,解决子网必须依赖路由器进行管理的问题,解决传统路由器低速、复杂所造成的网络瓶颈问题。一个具有三层交换功能的设备可简单理解为…...
Android配置GitLab CI/CD持续集成,Shell版本的gitlab-runner,FastLane执行,上传蒲公英
mac环境下, 首选需要安装gitlab-runner和fastlane brew install gitlab-runner brew install fastlane 安装完成,来到我们在gitlab下新建的Android项目,我们开始创建gitlab-runner 1、创建runner 点开runner,点击新建runner …...
算法提升——LeetCode383场周赛总结
周赛题目 边界上的蚂蚁 边界上有一只蚂蚁,它有时向左走,有时向右走。 给你一个非零整数数组nums。蚂蚁会按顺序读取nums中的元素,从第一个元素开始直到结束。每一步,蚂蚁会根据当前元素的值移动: 如果nums[i]<0…...
(delphi11最新学习资料) Object Pascal 学习笔记---第4章第2.1节( 带结果的Exit例程)
4.2.1 带结果的Exit例程 我们已经看到,从函数中返回结果所使用的语法与 C 语言家族的语法截然不同。不仅语法不同,行为也不同。为结果(或函数名)赋值并不像return语句那样终止函数。Object Pascal 开发人员经常利用这一特性&a…...
vuecli3 执行 npm run build 打包命令报错:TypeError: file.split is not a function
问题 今天有个项目在打包的时候遇到了一个问题,就是执行 npm run build 命令的时候报错了,如下: 解决 我排查了一下,模拟代码如下:在打包的时候用了 MinChunkSizePlugin const webpack require("webpack"…...
【Java 数据结构】对象的比较
Java中对象的比较 1. PriorityQueue中插入对象2. 元素的比较2.1 基本类型的比较2.2 对象比较的问题 3. 对象的比较3.1 覆写基类的equals3.2 基于Comparble接口类的比较3.3 基于比较器比较3.4 三种方式对比 4. 集合框架中PriorityQueue的比较方式5. 使用PriorityQueue创建大小堆…...
2024 Google Chrome 浏览器回退安装旧版本
2024 Google Chrome 浏览器回退安装旧版本 查看当前谷歌版本备份浏览器数据卸载浏览器双击重新安装旧版本浏览器 查看当前谷歌版本 详细参考:参考 笔记:最近谷歌浏览器更新后,用着总感觉别扭:不习惯 备份浏览器数据 ÿ…...
将数组中的各字符串都调整为指定长度调整原则:多删(删右侧多出的)少补(左侧补数字0)numpy.char.zfill()
【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 将数组中的各字符串 都调整为指定长度 调整原则: 多删(删右侧多出的) 少补(左侧补数字0) numpy.char.zfill() [太阳]选择题 请问以…...
算法题目题单——图论
简介 本文为自己做的一部分图论题目,作为题单列出,持续更新。 题单由题目链接和题解两部分组成,题解部分提供简洁题意,代码仓库:Kaiser-Yang/OJProblems。 对于同一个一级标题下的题目,题目难度尽可能做…...
Maven提示Failure to find com.oracle:ojdbc14:jar:10.2.0.4.0
目录 问题 解决方案 1、下载oracle的驱动jar包 2、安装到本地仓库 3、检查本地仓库是否成功安装 4、Maven先clean ,再install。 问题 项目引入Oracle依赖后报错,显示为红色。 解决方案 1、下载oracle的驱动jar包 首先我们要去下载一个oracle的…...
深度学习的数据集制作、标注、处理相关软件
制作深度学习数据集通常涉及数据的采集、标注和预处理等步骤。以下是一些可用于制作和处理深度学习数据集的软件工具,以及它们的详细介绍: 数据采集和生成 Web爬虫工具 (如 Scrapy, Beautiful Soup) 描述:这些工具可以帮助你从网上自动抓取和…...
点击按钮打开自定义iframe弹窗
1、效果 点击按钮打开弹窗: 打开弹窗后: 2、代码 <!DOCTYPE html> <html><head><title>iframe弹窗</title><style>/* 使用媒体查询来实现响应式设计 */media (min-width: 768px) {.popup {width: 80%; /* 设置…...
LeetCode977 有序数组的平方
暴力解法是平方之后排序复杂度是nnlogn 优化解法是双指针i,j,i放数组首元素位置,j放数组末尾,每次比较i和j位置的数组元素大小,然后挑一个大的放在新的数组元素的指定末尾位置上。 当原始数组nums第一个元素大于零时&a…...
Windows自动化实现:系统通知和任务栏图标自定义
文章目录 Windows自动化的三个小工具系统通知任务栏图标使用pystray实现使用infi.systray实现 Windows自动化的三个小工具 系统通知 import win10toastwin10toast.ToastNotifier().show_toast("eee", "休息一下", icon_path"icon.ico", durati…...
Spring | Spring的“数据库开发“ (Srping JDBC)
目录: Spring JDBC1.Spring JDBC的核心类 ( JdbcTemplate类 )2.Srping JDBC 的配置3.JdbcTemplate类的“常用方法”execute( ):直接执行“sql语句”,没有返回值update( ) :“增删改”,返回 “影响的行数”query( ) : “…...
面试八股文(2)
文章目录 1.ArrayList和LinkedList区别2.HashMap和HashTable区别3.线程的创建方式4.Java中异常处理5.Java序列化中某些字段不想进行序列化?6.Java序列化7.静态方法和实例方法8.List、Set、Map三者区别9.ArrayList和Vector区别10.HashMap和HashSet区别 1.ArrayList和…...
ESP32/ESP8266轻量级二进制RPC库设计与实践
1. 项目概述esp_rpc是一个专为 ESP8266 和 ESP32 平台深度优化的轻量级远程过程调用(Remote Procedure Call, RPC)库。其设计哲学直指嵌入式资源受限场景的核心矛盾:在极小内存占用(ROM/RAM 双敏感)与可靠跨设备交互之…...
保姆级教程:用Ultralytics库把YOLOv11模型导出成ONNX/TensorRT格式(附参数详解)
保姆级教程:用Ultralytics库把YOLOv11模型导出成ONNX/TensorRT格式(附参数详解) 当你完成YOLOv11模型的训练后,下一步就是将其部署到实际应用中。模型导出是部署的关键环节,直接影响推理性能和硬件兼容性。本文将带你深…...
第4章 Mosquitto命令行工具快速上手
第4章 Mosquitto命令行工具快速上手 4.1 命令行工具概览 #mermaid-svg-J8aIvd39QR9TuYWA{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-…...
OpenCore Legacy Patcher完全指南:突破硬件限制让旧Mac焕发新生
OpenCore Legacy Patcher完全指南:突破硬件限制让旧Mac焕发新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher OpenCore Legacy Patcher是一款强…...
2026届学术党必备的六大AI科研工具解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 一键生成论文功能通过借助先进人工智能算法得以达成,它可依照用户输入的标题&am…...
DeepSeek R1 本地部署企业级实战(附Ollama及CherryStudio客户端安装包)
1、DeepSeek 双系列定位 DeepSeek 作为国内对标 GPT-4 的顶尖大模型,核心分为两大技术系列,精准覆盖不同业务场景: 系列 定位 核心能力 典型模型 小模型覆盖 R1(推理增强) 深度思考、复杂逻辑 数学、代码、长链推理 R1-671B、R1-32B、R1-7B 1.5B/7B/8B/14B/32B(Ollama 主…...
温度场与锂枝晶生长的相场电势场及浓度场耦合仿真研究
comsol 锂枝晶仿真——耦合温度场 在相场,电势场和浓度场的基础上耦合了温度场,可以看不同温度对锂枝晶的影响指尖的金属晶体在电解液中野蛮生长,就像寒冬玻璃上的冰花。当我们盯着显微镜观察锂枝晶时,常忽略了一个重要变量——温…...
2026届最火的降重复率工具实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 维普平台针对AIGC技术的引入,制定了严谨的检测规范,在当前学术场景里…...
当单片机玩起音乐魔法
基于单片机的音乐律动播放器音乐盒串口远程控制(LCD1286 1100056-基于单片机的音乐律动播放器音乐盒串口远程控制(LCD12864、六首音乐、PWM调频、音频编码、源代码、仿真、流程图、物料清单、Proteus) 功能描述:基于单片机的音乐律…...
docker 安装 MrDoc
这里写目录标题一、说明二、安装1. 将离线包上传到root,导入docker离线包2. 创建并运行容器3.账号admin,初始密码获取如下一、说明 doc、git、nexus之类不是常用的,而本身又包含数据库、软件或者nginx之类的,用docker来安装是不错…...
