#背景:
ddt是一种文件驱动方法,不是所有的用例都适用,下面已登录举例,我的理解驱动方法的目的就是为了减少代码量,从而验证更多的场景的一种方法,
大致分为以下几步,
#conding:utf-8
import unittest
from selenium import webdriver
from page.login_page import LoginPage,belle_url
from common.log import *
loginLog=Log()
#第一步:导入ddt包
import ddt
#第二步:数据分离,定义一个list,里面设置字典类型数据,设置想要驱动的数据
data1=[{"user":"liu.yqty","password":"111111"},
{"user": "liu.yqty", "password": "111211"},
{"user": "liu.yqty", "password": ""},
{"user": "", "password": "111111"}]
#第三步:引用@ddt.ddt装饰类
@ddt.ddt
class login(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Chrome()
self.driver.get(belle_url)
self.login_driver = LoginPage(self.driver)
def login(self,user,password):
#1输入账号
self.login_driver.input_username(user)
#2输入密码
self.login_driver.input_password(password)
#3点击登录按钮
self.login_driver.click_login_button()
def tearDown(self):
self.driver.quit()
#第四步:加载测试数据,*代表取的是list类型,**代表取的字典类型,然后设置断言
@ddt.data(*data1)
def test01_login(self,data):
print(data)
try:
loginLog.info("开始测试")
result=self.login(**data)
sucessMsg=self.login_driver.getSucessMsg()
assert u"刘永强-体育" in sucessMsg
loginLog.info(sucessMsg+"登录成功")
print(sucessMsg+"登录成功")
except Exception as msg:
failrusult=self.login_driver.getLoginMsg()
loginLog.info(failrusult)
print(failrusult)
if __name__=="__main_":
unittest.main()