一次完整的自動化登入測試-基於python+selenium進行cnblog的自動化登入測試
阿新 • • 發佈:2019-01-04
Web登入測試是很常見的測試!手動測試大家再熟悉不過了,那如何進行自動化登入測試呢!本文作者就用python+selenium結合unittest單元測試框架來進行一次簡單但比較完整的cnblog自動化登入測試,給大家提供點參考!下面就包括測試程式碼和每種測試情況的截圖:
''' cnblog的登入測試,分下面幾種情況: (1)使用者名稱、密碼正確 (2)使用者名稱正確、密碼不正確 (3)使用者名稱正確、密碼為空 (4)使用者名稱錯誤、密碼正確 (5)使用者名稱為空、密碼正確(還有使用者名稱和密碼均為空時與此情況是一樣的,這裡就不單獨測試了) ''' import unittest from selenium import webdriver from time import sleep class LoginCase(): def setUp(self): = () _window() #定義登入方法 def login(self, username, password): ('/user/signin') #cnblog登入頁面 _element_by_id('input1').send_keys(username) _element_by_id('input2').send_keys(password) _element_by_id('signin').click() def test_login_success(self): '''使用者名稱、密碼正確''' ('kemi_xxx', 'kemi_xxxx') #正確使用者名稱和密碼 sleep(3) link = _element_by_id('lnk_current_user') ('菜鳥可米' in ) #用assertTrue(x)方法來斷言 bool(x) is True 登入成功後用戶暱稱在lnk_current_user裡 _screenshot_as_file("D:\cnblogtest\\login_") #截圖 可自定義截圖後的儲存位置和圖片命名 def test_login_pwd_error(self): '''使用者名稱正確、密碼不正確''' ('kemi_xxx', 'kemi') #正確使用者名稱,錯誤密碼 sleep(2) error_message = _element_by_id('tip_btn').text ('使用者名稱或密碼錯誤', error_message) #用assertIn(a,b)方法來斷言 a in b '使用者名稱或密碼錯誤'在error_message裡 _screenshot_as_file("D:\cnblogtest\\login_pwd_") def test_login_pwd_null(self): '''使用者名稱正確、密碼為空''' ('kemi_xxx', '') #密碼為空 error_message = _element_by_id('tip_input2').text (error_message,'請輸入密碼') #用assertEqual(a,b)方法來斷言 a == b '請輸入密碼'等於error_message _screenshot_as_file("D:\cnblogtest\\login_pwd_") def test_login_user_error(self): '''使用者名稱錯誤、密碼正確''' ('kemixing', 'kemi_xxx') #密碼正確,使用者名稱錯誤 sleep(2) error_message = _element_by_id('tip_btn').text ('該使用者不存在', error_message) #用assertIn(a,b)方法來斷言 a in b _screenshot_as_file("D:\cnblogtest\\login_user_") def test_login_user_null(self): '''使用者名稱為空、密碼正確''' ('', 'kemi_xxx') #使用者名稱為空,密碼正確 error_message = _element_by_id('tip_input1').text (error_message,'請輸入登入使用者名稱') #用assertEqual(a,b)方法來斷言 a == b _screenshot_as_file("D:\cnblogtest\\login_user_") def tearDown(self): sleep(2) print('自動測試完畢!') () if __name__ == '__main__': ()
測試結果如下:
測試截圖效果如下:
正確使用者名稱和密碼登入成功!
正確使用者名稱,錯誤密碼登入失敗!
使用者名稱正確,密碼為空,登入失敗!
使用者名稱錯誤,密碼正確,登入失敗!
用記名為空,正確密碼,登入失敗!