selenium+python自動化測試--數據驅動


之前selenium+python自動化測試--登錄  中,幾個賬號和密碼登錄就要寫幾個用例,感覺很麻煩~,所以下面介紹一下用數據驅動實現不同用例的登錄。

話不多說,直接貼代碼~~

文件名稱:test_ddtlogin.py

import ddt import unittest from selenium import webdriver from common.base import Base testdata = [ {'user':'','psw':'','exp':'請輸入手機號碼'}, {'user':'admin','psw':'','exp':'請輸入密碼'}, {'user':'','psw':'666666','exp':'請輸入手機號碼'}, {'user':'admin','psw':'666666','exp':'賬號不存在'} ] @ddt.ddt class Testddt(unittest.TestCase): # 定位手機號
    username = ("name", "loginName") # 定位密碼
    psw = ("name", "loginPassWord") # 定位登錄按鈕
    loginbutton = ("id", "loginBtn") # 定位提示信息
    message = ("className", "toast-message") @classmethod def setUpClass(cls): cls.driver = webdriver.Firefox() cls.baseddt = Base(cls.driver) cls.driver.get("不願透露姓名的url") def setUp(self): self.baseddt.clear(self.username) self.baseddt.clear(self.psw) @classmethod def tearDownClass(cls): cls.driver.quit() # 加載測試數據
    @ddt.data(*testdata) def test_01(self,data): username = data['user'] password = data['psw'] exp = data['exp'] #輸入手機號
 self.baseddt.send(self.username,username) #輸入密碼
 self.baseddt.send(self.psw,password) #點擊登錄按鈕
 self.baseddt.click(self.loginbutton) #獲取結果
        result = self.baseddt.find(self.message).text print("我是結果:", result) self.assertEqual(result, exp) if __name__ == '__main__': unittest.main()

 上面代碼運行多次后,發現最后一個用例執行失敗了,覺得可能是緩存問題,所以還是改成下面的代碼:

 

import ddt import unittest from selenium import webdriver from common.base import Base testdata = [ {'user':'','psw':'','exp':'請輸入手機號碼'}, {'user':'admin','psw':'','exp':'請輸入密碼'}, {'user':'','psw':'666666','exp':'請輸入手機號碼'}, {'user':'admin','psw':'666666','exp':'賬號不存在'} ] @ddt.ddt class Testddt(unittest.TestCase): # 定位手機號
    username = ("name", "loginName") # 定位密碼
    psw = ("name", "loginPassWord") # 定位登錄按鈕
    loginbutton = ("id", "loginBtn") # 定位提示信息
    message = ("className", "toast-message") @classmethod def setUpClass(cls): cls.driver = webdriver.Firefox() cls.baseddt = Base(cls.driver) def setUp(self): self.driver.get("不願透露姓名的url") def tearDown(self): self.driver.delete_all_cookies() @classmethod def tearDownClass(cls): cls.driver.quit() # 加載測試數據
    @ddt.data(*testdata) def test_01(self,data): username = data['user'] password = data['psw'] exp = data['exp'] #輸入手機號
 self.baseddt.send(self.username,username) #輸入密碼
 self.baseddt.send(self.psw,password) #點擊登錄按鈕
 self.baseddt.click(self.loginbutton) #獲取結果
        result = self.baseddt.find(self.message).text print("我是結果:", result) self.assertEqual(result, exp) if __name__ == '__main__': unittest.main()

 

運行結果:

 

純屬個人思路,如有錯誤請在評論區指出,一定立即糾正。非常感謝~ 

讀取文件操作請看下回分解😜

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM