当前位置: 首页 > 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. 方便对用例内容的修改

http://www.lryc.cn/news/294715.html

相关文章:

  • Spring Boot整合MyBatis Plus实现基本CRUD与高级功能
  • CSS 闪电按钮效果
  • 【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案
  • 从头开始构建和训练 Transformer(上)
  • JVM-JVM内存结构(一)
  • React Emotion 如何优雅的使用样式(一)
  • 1+X运维试题样卷A卷(初级)
  • QT QDialog 中的按钮,如何按下后触发 accepted 消息?
  • seata分布式事务
  • Python HttpServer 之 简单快速搭建本地服务器,并且使用 requests 测试访问下载服务器文件
  • 【Python 实战】---- 实现批量给 pdf 插入 excel 动态生成的印章
  • 51单片机实验课二
  • 1-4 动手学深度学习v2-线性回归的简洁实现-笔记
  • SQL如何实现数据表行转列、列转行?
  • 【React】redux状态管理、react-redux状态管理高级封装模块化
  • HAProxy 和负载均衡概念简介
  • 【go】ent操作之CRUD与联表查询
  • 服务器性能监控管理方法及工具
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于FPGA和CAN协议2.0B的总线控制器研究与设计
  • 14.1 Ajax与JSON应用(❤❤)
  • ffmpeg命令生成器
  • JavaScript基础速成
  • openGauss学习笔记-215 openGauss性能调优-确定性能调优范围-性能日志
  • 在vs code的terminal,debug执行python main.py --train True
  • docker 简单项目
  • 计算机毕业设计 基于SpringBoot的线上教育培训办公系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 四、机器学习基础概念介绍
  • Excel设置单元格下拉框(poi)
  • api接口是什么意思,api接口该如何防护呢?
  • PMP资料怎么学?PMP备考经验分享