【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写的是一个- 开头,这就是一个列表,首次取值的时候,我直接取了列表出来,于是加密的过程中多加了列表的内容。

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/433132.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea用version标签配置版本号报错版本号missing

问题描述&#xff1a; 用<mybatis-plus.version>3.3.2</mybatis-plus.version>配置pom的版本号&#xff0c;报错 dependencies.dependency.version for com.baomidou:mybatis-plus-boot-starter:jar is missing. line 33, column 21详细报错如下&#xff1a; 详…

银行数据仓库体系实践(3)--数据架构

狭义的数据仓库数据架构用来特指数据分布&#xff0c;广义的数据仓库数据架构还包括数据模型、数据标准和数据治理。即包含相对静态部分如元数据、业务对象数据模型、主数据、共享数据&#xff0c;也包含相对动态部分如数据流转、ETL、整合、访问应用和数据全生命周期管控治理。…

uniapp导入uView组件库

目录 准备工作 1. 新建一个项目 2. 导入uview组件库 3. 关于SCSS 配置步骤 1. 引入uView主JS库 2. 在引入uView的全局SCSS 3. 引入uView基础样式 4. 配置easycom组件模式 添加效果实验运行即可成功 准备工作 1. 新建一个项目 2. 导入uview组件库 在进行配置之前&#x…

Doris 与 Clickhouse 对比(一)

1. 常用引擎 ☕️ Doris 表数据模型 duplicate key &#x1f3ac; 场景&#xff1a;适用于数据无需提前聚合的分析业务。 ⚠️ 注意点&#xff1a;只指定排序列&#xff0c;相同的行并不会合并。 unique key &#x1f3ac; 场景&#xff1a;适用于有更新需求的业务。 ⚠…

RustDesk私有化部署,自建远程桌面搭建教程

以linux操作系统为例&#xff1a; 解压安装 # 使用wget进行下载1.1.8-2版本&#xff08;最新版本可以看上述发布地址&#xff09; wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.8-2/rustdesk-server-linux-amd64.zip # 使用unzip解压 unzip rust…

Debezium发布历史90

原文地址&#xff1a; https://debezium.io/blog/2020/04/09/using-debezium-with-apicurio-api-schema-registry/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. 将 Debezium 与 A​​picurio API 和架构注册表…

C++面试:散列表

目录 1. 散列表的基本概念 散列表的定义 散列函数 哈希冲突 2. 处理冲突的方法 链地址法&#xff08;Separate Chaining&#xff09; 开放地址法 再散列 3. 散列表的性能分析 1. 平均查找长度&#xff08;ASL&#xff09; 2. 负载因子&#xff08;Load Factor&#…

java的==运算符和equals详解

①chatgpt的解释 在Java中&#xff0c;和equals都是用于比较两个对象的操作符&#xff0c;但它们的行为和用途有所不同。 操作符&#xff1a; 对于基本数据类型&#xff0c;比较的是它们的值是否相等。例如&#xff0c;int a 5; int b 5; System.out.println(a b); // 输出t…

TensorFlow2实战-系列教程1:回归问题预测

&#x1f9e1;&#x1f49b;&#x1f49a;TensorFlow2实战-系列教程 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Jupyter Notebook中进行 本篇文章配套的代码资源已经上传 1、环境测试 import tensorflow as tf import numpy as np tf.__version__打印结果 ‘…

Flutter环境搭建【win10虚拟机】+夜神模拟器【主机】

Flutter环境搭建 0 Android Studio 与 VS Code 资源消耗对比1 系统配置要求2 Flutter SDK2.1 获取 Flutter SDK2.2 解压2.3 更新 path 环境变量Dart SDK 要兼容 Flutter SDK双击 flutter_console.bat 输入 flutter doctor 检测环境 3 VS code 与插件3.1 安装 VS code3.2 安装 f…

浅谈WPF之样式与资源

WPF通过样式&#xff0c;不仅可以方便的设置控件元素的展示方式&#xff0c;给用户呈现多样化的体验&#xff0c;还简化配置&#xff0c;避免重复设置元素的属性&#xff0c;以达到节约成本&#xff0c;提高工作效率的目的&#xff0c;样式也是资源的一种表现形式。本文以一个简…

Hadoop-MapReduce-MRAppMaster启动篇

一、源码下载 下面是hadoop官方源码下载地址&#xff0c;我下载的是hadoop-3.2.4&#xff0c;那就一起来看下吧 Index of /dist/hadoop/core 二、上下文 在上一篇<Hadoop-MapReduce-源码跟读-客户端篇>中已经将到&#xff1a;作业提交到ResourceManager&#xff0c;那…