python自动化数据驱动_Selenium2+python自动化之数据驱动(ddt)

环境准备

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

4a0391de7081cc69ecf155156f2eae3a.png

数据驱动原理

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

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

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

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

# coding:utf-8

import ddt

import unittest

# 测试数据

test_data1 = [{"username": "zhangsan", "pwd": "zhangsan"},

{"username": "lisi", "pwd": "lisi"},

{"username": "wangwu", "pwd": "wangwu"},

]

test_data2 = [{"username": "wukong", "pwd": "wukong"},

{"username": "wuneng", "pwd": "woneng"},

{"username": "wujing", "pwd": "wujing"},

]

@ddt.ddt

class Test(unittest.TestCase):

def setUp(self):

print("Start!")

def tearDown(self):

print("end!")

@ddt.data(*test_data1)

def test_ddt1(self, data):

print(data)

@ddt.data(*test_data2)

def test_ddt2(self, data):

print(data)

if __name__ == "__main__":

unittest.main()

selenium数据驱动案例

以登录的方法为例子:

从上一篇封装的excel方法里面读取数据,作为测试数据:http://www.cnblogs.com/lingzeng86/p/6793398.html(就是导入的excelunit包)

# coding:utf-8

import ddt

import time

import excelunit

import unittest

from selenium import webdriver

# 测试数据

data = excelunit.ExcelUtil("test.xlsx", "Sheet2")

testData = data.dict_data()

print testData

@ddt.ddt

class Bolg(unittest.TestCase):

"""登录博客"""

def setUp(self):

self.driver = webdriver.Chrome()

url = "https://passport.cnblogs.com/user/signin"

self.driver.get(url)

self.driver.implicitly_wait(10)

def login(self, username, psw):

"""登录方法,账号和密码参数化"""

self.driver.find_element_by_id("input1").send_keys(username)

self.driver.find_element_by_id("input2").send_keys(psw)

self.driver.find_element_by_id("signin").click()

time.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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值