1. 程式人生 > >一次完整的自動化登入測試-基於python+selenium進行cnblog的自動化登入測試

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

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__':
    ()

測試結果如下:

測試截圖效果如下:

正確使用者名稱和密碼登入成功!

正確使用者名稱,錯誤密碼登入失敗!

使用者名稱正確,密碼為空,登入失敗!

使用者名稱錯誤,密碼正確,登入失敗!

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