欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python單元測試框架—Unittest

系統 1897 0

介紹

unittest原名為PyUnit,是由Java的JUnit衍生而來.它支持自動化測試,在測試中使用setup(初始化)和shutdown(關閉銷毀)操作,組織測試用例為套件(批量運行),以及把測試和報告獨立開來。為了實現這些,unittest以一種面向對象的方式產生了一些很重要的概念:

  • test fixture:fixture表示tests運行前需要做的準備工作以及結束后的清理工作。比如,創建臨時/代理數據庫、目錄或啟動一個服務器進程。
  • test case:test case是單元測試中的最小個體。它檢查特定輸入的響應信息。unittest提供了一個基礎類:TestCase,用來創建test case。
  • test suite:test suite是test case的合集,通常用test suite將test case匯總然后一起執行。
  • test runner:test runner是一個執行器,它可以執行case并提供結果給用戶。它可以提供圖形界面、文本界面或者返回一個值表示測試結果。

工作原理

unittest中最核心的五個概念是:test case, test suite,?testLoader,test runner, test fixture。

下面我們分別來解釋這四個概念的意思,先來看一張unittest的靜態類圖(下面的類圖以及解釋均來源于網絡,原文鏈接):

Python單元測試框架—Unittest_第1張圖片

  • 一個TestCase的實例就是一個測試用例。什么是測試用例呢?就是一個完整的測試流程,包括測試前準備環境的搭建(setUp),執行測試代碼(run),以及測試后環境的還原(tearDown)。單元測試(unit test)的本質也就在這里,一個測試用例是一個完整的測試單元,通過運行這個測試單元,可以對某一個問題進行驗證。
  • 而多個測試用例集合在一起,就是TestSuite,而且TestSuite也可以嵌套TestSuite。
  • TestLoader是用來加載TestCase到TestSuite中的,其中有幾個loadTestsFrom__()方法,就是從各個地方尋找TestCase,創建它們的實例,然后add到TestSuite中,再返回一個TestSuite實例。
  • TextTestRunner是來執行測試用例的,其中的run(test)會執行TestSuite/TestCase中的run(result)方法。?
  • 測試的結果會保存到TextTestResult實例中,包括運行了多少測試用例,成功了多少,失敗了多少等信息。
  • 而對一個測試用例環境的搭建和銷毀,是一個fixture。

簡單示例

            
              # coding=utf-8

__author__ = "小小漁夫"

from appium import webdriver
from common.HTMLTestRunner import HTMLTestRunner
import unittest


class LoginTest(unittest.TestCase):
    def setUp(self):
        desired_caps = {
            'platformName': 'Android',
            'deviceName': 'SGEEGEHIQ8I7CI90',
            'platformVersion': '7.0',
            'appPackage': 'com.XXX.mall',
            'appActivity': '.business.main.MainActivity'
        }
        self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)

    def testCase(self):
        self.driver.find_element_by_id("bottom_nav").click()
        self.driver.find_element_by_name('使用其他方式登錄').click()
        self.driver.find_element_by_name('手機登錄').click()
        self.driver.find_element_by_id("username").send_keys("18300000000")
        self.driver.find_element_by_name('獲取驗證碼').send_keys("123456")
        self.driver.find_element_by_id("btn").click()

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

if __name__ == "__main__":
    filename = "E:\\report.html"
    # stream測試報告寫入文件的存儲區域,verbosity參數可以控制輸出的錯誤報告的詳細程度,默認為1如果設為0,則不輸出每一用例的執行結果,如果設為 2,則輸出詳細的執行結果
    runner = HTMLTestRunner.HTMLTestRunner(title="測試報告標題", description="這是測試報告的描述", stream=open(filename, "wb"),verbosity=2, retry=0)
    runner.run()


            
          

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 正在播放国产无套露脸 | 久草在线视频资源站 | 丁香花在线电影小说观看 | 成年女人免费v片 | 精品欧美视频 | 欧美激情视频网 | 国产午夜小视频 | 国产精品成人无码A片免费网址 | 欧美久 | 一区二区三区久久 | 中文字幕一区二区在线观看 | 亚洲情综合五月天 | 国产亚洲综合一区在线 | WWW.亚洲最大夜色伊人 | 欧美亚洲国产日韩 | 精品视频 | 国产激爽大片高清在线观看 | 59pao成国产成视频永久免费 | 91大神精品长腿在线观看网站 | 在线手机电影 | 免费观看一级毛片 | 亚洲一级电影 | 日韩在线视频在线 | 久久精品久久精品国产大片 | 国产精品福利在线观看免费不卡 | 欧美一进一出 | 日韩在线精品 | 成年做羞羞免费观看视频网站 | 天天影院在线观看 | 欧美成人欧美激情欧美风情 | 欧美一区精品 | 深夜你懂的在线网址入口 | 欧美三级 在线播放 | 亚洲精品一区二区三区99 | 老头天天吃我奶躁我午夜视频 | 一区二区精品在线 | 久久精品无码一区二区日韩av | 精品国产青草久久久久福利 | 天天干视频网站 | 亚洲国产欧美在线 | 国产精品国产a |