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>從執行結果可以看出,前置和後置在執行用例前只執行了一次。

通過裝飾器後,我們執行的耗時就縮短,執行一次即可跑完測試用例

初學者們,看到這裡你們明白了嗎?歡迎留言給出建議:)

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