全网超细,Pytest自动化测试YAML数据驱动实战(详全)

news2025/1/21 22:00:21

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

1、YAML简介

yaml是一种文件类型,往细了说,是一种通用的数据序列化格式;它与python中的字典数据类型大致相同。也是遵循key=value(键值对形式)的方式进行数据存储。

YAML是一个可读性高,用来表达数据序列化的格式。YAML参考了其他多种语言,包括:C语言、Python、Perl,并从XML、电子邮件的数据格式(RFC 2822)中获得灵感。Clark Evans在2001年首次发表了这种语言,另外Ingy döt Net与Oren Ben-Kiki也是这语言的共同设计者。当前已经有数种编程语言或脚本语言支持(或者说解析)这种语言。

YAML是"YAML Ain’t a Markup Language"(YAML不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言),但为了强调这种语言以数据做为中心,而不是以标记语言为重点,而用反向缩略语重命名。

yaml是一个多平台的数据格式,文件后缀名以.yaml或.yml命名。根据平台不同,命名不同,python中的后缀名是.yaml

2、YAML语法格式

1)yaml语法格式

区分大小写
使用空格缩进表示层级关系。切记不要使用tab缩进。

缩进空格数没有规定,按照个人喜好。
只要保证字段最左侧对其即可
数据模板是key: value的形式展示。value前面有一个空格。
yaml的#开头的表示注释的意思。(与python单行注释一样)

2)数据类型

yaml支持的数据格式如下
字符串;
整形;
浮点;
布尔;
日期;
空(null);
数组;

上述类型除数组外。其他数据类型无特殊语法格式。只需要输入数据,底层会自动转换类型。

说到数组,在yaml中想定义一个数组,需要在key值前增加一个"-"来表示数组。

示例:

- name: 张三
- age: 14


# 输出:[{'name': '张三'}, {'age': 14}]


- name
- age


# 输出:['name', 'age']

使用“-”来标注的数据类型,就会直接转换成Python中列表的形式。yaml中可以灵活运用嵌套规则,形成不同的数据格式:字典嵌套列表,列表嵌套字典等等

3)锚点

锚点主要作用就是引用公共变量。

语法:
‍设置锚点:
使用&锚点名称。可以标注锚点

引用锚点:
使用*+锚点名称。可以应用锚点
<< 锚点名称。表示将锚点追加到本数据组中

举一个简单例子来说明锚点作用:

张三和小李同属一家公司。在某些场景想要得到他们两人的职位信息。在某些场景只需要这两个人的个人信息。在yaml中就可以定义一个人员信息的数据和一个部门信息数据

A1

输出:

{
  'manager': {
    'name': '张三',
    'age': 34,
    'sex': '男'
  },
  'staff': {
    'name': '小李',
    'age': 22,
    'sex': '男'
  },
  'department': [
    {
      'Position_m': '经理'
    },
    {
      'name': '张三',
      'age': 34,
      'sex': '男',
      'level': 10
    },
    {
      'Position_s': '职员'
    },
    {
      'name': '小李',
      'age': 22,
      'sex': '男',
      'level': 5
    }
  ]
}

定义好数据源后,可以根据所需,根据key值,提取不同的数据。进行处理与应用。

4)强转

yaml中也可以进行强转。但是这种用法个人建议还是不要随便用。避免产生不必要的错误。

语法如下:
格式:源数据类型: !!强转目标类型 value — > data: !!int “55”

强转可以支持所有类型互相强转。这里就简单举例,不过多赘述。最后还是建议不要在 数据源 中进行强转!

3、YAML的读、写

yaml的读与写依赖python中的第三方包—pyyaml

使用pip install pyyaml下载yaml工具包
导入yaml模块。结合with open读取yaml文件

示例:

# 获取项目根路径
import os
import yaml


def get_cwd():# 获取项目根路径
    return os.getcwd()


# 读取yaml
def read_yaml(filename):
  # filename文件名称
    path = get_cwd() + "/" + filename
    with open(path, "r", encoding='utf-8') as f:
        return yaml.load(stream=f, Loader=yaml.FullLoader)


# 写入yaml
def write_yaml(filename, data):
    # filename文件名称
    # data:写入数据
    path = get_cwd() + "/" + filename
    with open(path, 'a', encoding='utf-8') as f:
        # allow_unicode 允许unicode编码格式
        yaml.dump(data, f, allow_unicode=True)

4、总结

首先,是应用方面,自动化的用例维护文件分很多种。有excel、txt、yaml等。

其中yaml由于其本身存储的数据格式是键值对的格式。更方便我们在参数化中提取、处理、应用。

第二点是现在的绝大多数项目都是基于restful框架进行开发的,这个框架的数据返回也是json数据格式。方方面都与yaml相契合。

其次。对于yaml的数据格式、类型、书写规范做了一个简单的梳理。在yaml中,使用空格来表示缩进。注意不能使用tab进行缩进。
最后,结合pyyaml进行读、写操作。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

在追逐梦想的道路上,每一次的挑战都是成长的催化剂。让我们以坚韧的毅力和无畏的勇气,勇往直前,铸就辉煌的人生篇章!

奋斗是梦想的翅膀,只有不断振翅翱翔,才能抵达成功的彼岸。让我们以坚定的信念和不懈的努力,破浪前行,创造属于自己的辉煌传奇!

梦想的舞台需要奋斗的灯光来照亮,每一次的努力都是对自我潜力的探索。让我们以坚定的决心和不屈的精神,勇往直前,铸就璀璨的人生篇章!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

acwing Linux 租云服务器环境配置

今天给大家讲解acwing Linux 租云服务器&环境配置&#xff0c;这里以阿里云为例子给大家讲解一下如何租用这个云服务器&#xff0c;现在有阿里云、华为云、腾讯云、京东云这么几个大的服务系统&#xff0c;我个人是喜欢华为云的嘻嘻&#xff0c;因为个人比较喜欢华为公司&a…

React 中的 ref 和 refs:解锁更多可能性(上)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

【ITK库学习】使用itk库进行图像配准:内插器(插值)

目录 1、itkNearestNeighborInterpolateImageFunction 最近点插值2、itkLinearInterpolateImageFunction 线性插值3、itkBSplineInterpolateImageFunction B样条插值4、itkWindowedSincInterpolateImageFunction 窗口化Sinc插值5、itkRayCastInterpolateImageFunction 投射插值…

阿里云ECS配置IPv6后,如果无法访问该服务器上的网站,可检查如下配置

1、域名解析到这个IPv6地址,同一个子域名可以同时解析到IPv4和IPv6两个地址&#xff0c;这样就可以给网站配置ip4和ipv6双栈&#xff1b; 2、在安全组规则开通端口可访问&#xff0c;设定端口后注意授权对象要特殊设置“源:::/0” 3、到服务器nginx配置处&#xff0c;增加端口…

虾皮跨境电商的收款方式及选择指南

虾皮&#xff08;Shopee&#xff09;作为一家知名的跨境电商平台&#xff0c;为卖家提供了多种收款方式&#xff0c;以满足不同卖家的需求。本文将介绍虾皮跨境电商平台的主要收款方式&#xff0c;并提供选择指南&#xff0c;帮助卖家根据自身需求和目标市场选择最合适的收款方…

AutoEncoder个人记录

原理 最常见的降维算法有主成分分析法PCA&#xff0c;通过对协方差矩阵进行特征分解而得到数据的主要成分&#xff0c;但是 PCA 本质上是一种线性变换&#xff0c;提取特征的能力极为有限。 AutoEncoder把长度为d_in输入特征向量变换到长度为d_out的输出向量&#xff0c;借助于…

深圳鼎信|输电线路防山火视频监控预警装置:森林火灾来袭,安全不留白!

受线路走廊制约和环保要求影响&#xff0c;输电线路大多建立在高山上&#xff0c;不仅可以减少地面障碍物和人类活动的干扰&#xff0c;还能提高线路的抗灾能力和可靠性。但同时也会面临其它的难题&#xff0c;例如森林火灾预防。今天&#xff0c;深圳鼎信智慧将从不同角度分析…

福FLUKE禄克8808A数字多用表

福禄克8808A&#xff0c;用于制造、研发、维修等应用的多功能数字表&#xff0c;FLUKE 8808A 5.5位数字多用表可以完成当今众多常用的测量工作。无论是功能测 展开 福禄克8808A&#xff0c;用于制造、研发、维修等应用的多功能数字表&#xff0c;FLUKE 8808A 5.5位数字多用表可…

NiNNet

目录 一、网络介绍 1、全连接层存在的问题 2、NiN的解决方案(NiN块) 3、NiN架构 4、总结 二、代码实现 1、定义NiN卷积块 2、NiN模型 3、训练模型 一、网络介绍 NiN&#xff08;Network in Network&#xff09;是一种用于图像识别任务的卷积神经网络模型。它由谷歌研究…

node-red:使用node-red-contrib-amqp节点,实现与RabbitMQ服务器(AMQP)的消息传递

node-red-contrib-amqp节点使用 一、简介1.1 什么是AMQP协议?1.2 什么是RabbitMQ? -> 开源的AMQP协议实现1.3 RabbitMQ的WEB管理界面介绍1.3 如何实现RabbitMQ的数据采集? -> node-red 二、node-red-contrib-amqp节点安装与使用教程2.1 节点安装2.2 节点使用2.2.1 amq…

tsconfig.app.json文件报红:Option ‘importsNotUsedAsValues‘ is deprecated...

在创建vue3 vite ts项目时的 tsconfig.json&#xff08;或者tsconfig.app.json&#xff09; 配置文件经常会报一个这样的错误&#xff1a; 爆红&#xff1a; Option ‘importsNotUsedAsValues’ is deprecated and will stop functioning in TypeScript 5.5. Specify compi…

干货:教你如何在JMeter中调用Python代码N种方法!

在性能测试领域&#xff0c;Jmeter已经成为测试专业人士的首选工具&#xff0c;用于模拟用户行为、测量响应时间、评估系统性能。而现在大部分接口都会涉及到验签、签名、加密等操作&#xff0c;为了满足特定需求&#xff0c;我们需要更多的灵活性&#xff0c;比如引入Python来…

推荐算法架构7:特征工程(吊打面试官,史上最全!)

系列文章&#xff0c;请多关注 推荐算法架构1&#xff1a;召回 推荐算法架构2&#xff1a;粗排 推荐算法架构3&#xff1a;精排 推荐算法架构4&#xff1a;重排 推荐算法架构5&#xff1a;全链路专项优化 推荐算法架构6&#xff1a;数据样本 推荐算法架构7&#xff1a;特…

QTNet:Query-based Temporal Fusion with Explicit Motion for 3D Object Detection

参考代码&#xff1a;QTNet 动机和出发点 自动驾驶中时序信息对感知性能具有较大影响&#xff0c;如在感知稳定性维度上。对于常见的时序融合多是在feature的维度上做&#xff0c;这个维度的融合主要分为如下两个方案&#xff1a; 1&#xff09;BEV-based方案&#xff1a;将之…

信号与线性系统翻转课堂笔记7——信号正交与傅里叶级数

信号与线性系统翻转课堂笔记7——信号正交与傅里叶级数 The Flipped Classroom7 of Signals and Linear Systems 对应教材&#xff1a;《信号与线性系统分析&#xff08;第五版&#xff09;》高等教育出版社&#xff0c;吴大正著 一、要点 &#xff08;1&#xff0c;重点&a…

2023年京东各行业年度数据报告-2023全年度空调十大热门品牌销量(销额)榜单

空调市场如今已经进入存量时代&#xff0c;加之消费市场的低迷&#xff0c;因此&#xff0c;2023年空调市场的整体销售下滑。 根据鲸参谋的统计数据&#xff0c;2023年度&#xff0c;京东平台上空调市场的总销量将近1400万&#xff0c;同比下滑约17%&#xff1b;销售额为410亿&…

CVE-2023-46604 Apache ActiveMQ RCE漏洞

一、Apache ActiveMQ简介 Apache ActiveMQ是一个开源的、功能强大的消息代理&#xff08;Message Broker&#xff09;&#xff0c;由 Apache Software Foundation 所提供。ActiveMQ 支持 Java Message Service&#xff08;JMS&#xff09;1.1 和 2.0规范&#xff0c;提供了一个…

金蝶云星空打开应用报错‘D:\WorkSpace\XXXX\XXXX_k3Cloud‘ is already locked.

文章目录 金蝶云星空打开应用报错D:\WorkSpace\XXXX\XXXX_k3Cloud is already locked.报错界面报错内容原因分析解决方案工作空间下清除项目Clean up应用下-清除SVN锁定 重新打开应用就可以了 金蝶云星空打开应用报错’D:\WorkSpace\XXXX\XXXX_k3Cloud’ is already locked. 报…

多相机系统通用视觉 SLAM 框架的设计与评估

Design and Evaluation of a Generic Visual SLAM Framework for Multi-Camera Systems PDF https://arxiv.org/abs/2210.07315 Code https://github.com/neufieldrobotics/MultiCamSLAM Data https://tinyurl.com/mwfkrj8k 程序设置 主要目标是开发一个与摄像头系统配置无关…

渲染控制之条件渲染

目录 1、使用规则 2、更新机制 3、使用if进行条件渲染 4、if ... else ...语句和子组件状态 5、嵌套if语句 ArkTS提供了渲染控制的能力。条件渲染可根据应用的不同状态&#xff0c;使用if、else和else if渲染对应状态下的UI内容。 1、使用规则 支持if、else和else if语句…