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

【yaml 文件使用】pytest+request 框架中 yaml 配置文件使用

又来进步一点点~~

背景:最近在学习pytest+request框架写接口测试自动化,使用yaml文件配置更方便管理用例中的数据,这样更方便

yaml 介绍:

  • 什么是 yaml 文件:YAML 是 “YAML Ain’t a Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。常用于全局配置文件或接口测试用例中。
  • 基本语法:
    (1)大小写敏感
    (2)使用缩进表示层级关系
    (3)缩进不允许使用tab,只允许空格
    (4)缩进的空格数不重要,只要相同层级的元素左对齐即可
    (5)'#'表示注释

yaml 数据类型:

yaml 支持以下几种数据类型:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

yaml 数组

  • 以 - 开头的行表示构成一个数组
  • key:value 表示字典
  • 以 - 开头,key1:value1,key2:value2 表示列表里面嵌套字典
    例如:- user1:user1 password :123456 -user2:user2
    表示[{‘user1’:‘user1’,‘passwd’:‘123456’},{‘user2’:‘user2’}]

配置yaml

1.安装: pip install pyyaml
在这里插入图片描述

  1. 创建config pkg ,创建一个带有.yaml 后缀的文件;
  2. 在接口中导入yaml文件,读取文件中内容

在这里插入图片描述

import requests
import yaml
class Test_mobileencrypt:def test_encryptmobile(self):with open(r'D:\pythonProject\conf\config.yaml','r',encoding='UTF-8') as f:mobile=yaml.load(f,Loader=yaml.FullLoader)print(mobile[0])
  1. 要注意的是,在这个yaml文件中,我的mobile写的是一个- 开头,这就是一个列表,首次取值的时候,我直接取了列表出来,于是加密的过程中多加了列表的内容。

在这里插入图片描述
解密后,这里还是有一个列表
在这里插入图片描述

解决办法:读取文件的时候,特意加了列表的切片,这样可以直接将列表中的数值取出来

在这里插入图片描述
接口加密后再解密,这里已经是正确的手机号了
在这里插入图片描述

相关文章:

  • 【云原生】k8s图形化管理工具之rancher
  • JVM篇:垃圾回收算法
  • 基于frp工具实现内网穿透,跨局域网远程SSH登录
  • Spring Boot整合Redis的高效数据缓存实践
  • 《30天自制操作系统》 第一周(D1-D7) 笔记
  • GraphicsMagick 的 OpenCL 开发记录(二十五)
  • Vue2 - keep-alive 作用和原理
  • Sql server强制走索引
  • 【工具变量】中国各省市级是否属于“知识产权示范区”匹配数据(2010-2024年)
  • 强化学习 - Trust Region Policy Optimization (TRPO)
  • 2、互信息(Mutual Information)
  • CSS探索浏览器兼容性
  • 【C++干货铺】C++中的IO流和文件操作
  • Java基础知识-异常
  • Delphi 7 IdHTTP POST 中文乱码得解决
  • 【React系列】如何构建React应用程序
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • Git 使用集
  • github指令
  • java 多线程基础, 我觉得还是有必要看看的
  • Java 内存分配及垃圾回收机制初探
  • Material Design
  • MySQL数据库运维之数据恢复
  • Vue 动态创建 component
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 如何进阶一名有竞争力的程序员?
  • 网络应用优化——时延与带宽
  • 移动端解决方案学习记录
  • 选择阿里云数据库HBase版十大理由
  • # 安徽锐锋科技IDMS系统简介
  • #includecmath
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (07)Hive——窗口函数详解
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (转)visual stdio 书签功能介绍
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • **PHP分步表单提交思路(分页表单提交)
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .net core webapi 大文件上传到wwwroot文件夹
  • .NET Core中Emit的使用
  • .net mvc 获取url中controller和action
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET6 命令行启动及发布单个Exe文件
  • .Net8 Blazor 尝鲜
  • .vue文件怎么使用_vue调试工具vue-devtools的安装
  • /etc/sudoers (root权限管理)
  • ??myeclipse+tomcat
  • @ModelAttribute 注解