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

news2024/11/28 6:44:05

在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装饰器即可。

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

软件测试面试文档

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

在这里插入图片描述

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

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

相关文章

方案:浅析AI视频分析与视频监控技术的工厂车间智能化监管方案

一、方案背景 工厂生产车间一般是从原材料到成品的流水作业,有大量器械和物料。为保障车间财产安全并提高生产效率,需要进行全面的监管。在生产制造流水线的关键工序中,不仅有作业过程监管需求,同时,也存在生产发生异…

全网最全知识图谱讲解!

什么是知识图谱 知识图谱标准化白皮书定义:知识图谱(Knowledge Graph)以结构化的形式描述客观世界中概念、实体及其关系,将互联网的信息表达成更接近人类认知世界的形式,提供了一种更好地组织、管理和理解互联网海量信…

Jmeter怎么实现接口关联?

用于接口测试时,后一个接口经常需要用到前一次接口返回的结果,应该如何获取前一次请求的结果值,应用于后一个接口呢,拿一个登录的例子来说明如何获取。 1、打开jmeter,新建一个测试计划,在测试计划里新建一…

分享基于SringBoot足球训练俱乐部系统Python训练打卡系统(源码+调试+lw)

💕💕作者:计算机源码社 💕💕个人简介:本人七年开发经验,擅长Java、Python、PHP、.NET、微信小程序、爬虫、大数据等,大家有这一块的问题可以一起交流! 💕&…

SMS--短信服务

1 短信服务介绍 短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力。 2 短信服务使用 接下来,我们使用短信验证码功能来演示短信服务的使用。流程如下: 2.1 准备工作 2.1.1 实名认证 https://help.aliyun.com/document_detail…

智能箱式浪涌保护器综合行业解决方案

智能箱式浪涌保护器是一种集成了多种功能的浪涌保护装置,它可以对电力系统、通信系统、计算机系统、工业控制系统等设备提供有效的防雷和过电压保护。本文将详细介绍智能箱式浪涌保护器的作用和原理,以及在不同行业中的应用方案,并参考相关的…

【Hash表】两数之和-力扣 1 题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

【国产32位mcu】电动车控制芯片CS32F031C8T6的应用

近年来,随着“新国标”的落地,双轮电动车在智能化、强性能、安全性等方面不断演进,带动了新一轮的换车高峰。电动车控制器作为双轮电动车的核心部件,迎来新的增长。 芯海科技32位MCU CS32F031C8T6,作为电动车控制器的…

多因素身份验证MFA功能

随着信息技术的不断进步,网络威胁也随之不断升级和演化。为了保护敏感数据和网络资源,企业和组织需要采取更多的安全措施强化信息安全。多因素身份验证(MFA)已经成为了现代安全战略的核心组成部分之一。 在这篇文章中&#xff0…

软件工程第一次作业参考答案

题目 名词解释:软件危机、软件、软件工程、软件生命周期、瀑布模型、原型模型、增量模型、喷泉模型、敏捷过程模型。 答案 软件危机:软件危机是指在软件开发过程中所面临的一系列问题和挑战,包括成本超支、进度延误、质量不达标等。 软件…

机器学习之感知机原理及Python实现

机器学习算法感知机(perceptron)。感知机是一种较为简单的二分类模型,但由简至繁,感知机却是神经网络和支持向量机的基础。感知机旨在学习能够将输入数据划分为1/-1的线性分离超平面,所以说整体而言感知机是一种线性模型。因为是线性模型&…

全志H3 Linux编译尝试

全志H3 Linux编译尝试 主要参考:https://blog.csdn.net/qq_40731414/article/details/118684473部分内容介绍来自GPT,但是代码部分都会进行测试 一、简介 Linux编译的作用: 生成可执行的内核映像:编译Linux内核的主要目的是从源代…

使用GPT训练中秋古诗写作讲解

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师…

Linux CentOS7 lrzsz工具

一、简介 对经常使用linux系统IT人来说,linux系统的文件上传下载是很频繁的,linux默认支持sftp上传下载,CRT等工具集成了SecureFX,Xftp与xshell都可以实现文件的上传下载。今天要介绍的lrzsz是一款在linux里可代替ftp上传和下载的…

开发需知的文件加密与解密

背景 最近团队遇到一个小需求,存在两个系统 A、B,系统 A 支持用户在线制作皮肤包,制作后的皮肤包用户可以下载后,导入到另外的系统 B 上。皮肤包本身的其实就是一个 zip 压缩包,系统 B 接收到压缩包后,解压…

【xshell7】设置语法高亮(突出显示集)方式

设置高亮方式 增加文件路径 将下面内容起名 以.hls结尾,放入截图位置,然后按照步骤一选择即可 [Keyword_0] TermBackColor1 Underline1 Bold0 Strikeout0 Keyword[_a-z0-9-](.[_a-z0-9-])*[a-z0-9-](.[a-z0-9-])* DescriptionEmail address BackColorIn…

本地docker注册证书docker login连接到harbor仓库、利用shell脚本批量将镜像pull、tag、push到私有harbor仓库

1. 本地docker注册证书docker login连接到harbor仓库: 我们使用docker login/push/pull去与Harbor打交道,上传下载镜像等。 但是可能会出现x509: certificate signed by unknown authority之类的错误。 [roottest01 harbor.dev]# docker login harbor.d…

linux和windows选哪个?

linux和windows选哪个? 每年在大学中都会有这么一批学生: 沉浸在安装Linux系统,安装双系统,使用Linux系统看看电影,搞一搞炫酷的桌面效果。 最后收获了啥? 怕是啥也没有,命令学会了几个&…

免费的AI写作软件-智能AI写作工具

我们要谈的话题是AI写作,尤其是免费AI写作,以及147SEOAI写作免费工具。您是否曾经为了创作文章而感到煞费苦心?是否一直在寻找一种能够轻松生成高质量文章的方法? 147GPT批量文章生成工具​www.147seo.com/post/2801.html​编辑ht…

C++运算符优先级一览表

VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...&a…