DDT+yaml实现数据驱动接口自动化

 前言

在之前的文章中我们知道了yaml文件可以进行接口自动化。除了yaml文件,Excel文档也可以用来编写自动化测试用例。

一定很想知道这两者有什么区别吧?

1、Excel使用简单,维护难,多种数据类型转换起来比较复杂

2、yaml学习稍微更难一些(实际学习起来并不难),使用简单、更方便,适用性更强,流行的接口自动化框架都是基于yaml(推荐使用yaml文件方式)

下面详细介绍ddt是如何数据驱动yaml文件进行自动化测试的?

1、上篇已经学习了yaml文件的基本语法,创建testcase.yaml文件,我们把需要测试的请求接口按照请求URL、请求头、请求参数转化成yaml语法格式,用例数组可复制粘贴多个即可批量读取测试用例

在这里插入图片描述

2、在使用DDT数据驱动前,我们得了解一下基本的知识

ddt主要以装饰器的形式来调用

①@ddt.ddt()——用来装饰类,表示当前类使用ddt框架

②@ddt.data()——用来装饰函数用例,给测试用例传数据

③@ddt.unpack()——对传入的数据进行解包

④@ddt.file_data()——装饰函数用例,直接读取yaml文件

[重点]3、创建test_api.py文件创建类进行ddt数据读取接口用例,进行接口自动化测试请求
在这里插入图片描述

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

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

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

相关文章

Rust教程:How to Rust-变量

本文为第1篇 专栏简介 本专栏是优质Rust技术专栏,推荐精通一门技术栈的蟹友,不建议完全无计算机基础的同学 感谢Rust圣经开源社区的同学,为后来者提供了非常优秀的Rust学习资源 本文使用: 操作系统macOS Sonoma 14 / Apple M…

MySQL通过SQL语句进行递归查询

这里主要是针对于MySQL8.0以下版本,因为MySQL8.0版本出来了一个WITH RECURSIVE函数专门用来进行递归查询的 先看下表格数据,就是很普通的树结构数据,通过parentId关联上下级关系 下面我们先根据上级节点id递归获取所有的下级节点数据&#x…

Jenkins 节点该如何管理?

Jenkins 拥有分布式构建(在 Jenkins 的配置中叫做节点),分布式构建能够让同一套代码在不同的环境(如:Windows 和 Linux 系统)中编译、测试等 Jenkins 的任务可以分布在不同的节点上运行 节点上需要配置 Java 运行时环境,JDK 版本大于 1.5 节…

代码随想录算法训练营第day16|104.二叉树的最大深度 559.n叉树的最大深度、111.二叉树的最小深度、 222.完全二叉树的节点个数

104.二叉树的最大深度 559.n叉树的最大深度在 这几道题完全可以用二叉树层序遍历做,具体实现参考上一篇文章代码随想录算法训练营第day15|二叉树层序遍历、 226.翻转二叉树 ●、101.对称二叉树 2-CSDN博客

2024春招算法打卡-腾讯WXG

大数相乘 class Solution {public String multiply(String num1, String num2) {String ZERO_STR "0";String ONE_STR "1";// 其中一个为0直接返回0if(ZERO_STR.equals(num1) || ZERO_STR.equals(num2)){return ZERO_STR;}// 其中一个为1直接返回另一…

JAVA学习-IO.输入输出流

Java的输入输出流(IO)是用于与外部设备(如文件、网络连接等)进行数据交互的机制。IO流是Java中处理输入和输出的一种方式,它以流的方式来读取输入或写入输出。 Java的IO库包括了多个输入输出流类,常见的输入…

C语言-写一个简单的Web服务器(一)

基于TCP的web服务器 概述 C语言可以干大事,我们基于C语言可以完成一个简易的Web服务器。当你能够自行完成web服务器,你会对C语言有更深入的理解。对于网络编程,字符串的使用,文件使用等等都会有很大的提高。 关于网络的TCP协议在…

算法练习第十七天| 110.平衡二叉树 、 257. 二叉树的所有路径、 404.左叶子之和 [主要使用递归的方式]

110.平衡二叉树 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

zookeeper Study

zk介绍;一种分布式协调服务。 分布式锁,集群选举,数据同步 。 zk都能进行操作,redis,kafka,rabbitmq,都能够用zk做协调管理服务。关键时zk简单操作。 应用说明: 简单介绍一下流程 &…

芯片工程系列(2)传统封装(引线键合与裸片贴装)

英文缩写 Die:即为wafer上切割出来的芯片Wire Bonding:引线键合Dicing:晶圆切割Bias voltage:偏压lead frame:引线框架First Bond:一次键合Second Bond:二次键合PCB:印制电路板&…

JMH287亲测【鸣潮】一键内测风景端V1.0.2已整理并录制视频教学

资源介绍: 否需要虚拟机:否 文件大小:压缩包约15G 支持系统:win7、win10、win11 硬件需求:运行内存16G 4核及以上CPU独立显卡 资源截图: 下载地址: JMH287【鸣潮】一键端 [V1.0.2]

给攻击扫站惊喜大礼包,压缩文件空链接直接跳转50G大文件

给攻击扫站惊喜大礼包,压缩文件空链接直接跳转50G大文件 方法一 在 nginx 配置里加了个下载空连接 ZIP/RAR 等链接,直接跳转 50G 的大文件,正常链接不受影响 location ~ /(.*\.7z|.*\.zip|.*\.rar|.*\.tar|.*\.gz|.*\.tar\.gz)$ {if (!-f $re…

题解:CF1929C(Sasha and the Drawing)

题解:CF1929C(Sasha and the Drawing ) 一、 理解题意 CF链接 洛谷链接 大佬syz带着 a a a 元来到赌场,赌场的规则如下: 对于每一轮,假设选手下注 y y y 元钱( y y y 应正整数,并…

Java面试题分享

1、JAVA面试题分享 大家在找工作的的时候总是会看对应专业的面试题,java方面的更是层出不穷。 网络搜寻也很多,不知道看那个好。 我在这里分享我在找工作和平常会复习的一套面试题。 是之前在csdn的一个博主星球下载的。 里面包含了基础,集…

SpringMVC09、Ajax

9、Ajax 9.1、简介 AJAX Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。 Ajax 不是一种新的编程语言,而是一种用于创建更好更快以及交互…

nodejs创建的‘无后缀‘文件Win11无法删除、无法修改后缀、360文件粉碎无法粉碎

版本信息 操作系统版本:win11nodejs:v14.16.0 场景: 接收了base64格式数据字符串(data:*/*;base64,xxxxxx就是这种样式的);要将其存储于本地。将字符串,号后的字符串转二进制写入本地。内容各种的都获取…

Spring Security的API Key实现SpringBoot 接口安全

Spring Security的API Key实现SpringBoot 接口安全 Spring Security 提供了各种机制来保护我们的 REST API。其中之一是 API 密钥。API 密钥是客户端在调用 API 调用时提供的令牌。 在本教程中,我们将讨论如何在Spring Security中实现基于API密钥的身份验证。 API…

CSP初赛备考—汉字与运算

汉字 英文字符 英文字符的编码有两种:①ASCII标准码,7位(128个字符)②ASCII扩展吗,8位(256个字符) 中文字符 汉字分为两级:①一级汉字:3755个,按汉语拼音字母的次序排列。②二级汉字:3008个,按偏旁部首排列。 那么,怎么编码呢?要使用区位码和字形码等等。 区…

Docker环境搭建和监控备份

1. 解释Docker中的容器和镜像的概念,并说明它们在环境搭建中的作用。 Docker中的容器和镜像是Docker最核心的概念,它们在环境搭建中扮演着至关重要的角色。 容器(Container): 容器是Docker环境中用于运行应用的实体…

注意力机制网络

注意力机制在深度学习领域中是一种重要的技术,特别是在序列模型和自然语言处理(NLP)任务中。注意力机制的核心思想是在模型的输入上模拟人类的注意力过程,即模型能够自动决定在处理特定任务时应该“关注”输入数据的哪些部分。通过…