av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術文章
文章詳情頁

Python unittest裝飾器實現原理及代碼

瀏覽:5日期:2022-07-12 08:01:05

1、前言

前面講到unittest里面setUp可以在每次執行用例前執行,這樣有效的減少了代碼量,但是有個弊端,比如打開瀏覽器操作,每次執行用例時候都會重新打開,這樣就會浪費很多時間。

于是就想是不是可以只打開一次瀏覽器,執行完用例再關閉呢?這就需要用到裝飾器(@classmethod)來解決了。

2、@classmethod 裝飾器中的 setUpClass() 和 tearDownClass() 與 setUp() 和 tearDown() 的區別

setUp():每個測試 case 運行之前運行 tearDown():每個測試 case 運行完之后執行 setUpClass():必須使用 @classmethod 裝飾器, 所有 case 運行之前只運行一次 @是修飾符,classmethod 是 python 里的類方法 tearDownClass():必須使用 @classmethod 裝飾器, 所有 case 運行完之后只運行一次

import unittestclass Test(unittest.TestCase): @classmethod def setUpClass(cls) -> None: print('-----開始執行用例-----') def setUp(self) -> None: print('執行用例準備動作...') def test01(self): print('第一條用例正在執行...') def test02(self): print('第二條用例正在執行...') def tearDown(self) -> None: print('用例執行完結動作...') @classmethod def tearDownClass(cls) -> None: print('-----用例執行結束-----') if __name__ == ’__main__’: unittest.main()#執行結果如下:'''-----開始執行用例-----執行用例準備動作...第一條用例正在執行...用例執行完結動作...執行用例準備動作...第二條用例正在執行...用例執行完結動作...-----用例執行結束-----'''

from selenium import webdriverimport unittestfrom time import sleepclass DymLogin(unittest.TestCase): @classmethod def setUpClass(cls) -> None: ''' 所有的用例只需要執行一次打開瀏覽器操作 ''' print('Test start...') cls.dr = webdriver.Chrome() cls.dr.get('http://www.duoyoumi.com/') cls.dr.implicitly_wait(10) cls.dr.maximize_window() cls.dr.find_element_by_class_name('login').click() sleep(1) @classmethod def tearDownClass(cls) -> None: sleep(2) cls.dr.quit() print('Test end...') def test_login01(self): ''' 賬號密碼都為空 ''' self.dr.find_element_by_name('loginName').clear() self.dr.find_element_by_name('loginPwd').clear() self.dr.find_element_by_xpath(’//*[@id='loginForm']/div/div/div/div[2]/div[1]/div[2]’).click() #登錄操作 TipsMsg = self.dr.find_element_by_class_name('promptLogin').text self.assertEqual(TipsMsg,'-請輸入登錄賬號!',msg='Test_login01 login exception') def test_login02(self): ''' 賬號正確,密碼為空 ''' self.dr.find_element_by_name('loginName').clear() self.dr.find_element_by_name('loginPwd').clear() self.dr.find_element_by_name('loginName').send_keys('17779828887') self.dr.find_element_by_xpath(’//*[@id='loginForm']/div/div/div/div[2]/div[1]/div[2]’).click() # 登錄操作 TipsMsg = self.dr.find_element_by_class_name('promptLogin').text self.assertEqual(TipsMsg, '-請輸入密碼!', msg='Test_login02 login exception') def test_login03(self): ''' 賬號密碼都正確 ''' self.dr.find_element_by_name('loginName').clear() self.dr.find_element_by_name('loginPwd').clear() self.dr.find_element_by_name('loginName').send_keys('17779828887') self.dr.find_element_by_name('loginPwd').send_keys('zy295240???') self.dr.find_element_by_xpath(’//*[@id='loginForm']/div/div/div/div[2]/div[1]/div[2]’).click() #登錄操作 sleep(2) TipsMsg = self.dr.find_element_by_css_selector('#w_nav_temp_1000 > div.fr.dl > a:nth-child(4)').text self.assertEqual(TipsMsg,'[退出]',msg='Test_login03 login exception')if __name__ == ’__main__’: unittest.main()#執行結果如下'''Test start......Test end...----------------------------------------------------------------------Ran 3 tests in 25.253sOK'''

3、通過裝飾器跳過某條用例

添加裝飾器(@unittest.skip(''))

import unittestclass Test(unittest.TestCase): def setUp(self) -> None: print('---start---') def tearDown(self) -> None: print('---end---') def testbbb(self): print('case testbbb') @unittest.skip('testaaa 被跳過') def testaaa(self): print('case testaaa')if __name__ == ’__main__’: unittest.main()# 結果如下s.----------------------------------------------------------------------Ran 2 tests in 0.000sOK (skipped=1)---start---case testbbb---end---

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 狠狠狠干| 亚洲第一av | 国产农村一级国产农村 | 久久精品一区 | 狠狠亚洲 | 一区二区三区亚洲 | 国产精品久久久av | 一级片免费视频 | 久久精品亚洲精品 | 国产欧美日韩一区二区三区在线观看 | 操网站| 久草新视频 | 国产亚洲精品a | 中文无码日韩欧 | 国产精品九九九 | 夜夜草导航 | 一级片片| 午夜精品一区二区三区在线观看 | 成人免费视频一区 | 国产精品久久久久久久久免费丝袜 | 中文字幕视频在线观看 | 国产传媒毛片精品视频第一次 | 成人欧美在线 | 国产精品一区二区三区在线 | 高清欧美性猛交 | 欧美激情区 | 欧美一级欧美三级在线观看 | 国产免费麻豆视频 | 久久久久久久久久久成人 | 日韩欧美视频 | 国产精品一区二区三区在线 | 成人国产精品久久久 | 狠狠干在线 | 欧美一区二区三区在线观看视频 | 99久久婷婷国产综合精品电影 | 成人欧美一区二区三区黑人孕妇 | 夜夜精品浪潮av一区二区三区 | 亚洲国产精品激情在线观看 | 亚洲视频 欧美视频 | 有码在线 | 亚洲精品久久久久中文字幕欢迎你 |