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

序列化和反序列化、pytest-DDT数据驱动

序列化

序列化就是将对象转化成文件

python转成json

import jsondata = {"数字": [1, 1.1, -1],"字符串": ["aaaa", 'bbbb'],"布尔值": [True, False],"空值": None,"列表": [[1, 2, 3], [4, 5, 6], [7, 8, 9]],"字典": [{"a": 1, "b": 2}, {"c": 3}]
}with open("data.json", "w", encoding="utf-8") as f:s = json.dumps(data, ensure_ascii=False)f.write(s)

python转成yaml

import yamldata = {"数字": [1, 1.1, -1],"字符串": ["aaaa", 'bbbb'],"布尔值": [True, False],"空值": None,"列表": [[1, 2, 3], [4, 5, 6], [7, 8, 9]],"字典": [{"a": 1, "b": 2}, {"c": 3}]
}with open("data.yaml", "w", encoding="utf-8") as f:s = yaml.safe_dump(data, allow_unicode=True)f.write(s)

反序列化

反序列化就是将文件转化成对象

json转成python

import jsonwith open("data.json", "r", encoding="utf-8") as f:s = json.loads(f.read())print(s)

yaml转成python

import yamlwith open("data.yaml", "r", encoding="utf-8") as f:s = yaml.safe_load(f.read())print(s)# yaml可以完全兼容json
with open("data.json", "r", encoding="utf-8") as f:s = yaml.safe_load(f.read())print(s)

pytest的DDT数据驱动

DDT:数据驱动测试

DDT数据驱动的本质:测试框架根据数据文件的内容,来决定如何执行测试用例

实现思路:

(1)将用例参数的数据存放在(.json、.yaml等)文件中

(2)读取文件中的数据

(3)将数据传递给pytest(根据数据创建用例)

(4)在用例中使用数据

举例:

将从ddt_yaml.yaml文件中读取的数据内容打包成列表传递给@pytest.mark.parametrize()

yaml里面的内容(这里给出的数据不是纯yaml语法的格式):

- [1, 2]
- [2, 3]
- [3, 4]
- [0, -1]

用例实现: 

mport pytest
import yamldef add(a, b):return a + bwith open("ddt_yaml.yaml", "r", encoding="utf-8") as f:l = yaml.safe_load(f.read())print(l)@pytest.mark.parametrize("a, b",l,
)
def test_abc(a, b):c = add(a, b)assert c == a + b

优点

1. 方便用例的增加和减少(只需要改变文件里面的数据组数就可以控制用例数量)

2. 方便对用例内容的修改

相关文章:

序列化和反序列化、pytest-DDT数据驱动

序列化 序列化就是将对象转化成文件 python转成json import jsondata {"数字": [1, 1.1, -1],"字符串": ["aaaa", bbbb],"布尔值": [True, False],"空值": None,"列表": [[1, 2, 3], [4, 5, 6], [7, 8, 9]],&…...

Spring Boot整合MyBatis Plus实现基本CRUD与高级功能

文章目录 1. 引言2. 项目搭建与依赖配置2.1 添加MyBatis Plus依赖2.2 配置数据源与MyBatis Plus 3. 实现基本CRUD功能3.1 创建实体类3.2 创建Mapper接口3.3 实现Service层3.4 控制器实现 4. 高级功能实现4.1 自动填充功能4.2 乐观锁功能4.3 逻辑删除功能 5. 拓展:My…...

CSS 闪电按钮效果

<template><view class="const"><div class="voltage-button"><button>闪电按钮</button><svg version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox=&q…...

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案

【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案 大家好 我是寸铁&#x1f44a; 总结了一篇Error: only one service expected goctl一键转换生成rpc服务错误解决方案的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 问题背景 今天寸铁在…...

从头开始构建和训练 Transformer(上)

1、导 读 2017 年&#xff0c;Google 研究团队发表了一篇名为《Attention Is All You Need》的论文&#xff0c;提出了 Transformer 架构&#xff0c;是机器学习&#xff0c;特别是深度学习和自然语言处理领域的范式转变。 Transformer 具有并行处理功能&#xff0c;可以实现…...

JVM-JVM内存结构(一)

程序计数器 Program Counter Register程序计数器(寄存器) 程序计数器在物理层上是通过寄存器实现的 作用&#xff1a;记住下一条jvm指令的执行地址特点 是线程私有的(每个线程都有属于自己的程序计数器)不会存在内存溢出 虚拟机栈 每个线程运行时所需要的内存称为虚拟机栈…...

React Emotion 如何优雅的使用样式(一)

简介 Emotion 是一个专为使用 JavaScript 编写 css 样式而设计的库。它提供了强大且可预测的样式组合&#xff0c;以及源映射、标签和测试实用程序等功能为开发人员提供了出色的体验&#xff0c;并且支持字符串和对象样式。 与框架无关的样式应用包 Emotion中提供了一个与框…...

1+X运维试题样卷A卷(初级)

云计算A卷 单选题(200分) 1.在OSI模型中,HTTP协议工作在第()层,交换机工作在第()层。(10分) (答案正确:10分) A、7/3 B、7/2 (正确答案) C、6/3 D、6/2 2.Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令。(10分…...

QT QDialog 中的按钮,如何按下后触发 accepted 消息?

QT 作为跨平台的系统&#xff0c;对话框并没有采用 Windows API 那种模式&#xff0c;通过返回 mrOK、mrCancel 等结果告诉调用方结果&#xff0c;而是采用了 accepted、rejected 等信号确定执行结果。下面介绍几种出发这些信号的方法。 1. 在按钮的 clicked 槽函数中触发 acc…...

seata分布式事务

文章目录 1、分布式事务1.1 事务的ACID原则原子性一致性隔离性持久性 1.2 分布式事务的问题示例代码准备环境1. seata_demo数据库2. 启动nacos seata-demo父工程pom.xml order-servicepom.xmlapplication.ymlOrderApplicationOrderControllerOrderServiceImplAccountClientStor…...

Python HttpServer 之 简单快速搭建本地服务器,并且使用 requests 测试访问下载服务器文件

Python HttpServer 之 搭建本地服务器,并且使用requests访问下载服务器文件测试 目录 Python HttpServer 之 搭建本地服务器,并且使用requests访问下载服务器文件测试...

【Python 实战】---- 实现批量给 pdf 插入 excel 动态生成的印章

1. 需求 想要能否实现批量自动为多个pdf加盖不同六格虚拟章(不改变pdf原有分辨率和文字可识别性);改在pdf首页上方空白位置,一般居中即可;如可由使用者自主选择靠页边距更好,以便部分首页上方有字的文件时人工可微调位置;从上而下,自左往右分别对应 excel 中各个字段;…...

51单片机实验课二

实验任务一&#xff1a; 用C语言设计实现8个led灯左右移动显示效果。具体要求如下&#xff1a; 左移时&#xff0c;8个灯中的奇数位灯依次点亮&#xff1b; 右移时&#xff0c;8个灯中的偶数灯依次点亮&#xff1b; 如此循环往 #include <REGX52.H> void Delay(unsi…...

1-4 动手学深度学习v2-线性回归的简洁实现-笔记

通过使用深度学习框架来简洁地实现 线性回归模型 生成数据集 import numpy as np import torch from torch.utils import data # 从torch.utils中引入一些处理数据的模块 from d2l import torch as d2ltrue_w torch.tensor([2,-3.4]) true_b 4.2 features, labels d2l.syn…...

SQL如何实现数据表行转列、列转行?

SQL行转列、列转行可以帮助我们更方便地处理数据&#xff0c;生成需要的报表和结果集。本文将介绍在SQL中如何实现数据表地行转列、列转行操作&#xff0c;以及实际应用示例。 这里通过表下面三张表进行举例 SQL创建数据库和数据表 数据表示例数据分别如下&#xff1a; data_…...

【React】redux状态管理、react-redux状态管理高级封装模块化

【React】react组件传参、redux状态管理 一、redux全局状态管理1、redux概述2、redux的组成1.1 State-状态1.2 Action-事件1.3 Reducer1.4 Store 3、redux入门案例1.1 前期准备1.2 构建store1.2.1 在src下新建store文件夹1.2.2 在store文件夹下新建index.ts文件1.2.3 在index.t…...

HAProxy 和负载均衡概念简介

简介 HAProxy&#xff0c;全称高可用代理&#xff0c;是一款流行的开源软件 TCP/HTTP 负载均衡器和代理解决方案&#xff0c;可在 Linux、macOS 和 FreeBSD 上运行。它最常见的用途是通过将工作负载分布到多台服务器&#xff08;例如 Web、应用程序、数据库&#xff09;上来提…...

【go】ent操作之CRUD与联表查询

文章目录 1 CRUD1.1 创建1.1.1 单条创建1.1.2 批量创建 1.2 查找1.2.1 查询单条 / 条件准确查询1.2.2 查询单条 / 条件模糊查询1.2.3 查询单条 / In1.2.4 查询全部 1.3 更新1.4 删除 2 联表查询2.1 O2M&#xff08;一对多查询&#xff09;2.1.1 增加Edge2.1.2 查询方法2.1.2.1 …...

服务器性能监控管理方法及工具

服务器是组织数据中心的主干&#xff0c;无论是优化的用户体验&#xff0c;还是管理良好的资源&#xff0c;服务器都能为您完成所有工作&#xff0c;保持服务器随时可用和可访问对于面向业务的应用程序和服务以最佳水平运行至关重要。 理想的服务器性能需要主动监控物理和虚拟…...

AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA和CAN协议2.0B的总线控制器研究与设计

目录 前言 研究现状分析 2 CAN总线协议 2.1 CAN总线基本概念 2.2 物理层...

大三下期末突击指南:从编译原理到大数据,这6门课我是怎么一周内搞定的

大三下期末突击指南&#xff1a;从编译原理到大数据&#xff0c;这6门课我是怎么一周内搞定的 距离期末考试只剩一周&#xff0c;面对算法分析、编译原理、嵌入式这些硬核课程&#xff0c;你是不是已经开始焦虑了&#xff1f;别担心&#xff0c;去年我也经历过同样的困境。通过…...

终极指南:Brontes区块链分析引擎的Cargo.toml依赖管理策略

终极指南&#xff1a;Brontes区块链分析引擎的Cargo.toml依赖管理策略 【免费下载链接】brontes A blazingly fast general purpose blockchain analytics engine specialized in systematic mev detection 项目地址: https://gitcode.com/GitHub_Trending/br/brontes B…...

华为OD面试官最爱问的10个Python八股文,我这样答拿到了Offer

华为OD Python面试实战指南&#xff1a;10个高频问题的深度解析与应答策略 面试开场&#xff1a;如何用技术叙事打动面试官 去年冬天&#xff0c;我坐在华为OD的会议室里&#xff0c;手指不自觉地敲击着桌面。面试官推了推眼镜&#xff0c;抛出了第一个Python问题。那一刻我突然…...

ROS实战:UZH-FPV数据集下PL-EVIO与主流VIO算法的性能对比

1. UZH-FPV数据集与无人机视觉里程计的挑战 UZH-FPV数据集是苏黎世联邦理工学院发布的专门针对高速无人机场景的多模态数据集。这个数据集最大的特点在于它完整记录了无人机在高速机动飞行&#xff08;最高速度超过10m/s&#xff09;时的多传感器数据&#xff0c;包括双目事件相…...

基于Dify的AI数据采集与整理工具设计与实现

基于Dify的AI数据采集与整理工具设计与实现 1. 引言 1.1 背景与需求 在信息爆炸的时代,新闻网站、人物资料库等不断产生海量数据。传统手动采集整理方式效率低下,难以满足实时性、准确性和规模化的要求。本工具旨在利用Dify平台的强大编排能力,结合AI大语言模型(LLM)和…...

3步解决字幕处理90%的麻烦:BiliBiliCCSubtitle效率革命

3步解决字幕处理90%的麻烦&#xff1a;BiliBiliCCSubtitle效率革命 【免费下载链接】BiliBiliCCSubtitle 一个用于下载B站(哔哩哔哩)CC字幕及转换的工具; 项目地址: https://gitcode.com/gh_mirrors/bi/BiliBiliCCSubtitle 开篇&#xff1a;三个真实场景的效率反差 场景…...

51单片机开发环境搭建指南:从Keil5安装到程序烧录全流程

1. 51单片机开发环境搭建全攻略 刚接触51单片机的朋友可能会被一堆陌生的名词搞懵——Keil5、CH340、HEX文件、烧录工具...别担心&#xff0c;我当初也是这样过来的。今天我就用最直白的语言&#xff0c;手把手带你搭建完整的开发环境。整个过程就像组装乐高积木&#xff0c;只…...

intv_ai_mk11部署避坑指南:端口映射失败、响应延迟、乱码重复等问题解决方案

intv_ai_mk11部署避坑指南&#xff1a;端口映射失败、响应延迟、乱码重复等问题解决方案 1. 环境准备与快速部署 1.1 系统要求 操作系统&#xff1a;Ubuntu 20.04/22.04 LTSGPU&#xff1a;NVIDIA显卡&#xff08;至少16GB显存&#xff09;内存&#xff1a;32GB以上存储&…...

在ALV当中上传的excel形式的layout,没法删除怎么办?

明明点了上边的删除键&#xff08;-&#xff09;也保存了&#xff0c;下次进入还是存在。OAOR,上传的模板都在里面&#xff0c;点击删除即可...

CBAM实战指南:如何通过通道与空间注意力提升CNN模型性能

1. 为什么你的CNN模型需要CBAM注意力模块 如果你正在使用卷积神经网络&#xff08;CNN&#xff09;处理图像分类任务&#xff0c;可能会遇到这样的困境&#xff1a;模型在训练集上表现不错&#xff0c;但测试集准确率始终卡在一个瓶颈。这时候不妨试试CBAM&#xff08;Convolu…...