一次簡單完整的自動化登錄測試-基於python+selenium進行cnblog的自動化登錄測試


Web登錄測試是很常見的測試,手動測試大家再熟悉不過了,那如何進行自動化登錄測試呢!本文就基於python+selenium結合unittest單元測試框架來進行一次簡單但比較完整的cnblog自動化登錄測試,可提供點參考!下面就包括測試代碼和每種測試情況的截圖。

代碼如下:

 1 '''
 2 cnblog的登錄測試,分下面幾種情況:
 3 (1)用戶名、密碼正確
 4 (2)用戶名正確、密碼不正確
 5 (3)用戶名正確、密碼為空
 6 (4)用戶名錯誤、密碼正確
 7 (5)用戶名為空、密碼正確(還有用戶名和密碼均為空時與此情況是一樣的,這里就不單獨測試了)
 8 '''
 9 import unittest
10 from selenium import webdriver
11 from time import sleep
12  
13 class LoginCase(unittest.TestCase):
14  
15     def setUp(self):
16         self.dr = webdriver.Chrome()
17         self.dr.maximize_window()
18  
19     #定義登錄方法
20     def login(self, username, password):
21         self.dr.get('https://passport.cnblogs.com/user/signin')  #cnblog登錄頁面
22         self.dr.find_element_by_id('input1').send_keys(username)
23         self.dr.find_element_by_id('input2').send_keys(password)
24         self.dr.find_element_by_id('signin').click()
25  
26     def test_login_success(self):
27         '''用戶名、密碼正確'''
28         self.login('kemi_xxx', 'kemi_xxxx') #正確用戶名和密碼
29         sleep(3)
30         link = self.dr.find_element_by_id('lnk_current_user')
31         self.assertTrue('菜鳥可米' in link.text)   #用assertTrue(x)方法來斷言  bool(x) is True 登錄成功后用戶昵稱在lnk_current_user里
32         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_success.jpg")  #截圖  可自定義截圖后的保存位置和圖片命名
33  
34     def test_login_pwd_error(self):
35         '''用戶名正確、密碼不正確'''
36         self.login('kemi_xxx', 'kemi')  #正確用戶名,錯誤密碼
37         sleep(2)
38         error_message = self.dr.find_element_by_id('tip_btn').text
39         self.assertIn('用戶名或密碼錯誤', error_message)  #用assertIn(a,b)方法來斷言 a in b  '用戶名或密碼錯誤'在error_message里
40         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_error.jpg")
41  
42     def test_login_pwd_null(self):
43         '''用戶名正確、密碼為空'''
44         self.login('kemi_xxx', '')  #密碼為空
45         error_message = self.dr.find_element_by_id('tip_input2').text
46         self.assertEqual(error_message,'請輸入密碼')  #用assertEqual(a,b)方法來斷言  a == b  請輸入密碼等於error_message
47         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_null.jpg")
48  
49     def test_login_user_error(self):
50         '''用戶名錯誤、密碼正確'''
51         self.login('kemixing', 'kemi_xxx')  #密碼正確,用戶名錯誤
52         sleep(2)
53         error_message = self.dr.find_element_by_id('tip_btn').text
54         self.assertIn('該用戶不存在', error_message)  #用assertIn(a,b)方法來斷言 a in b
55         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_error.jpg")
56  
57     def test_login_user_null(self):
58         '''用戶名為空、密碼正確'''
59         self.login('', 'kemi_xxx')  #用戶名為空,密碼正確
60         error_message = self.dr.find_element_by_id('tip_input1').text
61         self.assertEqual(error_message,'請輸入登錄用戶名')  #用assertEqual(a,b)方法來斷言  a == b
62         self.dr.get_screenshot_as_file("D:\cnblogtest\\login_user_null.jpg")
63  
64     def tearDown(self):
65         sleep(2)
66         print('自動測試完畢!')
67         self.dr.quit()
68  
69 if __name__ == '__main__':
70     unittest.main()

 

測試結果如下:

測試截圖如下:

 

正確用戶名和密碼登錄成功!

spacer.gif

正確用戶名,錯誤密碼登錄失敗!

用戶名正確,密碼為空,登錄失敗!

用戶名錯誤,密碼正確,登錄失敗!

用記名為空,正確密碼,登錄失敗!


免責聲明!

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



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