当前位置: 首页 > news >正文

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

在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.lryc.cn/news/171340.html

相关文章:

  • 高效管理,轻松追踪——Chrono Plus for Mac任务管理工具
  • python项目2to3方案预研
  • MongoDB 是什么和使用场景概述(技术选型)
  • 打印 pyspark.sql.dataframe.DataFrame 有哪些列
  • 什么是虚拟DOM(Virtual DOM)?它在前端框架中的作用是什么?
  • QT实现简易时钟
  • win禁用更新,取消windows更新提示,禁用windows自动更新
  • 倒计时列表实现(小程序端Vue)
  • ContentType:application/x-www-form-urlencoded请求方法遇到的坑【PHP】
  • RabbitMQ - 死信、TTL原理、延迟队列安装和配置
  • 大数据与云计算实验一
  • 实施主品牌进化战略(一):确立主品牌进化架构
  • linux搭建单机ES,集成ik分词器,文本抽取,Kibana可视化平台
  • 金融和大模型的“两层皮”问题
  • 智能生活从这里开始:数字孪生驱动的社区
  • Python计算机二级知识点整理
  • 双系统ubuntu20.04(neotic版本)从0实现Gazebo仿真slam建图
  • (JavaEE)(多线程案例)线程池 (简单介绍了工厂模式)(含经典面试题ThreadPoolExector构造方法)
  • 单播与多播mac地址
  • 反向动力学Ik学习
  • 基于Levenberg-Marquardt算法的声源定位matlab仿真
  • vscode的Emmet语法失效
  • 堆排序(大根堆)
  • Mybatis学习笔记3 在Web中应用Mybatis
  • 软件测试之功能测试详解
  • javascript选取元素的范围,可以包含父级,也可以不包含父级
  • QGIS怎么修改源代码?持续更新...
  • dev board sig技术文章:轻量系统适配ARM架构芯片平台
  • MyBatis之增删查改功能
  • Leetcode算法入门与数组丨5. 数组二分查找