一、数据驱动的概念

相同测测试脚本使用不同的测试数据来执行,测试数据和测试行为完全分离,这样的测试脚本设计模式成为数据驱动。测试框架使用unittest 和ddt模块相结合的方式

二、unittest测试框架如下

#coding:utf-8
import unittest
class DoubanTest(unittest.TestCase):
    #测试用例初始化
    def setUp(self):
        pass
    #定义具体的测试方法
    def test_add(self,testdata1,testdata2,testdate3,exceptdata):
        sum=0
        sum=testdata1+testdata2+testdate3
        self.assertEqual(sum,exceptdata)
    #测试用例执行完成后对资源进行释放
    def tearDown(self):
        pass
if __name__ =='__main__':
    unittest.main()

三、引入ddt框架,实现数据驱动

引入ddt框架需要从官网下载ddt模块(官网下载地址:https://pypi.python.org/pypi/ddt#downloads)。

引入ddt框架,测试代码如下:

#coding:utf-8
import ddt
import unittest
@ddt.ddt
class DoubanTest(unittest.TestCase):
    def setUp(self):
        pass
    def tearDown(self):
        pass
    @ddt.data([1,2,3,6],[2,3,4,5],[1,2,2,5])
    @ddt.unpack
    def test_add(self,testdata1,testdata2,testdate3,exceptdata):
        sum=0
        sum=testdata1+testdata2+testdate3
        self.assertEqual(sum,exceptdata)
if __name__ =='__main__':
    unittest.main()

首先在头部导入ddt模块(import ddt)。其次在测试类前声明使用ddt(@ddt.ddt)。第三步在测试方法前使用@ddt.data()添加测试数据,多组测试数据以逗号隔开如@ddt.data(1,2,3),每组数据中的数据与测试方法中定义的形参个数及顺序一一对应。最后使用@ddt.unpack进行修饰,也是测试过程中将测试数据传给测试方法中的形参。本例子@ddt.data共有三组测试数据,测试用例会被执行三次。每组测试数据有4条数数据,如第一组数据[1,2,3,6],一一传给测试方法test_add方法中的形参testdata1,testdata2,testdate3,exceptdata。

本例子测试执行结果如下:

Ran 3 tests in 0.000s

FAILED (failures=1)

python-使用unittest和ddt实现数据驱动的更多相关文章

  1. python+requests+unittest 接口ddt测试

    以数据驱动的形式,将用例维护在py文件中 源码分析: 变量定义 publicParameters.py """ 公共参数 , 按照各公司实情,自行编写 "&qu ...

  2. python selenium中使用ddt进行数据驱动测试

  3. Python+Selenium+Unittest+Ddt+HTMLReport分布式数据驱动自动化测试框架结构

    1.Business:公共业务模块,如登录模块,可以把登录模块进行封装供调用 ------login_business.py from Page_Object.Common_Page.login_pa ...

  4. python Unittest+excel+ddt数据驱动测试

    #!user/bin/env python # coding=utf- # @Author : Dang # @Time : // : # @Email : @qq.com # @File : # @ ...

  5. Unittest框架+ddt数据驱动+HTMLTestRunner+sendmail(自动发送测试报告)+git+Jenkins

    本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存 ...

  6. python ddt 实现数据驱动一

    ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...

  7. python ddt 实现数据驱动

    ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据) 通常情况下,data中的数据按照一个参数传递给测试用例,如果da ...

  8. python ddt实现数据驱动

    首先安装ddt模块,命令:pip install ddt 通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有多个数据,以元组,列表,字典等数据,需要自行在脚本中对数据进行分解或 ...

  9. 【python接口自动化】- DDT数据驱动测试

    简单介绍 ​ DDT(Date Driver Test),所谓数据驱动测试,简单来说就是由数据的改变从而驱动自动化测试的执行,最终引起测试结果的改变.通过使用数据驱动测试的方法,可以在需要验证多组数据 ...

随机推荐

  1. 官方发布PHP语法规范

    PHP语言已经存在了超过20年,显然是世界上最流行的编程语言之一.PHP绝对是互联网服务器端web编程的通用语. 虽然有广泛的user-documentation,PHP语言总是错过语言规范.这并不是 ...

  2. 经典的hash函数

    unsigned int SDBMHash(char *str){    unsigned int hash = 0;     while (*str)    {        // equivale ...

  3. 2019.03.09 ZJOI2019模拟赛 解题报告

    得分: \(20+0+40=60\)(\(T1\)大暴力,\(T2\)分类讨论写挂,\(T3\)分类讨论\(40\)分) \(T1\):天空碎片 一道神仙数学题,貌似需要两次使用中国剩余定理. 反正不 ...

  4. CentOS6.5手动升级gcc4.8.2

    一.简易安装 操作环境 CentOS6.5 64bit,原版本4.4.7,不能支持C++11的特性~,希望升级到4.8.2 不能通过yum的方法升级,需要自己手动下载安装包并编译 本文记录了在Cent ...

  5. [转]C++ Template

    引言 模板(Template)指C++程序设计设计语言中采用类型作为参数的程序设计,支持通用程序设计.C++ 的标准库提供许多有用的函数大多结合了模板的观念,如STL以及IO Stream. 函数模板 ...

  6. poj_1845_Sumdiv

    Consider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S m ...

  7. Mybatis基础进阶学习2

    Mybatis基础进阶学习2 1.测试基本结构 2.三个POJO package com.pojo; import java.io.Serializable; import java.util.Dat ...

  8. OA上传和编辑数据

    1.VO:value object值对象.通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要. 2. String[]类型打 ...

  9. 8-1 python 接口开发(提供数据、返回session_id)

    1.接口开发,根据不同查询条件返回数据库查询结果 import flask import tools import json server = flask.Flask(__name__) #新建一个服 ...

  10. redis学习1(nosql)

    一. 互联网时代背景下大机遇,为什么用nosql 1.单机MySQL的美好年代 在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付.在那个时候,更多的都是静态网页,动态交互类型的网站 ...