菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
374
0

数据驱动ddt

原创
05/13 14:22
阅读数 5231

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

1.安装ddt模块

2.数据驱动的原理

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

(2)测试类前需要加修饰@ddt.ddt

(3)测试用例方法前需要加修饰@ddt.data()

3.代码:

from selenium import webdriver
from common.base import BasePage
from page.page_login import LoginPage,login_url
from common.read_excel_ddt import ExcelUtil
import unittest
import ddt
case_data=[{"user":u"欧皇林宝","psw":u"xxxx","except":False},
{"user":u"欧皇林宝","psw":u"xxxxxxx.","except":True}
]

@ddt.ddt
class Login_test(unittest.TestCase):
'''登录页面的测试用例'''

@classmethod
def setUpClass(cls):
#只打开一次浏览器
cls.driver=webdriver.Firefox()
#实例化page_login中的LoginPage类
cls.login_driver=LoginPage(cls.driver)
cls.driver.open(login_url)

def setUp(self):
#每次都从登录页开始
self.driver.get(login_url)

def tearDown(self):
#每次清空登录的cookie,数据还原
self.driver.delete_all_cookies()
@classmethod
def tearDownClass(cls):
#关闭浏览器
cls.driver.quit()

def login_case(self,user,psw,exc):
'''登录的流程'''
self.login_driver.input_username(user)
self.login_driver.input_password(psw)
self.login_driver.click_submit()
result=self.login_driver.is_login_sucess()#获取结果
except_result=exc#期望结果
self.assertEqual(result,except_result)#断言

@ddt.data(*case_data)#多个数据 挨个去传
def test_login_01(self,casedata):
'''登陆失败用例:输入正确的账户,错误的密码'''
     print(case_data)
def test_login_02(self,casedata):
        '''登陆失败用例:输入正确的账户,正确的密码'''
     print(case_data)
if __name__=="__main__":
unittest.main(verbosity=2)

发表评论

0/200
374 点赞
0 评论
收藏