当前位置: 首页 > news >正文

python自动化测试之Pytest框架之YAML详解以及Parametrize数据驱动!

一、YAML详解

YAML是一种数据类型,它能够和JSON数据相互转化,它本身也是有很多数据类型可以满足我们接口 的参数类型,扩展名可以是.yml或.yaml

作用:

1.全局配置文件
基础路径,数据库信息,账号信息,日志格式,报告名称等。
2.编写测试用例
接口自动化测试用例

语法结构:

1.区分大小写 Name name
2.通过缩进来表示层级关系。使用空格。
3.可以使用#作为注释
4.字符串一般默认可以不使用引号,必须时才使用。

数据类型:

基本类型:

整数
浮点数
字符串(当有特殊字符时:双引号不会被转义,其它的都会加一个转义符\)
布尔值
null
日期时间

复杂类型:

对象(字典):键: (空格)
数组(列表):它是使用 一组横线"-" 开头。

数据类型强转:【鸡肋】

!!int
!!str

引用:

引用:&建立锚点(标记),*使用锚点,<<表示合并到当前数据。

二、YAML的读写和清空

安装:
pip install pyyaml
读写和清空
#读取 
def read_yaml(yaml_path): with open(yaml_path,encoding="utf-8",mode="r") as f: value = yaml.safe_load(f) return value #写入 
def write_yaml(yaml_path,data): with open(yaml_path,encoding="utf-8",mode="w") as f: yaml.safe_dump(data, stream=f,allow_unicode=True) # #清空 
def clear_yaml(yaml_path): with open(yaml_path, encoding="utf-8", mode="w") as f: pass

三、pytest的parametrize结合yaml实现数据驱动

@pytest.mark.parametrize("参数名","参数值(可以是list或tuple)")

方法一:【不常用】

方法二:【常用】
class TestApi:@pytest.mark.parametrize("caseinfo", read_yaml("../testcases/test_api.yaml"))def test_login2(self,caseinfo):print("登录测试用例:%s " % caseinfo)
-username: adminpassword: "001"
-username: admin2password: "002"
-username: admin3password: "003"
多个用例
-feature: 正例:接口所属模块story: 接口名称title: 用例标题request:method: geturl: http://www.baidu.comheaders: 请求头params: 请求参数validate: null-feature: 反例:接口所属模块story: 接口名称title: 用例标题request:method: geturl: http://www.baidu.comheaders: 请求头params: 请求参数validate: null

相关文章:

python自动化测试之Pytest框架之YAML详解以及Parametrize数据驱动!

一、YAML详解 YAML是一种数据类型&#xff0c;它能够和JSON数据相互转化&#xff0c;它本身也是有很多数据类型可以满足我们接口 的参数类型&#xff0c;扩展名可以是.yml或.yaml 作用&#xff1a; 1.全局配置文件 基础路径&#xff0c;数据库信息&#xff0c;账号信息&…...

python基础入门:6.3异常处理机制

Python异常处理全面指南&#xff1a;构建健壮程序的关键技术 # 完整异常处理模板 def process_file(file_path):"""文件处理示例函数"""file Nonetry:file open(file_path, r, encodingutf-8)data json.load(file)if not data:raise EmptyDa…...

Mybatis快速入门与核心知识总结

Mybatis 1. 实体类&#xff08;Entity Class&#xff09;1.1 实体类的定义1.2 简化编写1.2.1 Data1.2.2 AllArgsConstructor1.2.3 NoArgsConstructor 2. 创建 Mapper 接口2.1 Param2.2 #{} 占位符2.3 SQL 预编译 3. 配置 MyBatis XML 映射文件&#xff08;可选&#xff09;3.1 …...

畅聊deepseek-r1,SiliconFlow 硅基流动注册+使用

文章目录 SiliconFlow 硅基流动注册使用注册创建API密钥使用网页端使用代码调用api调用支持的模型 SiliconFlow 硅基流动注册使用 注册 硅基流动官网 https://cloud.siliconflow.cn/i/XcgtUixn 注册流程 切换中文 ​ 邀请码&#xff1a; XcgtUixn 创建API密钥 账户管理 --&g…...

一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码及效果展示

一个基于ESP32S3和INMP441麦克风实现音频强度控制RGB灯带律动的代码示例&#xff0c;使用Arduino语言&#xff1a; 硬件连接 INMP441 VCC → ESP32的3.3VINMP441 GND → ESP32的GNDINMP441 SCK → ESP32的GPIO 17INMP441 WS → ESP32的GPIO 18INMP441 SD → ESP32的GPIO 16RG…...

Springboot 中如何使用Sentinel

在 Spring Boot 中使用 Sentinel 非常方便&#xff0c;Spring Cloud Alibaba 提供了 spring-cloud-starter-alibaba-sentinel 组件&#xff0c;可以快速将 Sentinel 集成到你的 Spring Boot 应用中&#xff0c;并利用其强大的流量控制和容错能力。 下面是一个详细的步骤指南 …...

访问Elasticsearch服务 curl ip 端口可以 浏览器不可以

LINUX学习 在虚拟机上面的linux上面用docker 部署Elasticsearch项目后&#xff0c;在linux系统内部用curl ip 端口地址的形式可以访问到Elasticsearch。可以返回数据。 但是在本机的浏览器中输入ip 端口&#xff0c;会报错&#xff0c;找不到服务。 ping 和 trelnet均不通。 …...

Curser2_解除机器码限制

# Curser1_无限白嫖试用次数 文末有所需工具下载地址 Cursor Device ID Changer 一个用于修改 Cursor 编辑器设备 ID 的跨平台工具集。当遇到设备 ID 锁定问题时&#xff0c;可用于重置设备标识。 功能特性 ✨ 支持 Windows 和 macOS 系统&#x1f504; 自动生成符合格式的…...

人工智能与低代码如何重新定义企业数字化转型?

引言&#xff1a;数字化转型的挑战与机遇 在全球化和信息化的浪潮中&#xff0c;数字化转型已经成为企业保持竞争力和创新能力的必经之路。然而&#xff0c;尽管“数字化”听上去是一个充满未来感的词汇&#xff0c;落地的过程却往往充满困难。 首先&#xff0c;传统开发方式…...

arkTS基础

arkTS基础 // 变量声明 let hi: string hello; hi hello,world; // 常量声明 const hi: string hello;// ArkTS是一种静态类型语言&#xff0c;所有数据的类型都必须在编译时确定 // 如果一个变量或常量的声明包含了初始值&#xff0c;那么开发者就不需要显式指定其类型。…...

C++20中的std::atomic_ref

一、std::atomic_ref 我们在学习C11后的原子操作时&#xff0c;都需要提前定义好std::atomic变量&#xff0c;然后才可以在后续的应用程序中进行使用。原子操作的优势在很多场合下优势非常明显&#xff0c;所以这也使得很多开发者越来习惯使用原子变量。 但是&#xff0c;在实…...

四、自然语言处理_08Transformer翻译任务案例

0、前言 在Seq2Seq模型的学习过程中&#xff0c;做过一个文本翻译任务案例&#xff0c;多轮训练后&#xff0c;效果还算能看 Transformer作为NLP领域的扛把子&#xff0c;对于此类任务的处理会更为强大&#xff0c;下面将以基于Transformer模型来重新处理此任务&#xff0c;看…...

spring学习(使用spring加载properties文件信息)(spring自定义标签引入)

目录 一、博客引言。 二、基本配置准备。 &#xff08;1&#xff09;初步分析。 &#xff08;2&#xff09;初始spring配置文件。 三、spring自定义标签的引入。 &#xff08;1&#xff09;基本了解。 &#xff08;2&#xff09;引入新的命名空间&#xff1a;xmlns:context。 &…...

bigemap pro如何进行poi兴趣点搜索?

准备工具&#xff1a;BIGEMAP Pro是数据要素设计软件(DED),国产基础软件&#xff0c;大数据编辑、制图、多源数据要素类处理软件打开软件右上角选择分类搜索然后用矩形或者选择行政边界线选择需要查询的范围选中范围以后点击查询然后可以直接加载到地图然后图层右键数据导出矢量…...

Mybatis源码02 - 初始化基本过程(引导层部分)

初始化基本过程&#xff08;引导层部分&#xff09; 文章目录 初始化基本过程&#xff08;引导层部分&#xff09;一&#xff1a;初始化的方式及引入二&#xff1a;初始化方式-XML配置文件1&#xff1a;MyBatis初始化基本过程2&#xff1a;创建Configuration对象的过程2.1&…...

【Elasticsearch】bucket_sort

Elasticsearch 的bucket_sort聚合是一种管道聚合&#xff0c;用于对父多桶聚合&#xff08;如terms、date_histogram、histogram等&#xff09;的桶进行排序。以下是关于bucket_sort的详细说明&#xff1a; 1.基本功能 bucket_sort聚合可以对父聚合返回的桶进行排序&#xff…...

k8s证书过期怎么更新?

在 Kubernetes 集群中&#xff0c;证书过期可能导致集群不可用&#xff0c;尤其是 API Server、Controller Manager、Scheduler 等组件所使用的证书。为了恢复集群的正常运行&#xff0c;您需要更新这些证书。以下是更新 Kubernetes 证书的基本步骤&#xff1a; 1. 检查证书状…...

活动预告 |【Part 1】Microsoft 安全在线技术公开课:通过扩展检测和响应抵御威胁

课程介绍 通过 Microsoft Learn 免费参加 Microsoft 安全在线技术公开课&#xff0c;掌握创造新机遇所需的技能&#xff0c;加快对 Microsoft Cloud 技术的了解。参加我们举办的“通过扩展检测和响应抵御威胁”技术公开课活动&#xff0c;了解如何更好地在 Microsoft 365 Defen…...

AIGC-微头条爆款文案创作智能体完整指令(DeepSeek,豆包,千问,Kimi,GPT)

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列AIGC(GPT、DeepSeek、豆包、千问、Kimi)👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资…...

C# 比较两个List集合内容是否相同

在 C# 中&#xff0c;要比较两个 List<T> 集合的内容是否相同&#xff0c;可以通过以下几种方法&#xff1a; 一、非自定义类的元素比较 1. 使用 SequenceEqual 方法&#xff08;顺序和内容都相等&#xff09; 顺序和内容都相等&#xff1a;使用 SequenceEqual。 usin…...

OpenHarmony移植实战:解决ACE组件编译依赖冲突的通用方案

1. OpenHarmony移植中的ACE组件依赖问题解析 最近在将OpenHarmony移植到全志T113平台时&#xff0c;遇到了一个典型问题&#xff1a;添加ACE组件后编译报错&#xff0c;提示找不到海思芯片相关的硬件抽象层文件。这个问题其实反映了OpenHarmony生态发展过程中的一个普遍现象—…...

【Midjourney v8图像修复终极指南】:9大隐藏参数调优+3类高频崩坏场景实战修复(2024官方未公开文档级解析)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney v8图像修复功能全景概览 Midjourney v8 引入了革命性的图像修复&#xff08;Image Inpainting&#xff09;能力&#xff0c;不再依赖外部图层或第三方工具&#xff0c;而是通过原生提示词指…...

Applite:用图形化界面轻松管理Mac软件的终极解决方案

Applite&#xff1a;用图形化界面轻松管理Mac软件的终极解决方案 【免费下载链接】Applite User-friendly GUI macOS application for Homebrew Casks 项目地址: https://gitcode.com/gh_mirrors/ap/Applite 还在为Mac上繁琐的软件管理而烦恼吗&#xff1f;Applite作为一…...

我用了半年只留下这1个!2026年英语录音转文字选它真不踩坑

做学术调研的朋友多半都遇过这些坑&#xff1a;熬了半个月跑了10场受访者访谈&#xff0c;攒了8小时录音&#xff0c;手动整理整整花了一周&#xff0c;眼睛都熬花了还错漏一堆&#xff1b;听国外名家讲座录了音&#xff0c;转写工具一堆专业词汇识别错&#xff0c;口音还认不出…...

Cangaroo:开源CAN总线分析软件架构解析与深度优化指南

Cangaroo&#xff1a;开源CAN总线分析软件架构解析与深度优化指南 【免费下载链接】cangaroo Open source can bus analyzer software - with support for CANable / CANable2, CANFD, and other new features 项目地址: https://gitcode.com/gh_mirrors/ca/cangaroo Ca…...

AI大模型赋能数据治理:小白也能掌握的5个高频场景与避坑指南(收藏备用)

数据治理是企业数字化转型难题&#xff0c;AI大模型带来破局点。本文阐述大模型如何解决效率低、门槛高、适配弱等痛点&#xff0c;提供3个高价值落地场景&#xff08;非结构化数据治理、数据质量治理、数据资产化治理&#xff09;及5个高频踩坑陷阱&#xff0c;并给出最佳实践…...

【DSP学习】外部中断实验-基于普中DSP28335开发攻略

参考材料 普中DSP28335开发攻略 一、外部中断配置 1 失能 CPU 级中断&#xff0c;并初始化 PIE 控制器寄存器和 PIE 中断向量表在前面学习中断章节中&#xff0c;我们知道 F28335 的外设中断需通过 PIE 控制器来管理&#xff0c;因此需要初始化 PIE 相应的寄存器和中断向量表。…...

Dism++终极指南:5个核心功能让Windows系统优化变得简单快速

Dism终极指南&#xff1a;5个核心功能让Windows系统优化变得简单快速 【免费下载链接】Dism-Multi-language Dism Multi-language Support & BUG Report 项目地址: https://gitcode.com/gh_mirrors/di/Dism-Multi-language Dism是一款基于微软DISM技术开发的强大Win…...

Midjourney Minwa风格终极调试手册:7类常见失效场景(水墨晕染失真、线条断裂、文化符号错位)及对应--stylize动态补偿值

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney Minwa风格的本质解构与美学基因图谱 Minwa&#xff08;民画&#xff09;风格源自朝鲜半岛传统民间绘画&#xff0c;其核心并非写实再现&#xff0c;而是以象征性构图、平涂色块、非透视空间…...

对比按次与Token Plan套餐Taotoken如何帮助控制长期成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 对比按次与Token Plan套餐&#xff1a;Taotoken如何帮助控制长期成本 在接入和使用大模型API时&#xff0c;成本控制是开发者与团队…...