python ddt数据驱动

2023-10-07 16:59
文章标签 python 数据 驱动 ddt

本文主要是介绍python ddt数据驱动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

python ddt数据驱动

1、背景

在自动化测试当中,我们通常会将测试数据从测试代码中抽离出来放在单独的文件中,既能减少代码量,也能降低代码的维护成本,通过数据的改变从而驱动自动化测试的执行。

接触python自动化测试的第一个框架通常都是unittest,使用@ddt装饰器来完成数据驱动,ddt意思就是 “Data-Driven Tests”。

安装方式:

pip index versions ddt # 查看ddt所有的版本
pip install ddt version # 安装制定版本的ddt
pip install ddt # 安装最新版本的ddt

ddt的官网地址为:官网地址

2、ddt使用实践

2.1 项目目录结构

使用pycharm新建一个项目,目录结构如下:
在这里插入图片描述
主要包含testcases 和testdata两个包,testcases下面放测试脚本文件,testdata下面放测试数据文件。

2.2 直接在脚本文件中获取测试数据

testcases package下新建test_ddt.py文件,编写测试代码如下:

import unittest
import ddt  # 导入ddt# 测试数据
data = [{"phone": "dfasd132", "key": "dfabc"},{"phone": "dfsd134", "key": "dftest"},{"phone": "dfdfd188", "key": "dfmin"},
]@ddt.ddt  # 声明我们要用它
class Test_ddt(unittest.TestCase):def setUp(self):print("Before every test case!")@ddt.data(*data)#现在比较流行的处理方式,使用*.data直接做字典数据的注入def test_001(self, data):print("phone is:" +data['phone'])print("key is:" +data['key'])if __name__ == '__main__':unittest.main()

执行结果为:
在这里插入图片描述
可以看到我们定义的字典data中有3组数据,用例总共执行了3次,按顺序每次取一组数据作为入参。

2.3 从yml文件中获取测试数据

在testdata package下新建testdata1.yml文件,文件中写入测试数据如下:

#格式要求:
#"-"表示一个列表
#用tab键缩进-name: 'testyy'age:  18-name: 'testzz'age:  20

test_ddt.py文件中修改测试代码如下:

import unittest
import ddt  # 导入ddt
import yaml@ddt.ddt  # 声明我们要用它
class Test_ddt(unittest.TestCase):def setUp(self):print("Before every test case!")@ddt.file_data("..\\testdata\\testdata1.yml")#括号里写yml文件的相对路径def test_002(self,name,age):print('name is:' +str(name))print('age is:' + str(age))if __name__ == '__main__':unittest.main()

执行结果为:
在这里插入图片描述
可以看到yml文件中我们定义了2组数据,用例总共执行了2次,按顺序每次取一组数据作为入参。

2.4 从json文件中获取测试数据

在testdata package下新建testdata2.json文件,文件中写入测试数据如下:

{"student1": {"name": "小明","age": 12},"student2": {"name": "小张","age": 20}
}

test_ddt.py文件中修改测试代码如下:

import unittest
import ddt  # 导入ddt
import yaml@ddt.ddt  # 声明我们要用它
class Test_ddt(unittest.TestCase):def setUp(self):print("Before every test case!")@ddt.file_data("..\\testdata\\testdata2.json")#括号里写json文件的相对路径def test_003(self,name,age):print("name is:"+str(name))print("age is:" +str(age))if __name__ == '__main__':unittest.main()

执行结果为:
在这里插入图片描述
综上,从脚本文件中直接获取测试数据、从yml文件获取测试数据、从Json文件获取测试数据,应该已经可以满足自动化测试需要了。

这篇关于python ddt数据驱动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/159129

相关文章

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

Python主动抛出异常的各种用法和场景分析

《Python主动抛出异常的各种用法和场景分析》在Python中,我们不仅可以捕获和处理异常,还可以主动抛出异常,也就是以类的方式自定义错误的类型和提示信息,这在编程中非常有用,下面我将详细解释主动抛... 目录一、为什么要主动抛出异常?二、基本语法:raise关键字基本示例三、raise的多种用法1. 抛

Python基于微信OCR引擎实现高效图片文字识别

《Python基于微信OCR引擎实现高效图片文字识别》这篇文章主要为大家详细介绍了一款基于微信OCR引擎的图片文字识别桌面应用开发全过程,可以实现从图片拖拽识别到文字提取,感兴趣的小伙伴可以跟随小编一... 目录一、项目概述1.1 开发背景1.2 技术选型1.3 核心优势二、功能详解2.1 核心功能模块2.

使用SpringBoot整合Sharding Sphere实现数据脱敏的示例

《使用SpringBoot整合ShardingSphere实现数据脱敏的示例》ApacheShardingSphere数据脱敏模块,通过SQL拦截与改写实现敏感信息加密存储,解决手动处理繁琐及系统改... 目录痛点一:痛点二:脱敏配置Quick Start——Spring 显示配置:1.引入依赖2.创建脱敏

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Python使用smtplib库开发一个邮件自动发送工具

《Python使用smtplib库开发一个邮件自动发送工具》在现代软件开发中,自动化邮件发送是一个非常实用的功能,无论是系统通知、营销邮件、还是日常工作报告,Python的smtplib库都能帮助我们... 目录代码实现与知识点解析1. 导入必要的库2. 配置邮件服务器参数3. 创建邮件发送类4. 实现邮件

基于Python构建一个高效词汇表

《基于Python构建一个高效词汇表》在自然语言处理(NLP)领域,构建高效的词汇表是文本预处理的关键步骤,本文将解析一个使用Python实现的n-gram词频统计工具,感兴趣的可以了解下... 目录一、项目背景与目标1.1 技术需求1.2 核心技术栈二、核心代码解析2.1 数据处理函数2.2 数据处理流程

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

使用Python实现base64字符串与图片互转的详细步骤

《使用Python实现base64字符串与图片互转的详细步骤》要将一个Base64编码的字符串转换为图片文件并保存下来,可以使用Python的base64模块来实现,这一过程包括解码Base64字符串... 目录1. 图片编码为 Base64 字符串2. Base64 字符串解码为图片文件3. 示例使用注意

使用Python实现获取屏幕像素颜色值

《使用Python实现获取屏幕像素颜色值》这篇文章主要为大家详细介绍了如何使用Python实现获取屏幕像素颜色值,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 一、一个小工具,按住F10键,颜色值会跟着显示。完整代码import tkinter as tkimport pyau