2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python ddt mysql_40- 数据驱动(ddt)

python ddt mysql_40- 数据驱动(ddt)

时间:2018-09-09 22:05:14

相关推荐

python ddt mysql_40- 数据驱动(ddt)

[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 = "/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()

```

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。