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

解密后,这里还是有一个列表

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

接口加密后再解密,这里已经是正确的手机号了

相关推荐
小卓(friendhan2005)1 天前
基于 Pytest + Requests + Allure 的博客系统API自动化测试实践
pytest
小卓(friendhan2005)1 天前
基于 Pytest + Selenium + Allure 的博客系统自动化测试实践
selenium·测试工具·pytest
金玉满堂@bj2 天前
Pytest 完整使用教程
运维·服务器·pytest
测试员周周2 天前
【Appium 系列】第10节-手势操作实战 — 滑动、拖拽、缩放与轻拂
linux·服务器·开发语言·人工智能·python·appium·pytest
金玉满堂@bj2 天前
pytest+uiautomation+allure 数据驱动桌面自动化项目搭建指南-yaml版本
运维·自动化·pytest
金玉满堂@bj2 天前
pytest+uiautomation+allure+Excel 数据驱动桌面自动化
自动化·excel·pytest
Be reborn3 天前
用例不是孤立执行的:依赖、变量池与 storage_state 设计
python·自动化·pytest
小陈的进阶之路3 天前
安集商城接口自动化项目架构介绍
python·自动化·pytest
测试员周周3 天前
【Appium 系列】第08节-pytest 集成 — conftest.py 中的 fixture 与 hook
开发语言·人工智能·python·功能测试·appium·测试用例·pytest
Be reborn3 天前
从一行 CSV 到一次浏览器操作:关键字驱动执行引擎设计
python·自动化·pytest