欧美三区_成人在线免费观看视频_欧美极品少妇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條評論
主站蜘蛛池模板: 国产成人免费视频网站高清观看视频 | 美女被网站大全在线视频 | 狠狠躁夜夜躁人人爽天天高潮 | 五月天激激婷婷大综合蜜芽 | 日韩欧美亚洲 | 中文字幕欧美在线 | 91国内外精品自在线播放 | 亚洲国产精品久久婷婷 | 国产精品一区二区久久久久 | 日韩中文字幕视频在线 | 久996视频精品免费观看 | 91大神精品长腿在线观看网站 | 99只有精品| 欧美日韩国产精品自在自线 | 日韩成人在线观看 | 色www 永久免费网站 | 色哟哟在线观看精品入口 | 亚洲精品久久久 | 国产精品午夜小视频观看 | 波多野衣结在线精品二区 | 日本视频高清免费观看xxx | 春色www在线视频观看 | 亚洲午夜网未来影院 | 国精品日韩欧美一区二区三区 | 日韩欧美亚洲国产 | 久久久久亚洲精品中文字幕 | 黄色片av | 天天看天天爽天天摸天天添 | 天天影院免费看电影 | 亚洲国产精品一区二区第一页 | 欧美一区二区三区在线视频 | 天天插天天干 | 精品国产精品三级精品av网址 | 国产高清在线精品免费 | 久草手机视频在线观看 | 成人黄色小视频网站 | 亚洲国产精品一区二区久久 | 精品乱码 | 狠狠色狠色综合曰曰 | 日本女人下面毛茸茸 | 91看片免费版 |