ddt数据驱动

# coding:utf-8
import unittest
import ddt
from selenium import webdriver
from ke1test.pageobjectmodle.page_blog.loginpage import LoginPage
'''所谓的数据驱动就是能自动将list中的多条用例参数数据给拆分成多条用例的参数',并运行该多条用例'''

datas = [
{
'username': 'admin',
'psw': '@Test1234',
'result': 'admin'
},
{
'username': 'admin1',
'psw': '@Test1234',
'result': ''
}
]
@ddt.ddt
class TestLoginCase(unittest.TestCase):
# case1 = {
# 'username' : 'admin',
# 'psw' : '@Test1234',
# 'result' : 'admin'
# }
# case2 = {
# 'username' : 'admin1',
# 'psw' : '@Test1234',
# 'result' : ''
# }
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.login_page = LoginPage(cls.driver)


def tearDown(self):
self.login_page.logout()

@classmethod
def tearDownClass(cls):
cls.driver.quit()

def login_case(self, case_dict):
self.login_page.login(case_dict['username'], case_dict['psw'])
result = self.login_page.get_login_result()
return result

@ddt.data(*datas)
def test_login_case(self, case_dict):
self.assertEqual(self.login_case(case_dict), case_dict['result'])

# def test_login_success(self):
# self.assertEqual(self.case1['result'], self.login_case(self.case1))
#
# def test_login_fail(self):
# self.assertEqual(self.case2['result'], self.login_case(self.case2))

if __name__ == '__main__':
unittest.main()

使用ddt之前多少条用例就需要写多少个参数,且需要写多个用例,使用ddt之后,可直接用一条用例
人不可无方向
原文地址:https://www.cnblogs.com/yueyanru/p/9437518.html