Selenium2+python自动化59-数据驱动(ddt)转载
Posted 小曹
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Selenium2+python自动化59-数据驱动(ddt)转载相关的知识,希望对你有一定的参考价值。
本篇转自博客:上海-悠悠
原文地址:http://www.cnblogs.com/yoyoketang/tag/unittest/
前言
在设计用例的时候,有些用例只是参数数据的输入不一样,比如登录这个功能,操作过程但是一样的。如果用例重复去写操作过程会增加代码量,对应这种多组数据的测试用例,可以用数据驱动设计模式,一组数据对应一个测试用例,用例自动加载生成。
一、环境准备
1.安装ddt模块,打开cmd输入pip install ddt在线安装
>>pip install ddt
二、数据驱动原理
1.测试数据为多个字典的list类型
2.测试类前加修饰@ddt.ddt
3.case前加修饰@ddt.data()
4.运行后用例会自动加载成三个单独的用例
5.测试结果:
Testing started at 21:51 ...
start!
{\'username\': \'selenium\\xe7\\xbe\\xa4\', \'psw\': \'232607095\'}
end!
start!
{\'username\': \'python\\xe7\\xbe\\xa4\', \'psw\': \'226296743\'}
end!
start!
{\'username\': \'appium\\xe7\\xbe\\xa4\', \'psw\': \'512200893\'}
end!
三、selenium案例
1.从上一篇封装的excel方法里面读取数据,作为测试测试Selenium2+python自动化58-读取Excel数据(xlrd)
2.在之前写的登录那篇基础上做点修改,测试参数读取excel里的数据Selenium2+python自动化48-登录方法(参数化)
3.代码参考如下
# 测试数据
testData = data.dict_data()
print testData
@ddt.ddt
class Bolg(unittest.TestCase):
u\'\'\'登录博客\'\'\'
def setUp(self):
self.driver = webdriver.Firefox()
url = "https://passport.cnblogs.com/user/signin"
self.driver.get(url)
self.driver.implicitly_wait(30)
def login(self, username, psw):
u\'\'\'这里写了一个登录的方法,账号和密码参数化\'\'\'
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):
u\'\'\'判断是否获取到登录账户名称\'\'\'
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):
u\'\'\'登录案例参考\'\'\'
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()
以上是关于Selenium2+python自动化59-数据驱动(ddt)转载的主要内容,如果未能解决你的问题,请参考以下文章
Selenium2+python自动化59-数据驱动(ddt)转载
Selenium2+python自动化59-数据驱动(ddt)转载
Selenium2+python自动化21-TXT数据参数化