IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 自动化之数据驱动实现方式(DDT 和 pytest.mark.parameters()) -> 正文阅读

[开发测试]自动化之数据驱动实现方式(DDT 和 pytest.mark.parameters())

注:这篇博客专门介绍自动化数据驱动的实现方式

一、unittest实现数据驱动(ddt)

1.1、什么是DDT?

data driver test数据驱动测试,可以完美的和unittest结合实现数据驱动

1.2、DDT中的装饰器

  1. @ddt:装饰类,作用是用于申明当前类使用ddt数据驱动
  2. @data: 装饰函数,作用是给函数传值
  3. @unpack:装饰函数,作用是数据解包
  4. @file_data:装饰函数,作用是直接读yaml、json文件

1.3、代码示例

示例一:
注意:传几个值,就会运行几次

import unittest
from ddt import ddt, data
from base.base_util import BasUtil



@ddt
class TestLogin(BasUtil):

    @data("值1","值2","值3")
    def test_01_login(self, args):
        print(args)



if __name__ == '__main__':
    unittest.main()

返回


test_login.py .1
.2
.3
                                                        [100%]

============================== 3 passed in 21.43s ==============================

示例二:如果我们要传入测试数据,可以写成列表的形式传入

import unittest
from ddt import ddt, data
from base.base_util import BasUtil


@ddt
class TestLogin(BasUtil):

    @data([1, "key1", "value1"], [2, "key2", "value2"])
    def test_01_login(self, args):
        print(args)


if __name__ == '__main__':
    unittest.main()

返回:

test_login.py .[1, 'key1', 'value1']
.[2, 'key2', 'value2']
                                                         [100%]

============================== 2 passed in 19.24s ==============================

示例三:通过excel读取数据来实现数据驱动
1.将数据写入excel
在这里插入图片描述
2.封装读取excel的方法

from pathlib import Path
import openpyxl


class ExcelUtil(object):
    def __init__(self):
        # 项目目录
        self.base_dir = Path(__file__).parent.parent

    # openpyxl(更多用这个)、xlrd
    def read_excel(self):
        # 第一步:加载文件
        wb = openpyxl.load_workbook('%s/data/testdata.xlsx' % self.base_dir)
        # 第二步:获得sheet对象
        sheet = wb['login']
        # 第三步:获得excel的行数和列数
        # print(sheet.max_row, sheet.max_column)
        all_list = []
        for rows in range(2, sheet.max_row+1):  # 第二行开始,去掉行标题
            temp_list = []
            for cols in range(1, sheet.max_column+1):
                # print(sheet.cell(rows, cols).value)
                temp_list.append(sheet.cell(rows, cols).value)

            all_list.append(temp_list)

        print(all_list)


if __name__ == '__main__':
    ExcelUtil().read_excel()

返回(处理后的数据)

[[1, 'a', 'aaaaaa'], [2, 'aa', 'a'], [3, 'aa', 'aaaaaa']]
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-08-15 15:53:24  更:2021-08-15 15:54:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/28 12:02:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码