[TOC]

前言

在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的。如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成。

## 一、环境准备

1. 安装ddt模块,打开cmd输入pip3 install ddt在线安装

```

>>pip3 install ddt

```

## 二、数据驱动原理

1. 测试数据为多个字典的list类型

2. 测试类前加修饰@ddt.ddt

3. case前加修饰@ddt.data()

4. 运行后用例会自动加载成三个单独的用例

```

import ddt

import unittest

# 测试数据

testData = [{"username":"selenium", "password":"123"},

{"username":"python", "password":"123456"},

{"username":"appium", "password":"456"}]

@ddt.ddt

class Test(unittest.TestCase):

def setUp(self):

print("start!")

def tearDown(self):

print("end!")

@ddt.data(*testData)

def test_ddt(self, data):

print(data)

if __name__ == "__main__":

unittest.main()

```

5. 测试结果:

```

start!

{'username': 'selenium', 'password': '123'}

end!

start!

{'username': 'python', 'password': '123456'}

end!

start!

{'username': 'appium', 'password': '456'}

end!

```

## 三、selenium案例

1. 从上一篇封装的excel方法里面读取数据,作为测试测试

2. 在之前写的登录那篇基础上做点修改,测试参数读取excel里的数据

3. 代码参考如下:

```

from selenium import webdriver

import unittest

from time import sleep

import ddt

# 测试数据

testData = [{"username":"selenium", "password":"123"},

{"username":"python", "password":"123456"},

{"username":"appium", "password":"456"}]

print(testData)

@ddt.ddt

class Blog(unittest.TestCase):

'''登录博客'''

def setUp(self):

self.driver = webdriver.Chrome()

url = "https://account.cnblogs.com/signin"

self.driver.get(url)

self.driver.implicitly_wait(30)

def login(self, username, password):

'''这里写了一个登录的方法,账号和密码参数化'''

self.driver.find_element_by_id("mat-input-0").send_keys(username)

self.driver.find_element_by_id("mat-input-1").send_keys(password)

self.driver.find_element_by_css_selector(".mat-button-wrapper").click()

sleep(3)

def is_login_sucess(self):

'''判断是否获取到登录账号名称'''

try:

text = self.driver.find_element_by_id("lnk_current_user").text

print(text)

return True

except:

return False

@ddt.data(*testData)

def test_login(self, data):

'''登录案例参考'''

print("当前测试数据 %s" %data)

# 调用登录方法

self.login(data["username"], data["password"])

# 判断结果

result = self.is_login_sucess()

self.assertTrue(result)

def tearDown(self):

self.driver.quit()

if __name__ == "__main__":

unittest.main()

```

python ddt mysql_40- 数据驱动(ddt)相关推荐

  1. python ddt mysql_Python数据驱动DDT的应用

    原标题:Python数据驱动DDT的应用 在开始之前,我们先来明确一下什么是数据驱动,在百度百科中数据驱动的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把 ...

  2. python语言百度百科-Python 语言下数据驱动DDT的应用

    数据驱动测试的含义: 在百度百科上的解释是: 数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把测试对象看作一个黑盒子.利用黑盒测试法进行动态测试时,需要测试软件产品 ...

  3. python使用ddt_python数据驱动ddt的使用

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

  4. python中什么是数据驱动_Python数据驱动DDT的应用

    原标题:Python数据驱动DDT的应用 在开始之前,我们先来明确一下什么是数据驱动,在百度百科中数据驱动的解释是:数据驱动测试,即黑盒测试(Black-box Testing),又称为功能测试,是把 ...

  5. python 基于ddt实现数据驱动测试

    这篇文章主要介绍了python 基于DDT实现数据驱动测试的方法,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下 简单介绍 ​ ddt(date driver test),所谓数据驱 ...

  6. Unittest自动化测试框架教程(四)——Python中的数据驱动测试DDT

     " 数据驱动测试DDT(Data Drivern test),是自动化测试领域优势中亮眼的闪光点,在unittest测试框架中对数据驱动更是提供了强大的支持,文章通过基础概念的引入,介绍了 ...

  7. python数据驱动-ddt

    目录 一.数据驱动介绍 二.DDT基本使用介绍 2.0 测试基类 2.1 使用步骤 2.1 ddt读取单个数据 2.2.1 案例 2.2 ddt读取组合中的数据(@unpack) 2.2.1 加unp ...

  8. python数据驱动:基于ddt的数据驱动测试

    一.yaml文件的调用 二.csv文件的数据驱动 三.基于ddt的数据驱动测试 方法1: from selenium import webdriver import unittest from tim ...

  9. python ddt 实现数据驱动

    ddt 是第三方模块,需安装, pip install ddt DDT包含类的装饰器ddt和两个方法装饰器data(直接输入测试数据)@data和@file_data 通常情况下,data中的数据按照 ...

  10. 数据驱动 - ddt

    数据驱动简单用法 1.为什么需要数据驱动? 数据文件中有多组数据,代码只有一份,代码数据分离,解耦合. 2.数据驱动含义 将代码与数据进行分离,单纯由数据组成文件,再由文件来驱动关键字,最终实现整个自 ...

最新文章

  1. Android App优化之延长电池续航时间
  2. jmeter csv参数化_运用Jmeter参数化来实现接口自动化测试
  3. 《数学之美》第15章 矩阵运算和文本处理中的两个分类问题
  4. Oracle的NVL函数
  5. c++中创建渐变背景
  6. (Matlab函数详解)机器学习中的4种分类算法(LDA、QDA、SVM、KNN)
  7. 对比 | Python中超级好用的“列表解析式”、“字典解析式”、“集合解析式”
  8. 调整偏移量伪指令ORG
  9. AUTOCAD--实时缩放
  10. ConfigUtil.class.getResource
  11. RabbitMQ之业务场景(四):动态创建,删除队列工具类,拿来即用
  12. Squid运行控制脚本_wuli大世界_新浪博客
  13. HDU 5037 贪心
  14. 如何给一个App起名字?
  15. pc机安装android,4种在PC机上运行Android系统的方法
  16. 机器人视觉系统分为哪几种,主要包括哪些关键技术?
  17. 如何关闭百度网盘超级会员自动续费服务?
  18. 人才补贴,正式取消?
  19. 中国教育“善意的谎言”与恶果
  20. c语言延时时间计算器,RC延时电路延时时间计算

热门文章

  1. 立刷提现显示服务器繁忙,为什么我的网页显示服务器繁忙,求大神教破除方法...
  2. python绘制常用的概率分布曲线
  3. java 设计连连看_如何用JAVA 编写一个连连看游戏全程设计
  4. Puppeteer + Nodejs 通用全屏网页截图方案(二)常用参数实现
  5. 最新的期刊论文怎么下载?
  6. 安装微信小程序开发者工具
  7. gif动图怎么制作?手机怎么制作动态图
  8. SqlServer更改字段类型--varchar转decimal
  9. 锁定计算机黑屏怎么办,win10锁定屏幕就黑屏怎么办_win10电脑锁定了黑屏怎么办...
  10. 解决 Xshell6|Xftp6 强制升级问题