Web登錄測(cè)試是很常見(jiàn)的測(cè)試,手動(dòng)測(cè)試大家再熟悉不過(guò)了,那如何進(jìn)行自動(dòng)化登錄測(cè)試呢!本文就基于python+selenium結(jié)合unittest單元測(cè)試框架來(lái)進(jìn)行一次簡(jiǎn)單但比較完整的cnblog自動(dòng)化登錄測(cè)試,可提供點(diǎn)參考!下面就包括測(cè)試代碼和每種測(cè)試情況的截圖。
代碼如下:
1 '''
2 cnblog的登錄測(cè)試,分下面幾種情況:
3 (1)用戶名、密碼正確
4 (2)用戶名正確、密碼不正確
5 (3)用戶名正確、密碼為空
6 (4)用戶名錯(cuò)誤、密碼正確
7 (5)用戶名為空、密碼正確(還有用戶名和密碼均為空時(shí)與此情況是一樣的,這里就不單獨(dú)測(cè)試了)
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登錄頁(yè)面
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('菜鳥(niǎo)可米' in link.text) #用assertTrue(x)方法來(lái)斷言 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') #正確用戶名,錯(cuò)誤密碼
37 sleep(2)
38 error_message = self.dr.find_element_by_id('tip_btn').text
39 self.assertIn('用戶名或密碼錯(cuò)誤', error_message) #用assertIn(a,b)方法來(lái)斷言 a in b '用戶名或密碼錯(cuò)誤'在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,'請(qǐng)輸入密碼') #用assertEqual(a,b)方法來(lái)斷言 a == b 請(qǐng)輸入密碼等于error_message
47 self.dr.get_screenshot_as_file("D:\cnblogtest\\login_pwd_null.jpg")
48
49 def test_login_user_error(self):
50 '''用戶名錯(cuò)誤、密碼正確'''
51 self.login('kemixing', 'kemi_xxx') #密碼正確,用戶名錯(cuò)誤
52 sleep(2)
53 error_message = self.dr.find_element_by_id('tip_btn').text
54 self.assertIn('該用戶不存在', error_message) #用assertIn(a,b)方法來(lái)斷言 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,'請(qǐng)輸入登錄用戶名') #用assertEqual(a,b)方法來(lái)斷言 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('自動(dòng)測(cè)試完畢!')
67 self.dr.quit()
68
69 if __name__ == '__main__':
70 unittest.main()
測(cè)試結(jié)果如下:
測(cè)試截圖如下:
正確用戶名和密碼登錄成功!
正確用戶名,錯(cuò)誤密碼登錄失??!
用戶名正確,密碼為空,登錄失??!
用戶名錯(cuò)誤,密碼正確,登錄失??!
用記名為空,正確密碼,登錄失?。?mark hidden color="red">文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-561586.html
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-561586.html
正在學(xué)習(xí)測(cè)試的小伙伴可以通過(guò)點(diǎn)擊下面的小卡片?
到了這里,關(guān)于python+selenium進(jìn)行cnblog的自動(dòng)化登錄測(cè)試的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!