自动化测试:yaml结合ddt实现数据驱动!

2023-09-20 16:18:20

在python+unittest+selenium+ddt的框架中,数据驱动常见有以下几种方式实现:

  • Csv/txt
  • Excel
  • YAML

本文主要给大家介绍测试数据存储在YAML文件中的使用场景。首先先来简单介绍一下YAML。

1. 什么是YAML

一种标记语言类似YAML,它实质上是一种通用的数据串行化格式,由于其可读性高,用来表达数据序列化的格式,非常简洁和强大。

它的基本语法规则如下:

大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格。
缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

YAML 支持的数据结构有三种:

对象:键值对的集合,即python中的字典
数组:一组按次序排列的值,即列表
纯量:单个的、不可再分的值

如列表中数据[1, 2, ’a’, ’b’],在YAMLl中这样写, 横线+空格+数据:

字典数据这样写: key+冒号+空格+value

复杂数据结构,如列表嵌套字典,写成这样:

以上是关于YAML数据的基本表示方式,更多细节内容这里不一一详述。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036

2. 结合ddt实现数据驱动

假设对登录操作实现数据驱动。

▲ 首先创建YAML格式文件,添加多组测试数据。

在此添加三组,分别对应登录成功、账号错误及密码错误的三种场景:

▲ 第二步,对自动化代码做如下改动:

A. 对登录测试方法改写,定义传入参数,并在执行过程中使用改数据
B. 对测试方法添加file_data装饰器, 从指定yaml文件读取数据
C. 对测试类添加装饰器ddt, 启动运行

主要代码实现如下:

以上实现,非常简便: YAML管理数据非常方便,数据读取时不需要额外的代码进行读取,直接使用file_data装饰器即可。

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
 

在这里插入图片描述

更多推荐

2023年CSP-J 普及组第一轮题目和答案详解

家人们首战报捷!!!!才教了一个月的学生,赛前一周才报名CSP-J都没提前安排初赛内容临时周内加了两节课,总共初赛也就上了3次课准备了不到一周半,压线进了复赛,不得不说学生基础还不错,脑子也转的快,接受程度嘎嘎强,茶馆也好喝家人们钱不钱无所谓主要是爱教课。复赛加油冲了!2023年CSP-J(题目和答案)ps:详解之后更

数据分析的概念

一、数据分析的目的:把隐藏在一大批看来杂乱无章的数据中的信息集中和提炼出来,从而找出研究对象的内在规律。(主要在于分析目的及过滤脏数据)1.数据分析是有组织有目的地收集数据、分析数据,使之成为信息的过程。(这一过程是质量管理体系的支撑关键)。2.数据分析覆盖项目的整个寿命周期,例如:项目的前提调研、可行性分析、用户行为

这些英国学校接受ChatGPT帮助写作

自从ChatGPT展现了其高超的AI技术,全球年轻人纷纷对其表示喜爱,尤其是学生们,将其视为一个优化版的网络搜索引擎,可以用来提高学习效率。ChatGPT具有多样化的功能,可以节省研究复杂文献的时间,编写简单的Python代码,并辅助学生理解知识点。然而,这也引发了被学生用来作弊的担忧。因此,英国的各大学连续数月来一直

lv5 嵌入式开发-1 进程的创建和回收

目录1进程概念2进程内容3进程类型4进程状态5查看进程信息5.1相关命令pstop/proc5.2相关命令nicerenice5.3相关命令jobbgfg6子进程概念7子进程创建–fork8父子进程9思考10进程结束–exit/_exit11进程的回收11.1进程回收–wait11.2进程回收–waitpid掌握:进程

2、 MongoDB应用与开发

2.MongoDB应用与开发2.1.MongoDB安装l官网下载安装介质:TryMongoDBAtlasProducts|MongoDB选择对应版本修改环境变量vi/etc/profileexportMONGODB_HOME=/home/lijin/mongodbexportPATH=PATH:PATH:PATH:MO

Golang 基础面试题 01

Golang面试题合集.png背景在之前的文章中分享了k8s相关的面试题,本文我们重点来讨论和k8s密切相关的Go语言面试题。这几年随着云原生的兴起,大部分后端开发者,特别是Java开发者都或多或少的想学习一些Go相关的技能,所以今天分享的内容比较初级,适合Go语言初学者。image.png本文内容依然来自于这个仓库h

torch 和paddle 的GPU版本可以放在同一个conda环境下吗

新建conda虚拟环境,python版本3.8.17虚拟机,系统centos7,内核版本Linuxfastknow3.10.0-1160.92.1.el7.x86_64,显卡T4,nvidia-smi,460.32.03,对应cuda11.2,安装cuda11.2和cudnn,conda版本23.1conda安装pad

shiro反序列化漏洞Shiro-550/Shiro-721反序列化

文章目录shiro反序列化漏洞Shiro-550反序列化漏洞(CVE-2016-4437)漏洞简介漏洞原理Shiro-721反序列化漏洞(CVE-2019-12422)Shiro550和Shiro721的区别是什么漏洞指纹漏洞介绍漏洞原理攻击流程漏洞复现:CVE-2016-4437漏洞复现:CVE-2019-12422

腾讯mini项目-【指标监控服务重构】2023-07-17

今日已办根据导师的指导意见修改了otelclient相关配置的代码认真学习uptrace的文档,会比otel、signoz的好理解:什么是OpenTelemetryhttps://uptrace.dev/opentelemetry/architecture.html#opentelemetry-sdktrace部分介绍

软件设计模式系列之五——建造者模式

1模式的定义建造者模式是一种对象创建型设计模式,它将一个复杂对象的构建过程与其表示分离。这意味着你可以使用相同的构建过程来创建不同类型的对象,而不必关心每个对象的内部细节。这种模式适用于构建具有复杂配置的对象,例如具有多个可选组件的汽车。2结构建造者模式的结构包括以下几个关键部分:Director(指导者):负责指导构

设计模式:建造者模式

目录代码简单实现常用使用方法注解方法使用建造者模式总结建造者模式(BuilderPattern)是一种创建型设计模式,它通过将复杂对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。该模式将对象的构建过程封装在一个独立的建造者类中,客户端通过指定不同的建造者来构建不同的对象。在建造者模式中,有以下几个主要

热文推荐