UI自動化unittest框架之裝飾器@classmethod
- 2019 年 11 月 20 日
- 筆記
01
進入正文探討
前言:unittest框架大家應該很熟悉,unittest裡面setUp可以在每次執行用例前執行,這樣有效的減少了程式碼量,但是有個弊端,就是我們每執行一條用例,就會打開一次瀏覽器;缺點:操作繁瑣、耗時長、易報錯。
於是就想是不是可以只打開一次瀏覽器,執行完所有用例再關閉呢?
這就需要用到裝飾器(@classmethod)來解決了。
一.裝飾器
1>用setUp與setUpClass區別
- setup():每個測試case運行前運行
- teardown():每個測試case運行完後執行
- setUpClass():必須使用@classmethod 裝飾器,所有case運行前只運行一次
- tearDownClass():必須使用@classmethod裝飾器,所有case運行完後只運行一次
2>@是修飾符,classmethod是python里的類方法
二.selenium實例模型
1>可以把打開瀏覽器操作放到前置setUpClass(cls)里,這樣就可以實現打開一次瀏覽器,執行多個case了
# coding:utf-8 import unittest import time class Test(unittest.TestCase): @classmethod def setUpClass(cls): print("start!") #初始化環境 開始執行腳本 @classmethod def tearDownClass(cls): time.sleep(1) print("end!") #結束 def test01(self): print(u"執行測試用例01") #開始執行測試用例... def test03(self): print(u"執行測試用例03") def test02(self): print(u"執行測試用例02") def addtest(self): print(u"add方法") if __name__ == "__main__": unittest.main()
2>從執行結果可以看出,前置和後置在執行用例前只執行了一次。
通過裝飾器後,我們執行的耗時就縮短,執行一次即可跑完測試用例
初學者們,看到這裡你們明白了嗎?歡迎留言給出建議:)

文部分來源網路,如有侵權請第一時間聯繫刪除。