selenium自動化測試unittest單元測試框架

  1. 斷言方法
  2. unittest整體結構
  3. 舉個栗子(百度搜索頁測試用例)



一、斷言方法

方法 檢查
assertEqual(a,b) a == b
assertNotEqual(a,b) a != b
assertTrue(x) bool(x) is True
assertFalse(x) bool(x) is False
assertIs(a,b) a is b
assertIsNot a is not b
assertIsNone(x) x is None
assertIsNotNone(x) x is not None
assertIn(a,b) a in b
assertNotIn(a,b) a not in b
assertIsInstance(a,b) isinstance(a,b)
assertNotIsInstance(a,b) not isinstance(a,b)

在這裏插入圖片描述


二、unittest整體結構

Test Case

一個TestCase的實例就是一個測試用例。什麼是測試用例?就是一個完整的測試流程,包括測試前準備環境的搭建、實現測試過程的代碼,以及測試後環境的還原。單元測試的本質,一個測試用例就是一個完整的測試單元,通過運行這個測試單元,可以對某一功能進行驗證。

Test Suite

一個功能的驗證往往需要多個測試用例,可以把多個測試用例集合在一起來執行,這就產生了測試套件TestSuite的概念。Test Suite用來組裝單個測試用例。可以通過addTest加載TestCase到TestSuite中,從而返回一個TestSuite實例。

Test Runner

測試的執行也是單元測試中非常重要的一個概念,一般單元測試框架中都會提供豐富的執行策略和執行結果。在unittest單元測試框架中,通過TextTestRunner類提供的run()方法來執行test suite/test case。test runner可以使用圖形界面、文本界面,或返回一個特殊的值等方式來表示測試執行的結果。

Test Fixture

對一個測試用例環境的搭建和銷燬,就是一個fixture,通過覆蓋TestCase和setUp()和tearDown()方法來實現。比如說在這個測試用例中需要訪問數據庫,那麼可以在setUp()中通過建立數據庫連接來進行初始化,在tearDown()中清除數據庫產生的數據,然後關閉連接等。



三、舉個栗子

在這裏插入圖片描述

from selenium import webdriver
import  unittest
import time

class MyTest(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome()
        self.driver.maximize_window()
        self.driver.implicitly_wait(10)
        self.base_url = 'http://www.baidu.com'

    def test_baidu(self):
        driver = self.driver
        driver.get(self.base_url + '/')
        driver.find_element_by_id("kw").clear()
        driver.find_element_by_id("kw").send_keys("unittest")
        driver.find_element_by_id("su").click()
        time.sleep(2)
        title = driver.title
        self.assertEqual(title,"unittest_百度搜索")

    def tearDown(self):
        self.driver.quit()

if __name__ == '__main__':
    unittest.main()






在這裏插入圖片描述
warning :未經授權,不得轉載
有問題的小夥伴請在下方留言,喜歡就點個贊吧;關注我,帶你一起寫bug
知乎:叄貳壹
簡書:帶只拖鞋去流浪

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章