Python 数据驱动ddt 使用

准备工作: pip install ddt

知识点:

一,数据驱动和代码驱动:

数据驱动的意思是  根据你提供的数据来测试的  比如 ATP框架 需要excel里面的测试用例

代码驱动是必须得写代码 它才能测试 比如说unittest

二,使用数据驱动框架的意义:
- 代码复用率高。同一测试逻辑编写一次,可以被多条测试数据复用,提高了测试代码的复用率,同时可以提高测试脚本的编写效率。
- 异常排查效率高。测试框架依据测试数据,每条数据生成一条测试用例,用例执行过程相互隔离,在其中一条失败的情况下,不会影响其他的测试用例。

-代码的可维护性高。清晰的测试框架,利于其他测试工程师阅读,提高了代码的可维护性。

tips : 参数少的用yml挺好  参数多的,用json xx.json 格式  这种上下有依赖关系的 就写py文件

文件名.json的话是json文件里面要写json串

yml每个接口都是独立运行的

 DDT 使用

DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据)

只有yaml和yml结尾的文件以yaml形式上传,其他情况下默认为json

通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或者使用unpack分解数据

@data(a,b)

那么a和b各运行一次用例

@data([a,b],[c,d])

如果没有unpack,那么[a,b]当成一个参数传入用例运行

如果有unpack,那么[a,b]被分解开,按照用例中的两个参数传递

@file_data(filename)

对于json的文件,每一个json元素按照一个用例运行,可以依照python分解元组,列表或者字典的方式分解传入

实例:

import ddtimport unittest# print(dir(ddt))

@ddt.ddtclass MyCase(unittest.TestCase):    @ddt.data(1,2)  #运行2次    def testa(self,value):        print(value)

@ddt.data([1,2]) #运行1次    def testb(self,value):        print(value)

@ddt.data([1,2],[3,4]) #不加unpack 会报错    def testc(self,a,b):        self.assertNotEqual(a,b)

@ddt.data([1,2],[3,4]) #运行2次    @ddt.unpack    def testd(self,a,b):        self.assertNotEqual(a,b)

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

原文地址:https://www.cnblogs.com/chendai21/p/8671380.html

时间: 2024-11-11 10:31:50

Python 数据驱动ddt 使用的相关文章

Python数据驱动(ddt)

import unittest import ddt #第三方库 data=[[1,2],[3,4],[5,6]] @ddt.ddt class MyTestCase(unittest.TestCase): #只有一个参数时 @ddt.data(1,2,3) def test_01(self,a): print(a) @ddt.data(*data)#表示可参数,若传参是data,则后面的取值a=[[1,2],[3,4],[5,6]] @ddt.unpack def test_02(self,a

python webdriver 测试框架-数据驱动DDT的例子

先在cmd环境 运行 pip install ddt 安装数据驱动ddt模块  脚本: #encoding=utf-8 from selenium import webdriver import unittest,time import logging,traceback import ddt from selenium.common.exceptions import NoSuchElementException #初始化日志对象 logging.basicConfig( #日志级别 leve

【webdriver自动化】Python数据驱动工具DDT

一.Python数据驱动工具ddt 1.  安装 ddt pip install ddt DDT是 "Data-Driven Tests"的缩写 资料:http://ddt.readthedocs.io/en/latest/ 2.  DDT的使用 (1)   ddt.ddt: 装饰类,也就是继承自TestCase的类 (2)   ddt.data: 装饰测试方法.参数是一系列的值. (3)   ddt.file_data: 装饰测试方法.参数是文件名.文件可以是json 或者 yaml

python之ddt模式随记三,ddt模式用例标题过长解决

背景: 使用python+unittest+ddt+excel模式做接口测试时,ddt数据驱动时出现了一个尴尬的问题,大概就是在用ddt数据时,会驱动不同的数据去调用被装饰的函数,然后出现了标题也附带上了value. 直接上问题图 直接上问题原因代码: import ddt import unittest ## 数据源 data = { 'api1': [ ['2', ['checkcode', '{\n "a":"1",\n "b":"

数据驱动ddt 示例,数据在代码中

#coding=utf-8 from selenium import webdriver import unittest,time import logging,traceback import ddt from selenium.common.exceptions import NoSuchElementException logging.basicConfig( #日志级别 level = logging.INFO, #日志格式 #时间.代码所在文件名.代码行号.日志级别.日志信息 form

Python 数据驱动 unittest + ddt

一数据驱动测试的含义: 在百度百科上的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行动态测试时,需要测试软件产品的功能,不需测试软件产品的内部结构和处理过程.数据驱动测试注重于测试软件的功能性需求,也即数据驱动测试使软件工程师派生出执行程序所有功能需求的输入条件. 在微软网站上的解释是: 数据驱动的单元测试是为数据源中的每一行重复运行的一种单元测试.数据驱动的单元测试的常用情况是使用多个输入值测试 API.不

python之数据驱动ddt操作(方法一)

下载ddt并安装 Pip install ddt 或者官网下载安装 http://ddt.readthedocs.io/en/latest/ https://github.com/txels/ddt DDT的使用 DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据),file_data(可以从json或者yaml中获取测试数据) 只有yaml和yml结尾的文件以yaml形式上传,其他情况下默认为json 通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有

Python之数据驱动ddt

一.背景 一般进行接口测试时,每个接口的传参都不止一种情况,一般会考虑正向.逆向等多种组合,所以在测试一个接口时,通常会编写多条case,而这些除了传参不同外,并没有什么区别.这个时候就可以利用ddt来管理测试数据,提高代码复用率. 二.ddt安装 ddt是python的第三方库,安装可以进行命令安装,或者通过pycharm界面中settings进行安装. 三.ddt模块组成 1.ddt模块包含类的装饰器ddt和两个方法装饰器data ddt.ddt:装饰类,也就是继承TestCase的类. d

python之数据驱动ddt操作(方法四)

from ddt import ddt,data,unpackfrom selenium import webdriverfrom selenium.webdriver.common.by import Byimport time,unittest """测试类前加修饰@ddt.ddtcase前加修饰@ddt.data() 相同的测试用例@ddt.unpack 分解data的参数""" @ddtclass BaiduSearch(unittest