自动化测试框架pytest+allure+requests
最近复习了一下关于自动化测试的内容,结合[码尚教育] 相关的思路来对测试框架进行开发。
争取实现零代码来实现自动化测试环境的搭建
AutoTestFrame
介绍
AutoTestFrame是一个基于Python的自动化测试框架,旨在帮助测试人员快速、高效地完成测试任务。
软件架构
软件架构说明
pytest + requests + faker + allure
安装教程
pip install -r requirements.txt
使用说明
- 该框架基于pytest,所以首先需要安装pytest。
- 克隆项目到本地。
- 安装依赖包。
- 运行命令
pytest即可运行测试用例。 - 运行命令
allure generate ./reports -o./allure-report生成测试报告。 - 运行命令
allure open ./allure-report查看测试报告。 - 运行命令
allure serve ./allure-report启动测试报告服务器。
或者直接运行runner.py文件。
python runner.py
目录结构
AutoTestFrame
├── README.md # 说明文档
├── resource # 资源文件
│ ├── allure-2.30.0 # allure程序
│ └── template # 测试用例模板
├── reports # 测试报告
├── requirements.txt # 依赖包
├── runner.py # 运行文件
├── test_api_cases # 测试用例
│ └── test_all_case.py # 所有测试用例
└── common # 公共模块├── file_engine # 文件处理模块├── model # 数据模型模块├── util # 工具模块├── logger.py # 日志模块└── config.py # 配置文件
接口测试用例
用例模板
- 模块名称: 测试登录接口名称: 登录用例名称: 登录成功用例描述: 用户名正确,密码正确,登录成功是否运行: true请求数据:method: posturl: http://127.0.0.1:5000/api/loginjson:userName: '15740525667'password: admin@123456断言:- 断言方式: ''预期响应内容: 操作成功实际响应内容: 'response.json().get("msg") # 预期响应的msg值,response为requests.Response对象'断言信息: 登录失败提取数据:token:- json- $.data.token- 0
用例说明
- 请求数据中集成了 faker 库,可以随机生成用户名和密码。
- 使用方法:
${faker.name} - faker 库的更多用法参考 https://faker.readthedocs.io/en/master/index.html
- 使用方法:
- 请求数据集成了一些方法,可以直接使用。
- 使用方法:
${timestamp(13)}, 获取当前时间戳 - 可以在 data_tools_util.py中进行拓展,实现更多的方法
- 使用方法:
- 断言中,实际响应内容可以直接使用 response 对象获取
- 提取数据中,可以提取响应中的 token 值,并赋值给变量 token。
token: [json, $.data.token, 0]- json: requests.Response对象的 json() 方法返回的字典
- . d a t a . t o k e n : j s o n p a t h 表达式,用于提取 t o k e n 值 , 或者正则表达式, j s o n p a t h 表达式参考 h t t p s : / / j s o n p a t h . c o m / , 必须 ‘ .data.token: jsonpath 表达式,用于提取 token 值, 或者正则表达式,jsonpath 表达式参考 https://jsonpath.com/, 必须` .data.token:jsonpath表达式,用于提取token值,或者正则表达式,jsonpath表达式参考https://jsonpath.com/,必须‘.
开头,$表示根节点。提取出来时list`类型。 - 0: 指示提取 token 值中的第 0 个值
项目地址
https://gitee.com/chiyaun/auto-test-frame
此项目是我个人研发的,欢迎各位进行拓展
相关文章:
自动化测试框架pytest+allure+requests
最近复习了一下关于自动化测试的内容,结合[码尚教育] 相关的思路来对测试框架进行开发。 争取实现零代码来实现自动化测试环境的搭建 AutoTestFrame 介绍 AutoTestFrame是一个基于Python的自动化测试框架,旨在帮助测试人员快速、高效地完成测试任务。…...
Python 笔记 numpy.ndarray切片
NumPy 的 ndarray 类型提供了非常灵活的切片功能,可以方便地访问和操作数组中的元素。切片允许您通过指定索引来选择数组的一部分。下面是一些基本的切片操作及其解释。 一维数组的切片 对于一维数组,切片操作类似于 Python 列表的切片。 示例 impor…...
一、HTML5知识点精讲
一、HTML5介绍 html是用来描述网页的一种语言(就是写网页的一种语言)。 它和CSS,JS称为网页三要素。 HTML负责把元素简单呈现在网页上,是网页的身体CSS负责给网页元素添加各种样式,是网页的衣服JS负责实现各种动态、…...
【杂乱算法】前缀和与差分
前缀和 文章目录 前缀和一维应用 二维差分一维 二维扩展1、前缀和与哈希表 一维 一个数组prefix中,第i个元素表示nums[0]至nums[i-1]的总和,那么我们就称这个prefix数组是nums数组的前缀和。 prefix [ i ] ∑ j 0 i nums [ j ] \text{prefix}[i] \s…...
Arduino调试ESP32常见问题 exit status 1
问题1:代码上传(烧录)报Failed uploading: uploading error: exit status 1大概率原因:没有安装对应的驱动,我的ESP32驱动是CH340点击这里下载CH340 下载后打开,若出现乱码不用在意,点击第一个按…...
“决胜面试:高频题目与算法策略一览”
干货分享,感谢您的阅读! (暂存篇---后续会删除,完整版和持续更新见高频面试题基本总结回顾(含笔试高频算法整理)) 备注:引用请标注出处,同时存在的问题请在相关博客留言…...
Node-RED的安装
最近对Node-RED比较感兴趣,因为在上OpenHarmony课程的时候,一直想找一个可以通过MQTT控制设备的低代码客户端解决方案。第一次指导Node-RED是在试用聆思开发板的时候,它的云端就是使用的Node-RED。 在安装Node-RED之前,请确保您的…...
java中的Collections
Java 的集合框架(Collections Framework)提供了一组标准的数据结构接口和类,用于存储和操作数据。Java 集合类位于 java.util 包中,主要包括以下几个核心接口和实现类。 1. 核心接口 1.1. Collection 接口 Collection 是集合框架的根接口,但它本身并不提供任何直接实现…...
linux Qt QkeyEvent及驱动键盘按键捕获
基于正点原子 QT中有专门的类处理键盘事件的类QKeyEvent 1.include “QKeyEvent” 查看它的说明中的描述 也就是说接受按键事件在keyPressEvent和keyReleaseEvent这两个函数,继续查看 重构这个函数 查看输入的QKeyEvent类,发现有一个方法key返回哪一个按…...
【GH】【EXCEL】P6: Shapes
文章目录 componentslinepicture components line picture Picture A Picture object Input parameters: Worksheet (Generic Data) A Worksheet, Workbook, Range Object, Excel Application, or Text Worksheet NameName (Text) An optional object nameLocation (Point) A p…...
google浏览器chrome用户数据(拓展程序,书签等)丢失问题
一、问题背景 我出现这个情况的问题背景是:因为C盘块满了想清理一部分空间(具体看这:windows -- C盘清理_c盘softwaredistribution-CSDN博客),于是找到了更改AppDatta这个方法,但因为,当时做迁移…...
数据结构——链式队列和循环队列
目录 引言 队列的定义 队列的分类 1.单链表实现 2.数组实现 队列的功能 队列的声明 1.链式队列 2.循环队列 队列的功能实现 1.队列初始化 (1)链式队列 (2)循环队列 (3)复杂度分析 2.判断队列是否为空 (1)链式队列 (2)循环队列 (3)复杂度分析 3.判断队列是否…...
数据库死锁解决方法,学费了吗?
避免死锁:尽量设计良好的数据库结构,避免出现死锁的情况。可以使用合适的事务隔离级别,以及良好的并发控制策略。 死锁检测和回滚:当检测到死锁时,可以使用死锁检测算法来确定死锁的存在,并回滚其中一个或…...
API网关之Apache ShenYu
Apache ShenYu(原名Soul)是一个开源的API网关,旨在支持高性能、跨语言和云原生架构。它为管理和控制客户端与服务之间的数据流提供了一种高效且可扩展的解决方案。 文档见 Apache ShenYu 介绍 | Apache ShenYu 以下是Apache ShenYu的详细介…...
ECMA Script 6
文章目录 DOM (Document Object Model)BOM (Browser Object Model) let 和 const 命令constObject.freeze方法跨模块常量全局对象的属性 变量的结构赋值数组结构赋值对象解构赋值字符串解构赋值数值和布尔值的解构赋值函数参数解构赋值圆括号的问题 解构赋值的用途 字符串的扩展…...
如何在不破产的情况下训练AI模型
在当今的人工智能领域,训练复杂的AI模型——特别是大型语言模型(LLM)——需要巨大的算力支持。对于许多中小型企业来说,高昂的成本常常成为一个难以逾越的障碍。然而,通过采用一些策略和最佳实践,即使是在资源有限的情况下,也能有效地训练出高质量的AI模型。本文将介绍几…...
常用开发组件Docker部署保姆级教程
说明 本文总结了一些常用组件的Docker启动命令及过程,在开发过程中只需花费数分钟下载和配置即可完美使用这些服务。 Mysql MySQL 是一种开源关系数据库管理系统(RDBMS),目前由 Oracle 公司维护。MySQL 以其高性能、可靠性和易用…...
MySql高级视频笔记
索引 索引 : 是帮助MySql高效查询数据的数据结构 优势&劣势 优势: 提高数据检索的效率, 降低数据库的IO成本通过索引列队数据进行排序, 降低数据的排序成本, 降低CPU的消耗 劣势: 索引维护了主键信息, 并指向表中数据记录, 也是占用磁盘空间的索引提高了查询效率, 但索引也…...
二十二、状态模式
文章目录 1 基本介绍2 案例2.1 Season 接口2.2 Spring 类2.3 Summer 类2.4 Autumn 类2.5 Winter 类2.6 Person 类2.7 Client 类2.8 Client 类的运行结果2.9 总结 3 各角色之间的关系3.1 角色3.1.1 State ( 状态 )3.1.2 ConcreteState ( 具体的状态 )3.1.3 Context ( 上下文 )3.…...
Spark环境搭建-Local
目录 Local下的角色分布: Anaconda On Linux 安装 (单台服务器) 1.下载安装 2.国内源 下载Spark安装包 1.下载 2.解压 3.环境变量 测试 监控 Local下的角色分布: 资源管理: Master:Local进程本身 Worker:L…...
信号处理中的‘双子星’:深入对比周期信号的离散谱与非周期信号的连续谱(附Sinc函数详解)
信号处理中的‘双子星’:深入对比周期信号的离散谱与非周期信号的连续谱(附Sinc函数详解) 在信号处理领域,周期信号与非周期信号的频谱分析构成了整个傅里叶分析体系的两大支柱。许多学习者在初次接触这两个概念时,往往…...
可视化大屏怎么做?可视化大屏工具你会用吗?
可视化大屏早已不只是技术人员的专属,越来越多的运营、产品和市场人也开始尝试,但是常常陷入各种问题:比如硬件效果一般、数据堆积没重点、动效杂乱干扰信息传达……其实归根结底,这些问题都指向一个核心:缺少一个专业…...
[实战指南+数据解析] DEAP数据集:基于EEG、生理与视频信号的多模态情感计算入门
1. DEAP数据集入门:多模态情感计算的钥匙 第一次接触DEAP数据集时,我被它丰富的多模态数据震撼到了。这个数据集就像情感计算领域的"瑞士军刀",包含了EEG脑电波、皮肤电导等生理信号,还有22名参与者的面部视频记录。最特…...
DeepSeek Chat功能测试实战手册:5步完成生产级对话模型验收(附测试用例模板)
更多请点击: https://intelliparadigm.com 第一章:DeepSeek Chat功能测试实战手册:5步完成生产级对话模型验收(附测试用例模板) DeepSeek Chat 作为开源大语言模型对话接口,其生产就绪性需通过结构化、可…...
千川素材月烧3万外包费?用易元AI自建素材工厂,省70%成本跑量更猛
做千川投放的商家都深有体会:限制账户放量的从来不是预算,而是素材成本高、产能慢、优质有效素材稀缺。当下千川商家都陷入同一个困境:不做素材没法投放,大批量做素材又烧钱。一款产品要多卖点测试,投放计划需要持续补…...
轻量级网页自动化工具 xiaoclaw:基于 CDP 的高效实践指南
1. 项目概述:一个轻量级、可编程的网页自动化工具最近在折腾一些需要自动处理网页数据的小项目,比如定时抓取某个网站的价格变动、自动填写表单、或者模拟一些重复性的点击操作。一开始想用传统的Selenium,但总觉得它有点“重”,启…...
5分钟掌握foo2zjs:让Linux完美支持100+打印机型号的终极方案
5分钟掌握foo2zjs:让Linux完美支持100打印机型号的终极方案 【免费下载链接】foo2zjs A linux printer driver for QPDL protocol - copy of http://foo2zjs.rkkda.com/ 项目地址: https://gitcode.com/gh_mirrors/fo/foo2zjs 在Linux系统中使用打印机常常会…...
胶片颗粒≠随机噪点,35mm风格出图翻车全解析,深度拆解ISO模拟、过期胶卷色偏与显影液残留建模逻辑
更多请点击: https://intelliparadigm.com 第一章:胶片颗粒≠随机噪点,35mm风格出图翻车全解析 胶片摄影的颗粒感(Grain)是银盐晶体在显影过程中形成的物理性、非均匀、结构化纹理,而数字图像中常见的“噪…...
The Most Dangerous Writing App 快速入门指南:如何在5秒内开始高效写作
The Most Dangerous Writing App 快速入门指南:如何在5秒内开始高效写作 【免费下载链接】themostdangerouswritingapp If you stop typing for more than five seconds, all progress will be lost. 项目地址: https://gitcode.com/gh_mirrors/th/themostdangero…...
基于RAG与德国开放数据构建本地化智能问答系统实践
1. 项目概述与核心价值最近在折腾本地化大语言模型应用时,发现了一个挺有意思的项目:stefangrotz/OpenDataGermanyGPT。光看名字,你可能会觉得这又是一个针对特定地区数据的聊天机器人,没什么新意。但实际深入进去,你会…...
