unittest(執行用例)


from selenium import webdriver
from time import sleep
import unittest#導入unittest庫
import HTMLTestRunner

#創建一個類,並且該類繼承unittest.case類
class Test_baidu(unittest.TestCase):

    #初始環境,每一個用例執行時都會先執行這里的代碼
    def setUp(self):
        self.dr=webdriver.Chrome()#調用指定的瀏覽器並賦值給dr
        self.dr.maximize_window()
        self.dr.implicitly_wait(10)#智能等待作用和sleep一樣
        self.dr.get('https://www.baidu.com')
        sleep(2)

    #測試用例---執行搜索新方碩--測試用例的腳本
    def test_case2(self):
        self.dr.find_element_by_id('kw').send_keys(u'新方碩')
        sleep(3)

    #測試用例--執行搜索新東方
    def test_case1(self):
        self.dr.find_element_by_id('kw').send_keys(u'新東方')
        sleep(3)

   #還原環境(結束)---用例執行后關閉瀏覽器(掃尾工作)
    def tearDown(self):
        self.dr.close()
  • 方案一
 if __name__=="__main__":
     unittest.main()

    #unittest.main()他可以將一個單元測試的模塊變為可以執行的腳本,所謂main()的方法使用了
    # unittest中testloader類來搜索以test開頭的測試用例,並自動執行
    # main()執行順序是以ascii用來執行順序0-9,A-Z,a-z
  • 方案二:用例的執行順序,根據你添加的順序進行執行
 if __name__=='__main__':
     suite=unittest.TestSuite()  #構造一個容器用來存放我們的測試用例
     suite.addTest(Test_baidu('test_case2'))  #添加類中的測試用例
     suite.addTest(Test_baidu('test_case1'))  #添加類中的測試用例
     run=unittest.TextTestRunner()
     run.run(suite)  #調用對象中的run的方法執行測試套件:suite

#或者如下

 if __name__=='__main__':
     suite=unittest.TestSuite()
     suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
     run=unittest.TextTestRunner()
     run.run(suite)

#還或者如下

 if __name__=='__main__':
     suite=unittest.TestSuite()
     testcates=[Test_baidu('test_case2'),Test_baidu('test_case1')]
     suite.addTests(testcases)
     run=unittest.TextTestRunner()
     run.run(suite)
  • unittest.TestSuite() 執行用例問題如下:
    • 步入正軌解決方案出爐,在右鍵點擊 run 時,發現 run 后面為 unittest.in filename,以前執行文件時都是 Run fliename,也就是說整個文件都是按照 unittest 模式來執行的  

  • 看到了 兩個執行的不一致,兩個辦法如下:
    • 點擊控制台Run來運行  

    • 點擊 控制台的右上角見圖  

    • 此時右鍵執行就會發現不在 unittest 模式下了哦  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM