欧美三区_成人在线免费观看视频_欧美极品少妇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 | 国产97人妻人人做人碰人人爽 | 久久精品国产99国产 | 免费无遮挡很爽很污很黄 | 天天躁夜夜躁很很躁麻豆 | 久草欧美 | 91青青操| 午夜a级片 | 日本中文字幕电影 | 91se在线看片国产免费观看 | 日韩黄色在线视频 | 性夜影院爽黄A爽免费动漫 日韩精品在线一区二区 | 午夜寂寞影院在线观看 | 毛片a级| 日本二本三本二区 | 99久久99热久久精品免费看 | 色精品一区二区三区 | 精品视频在线免费看 | 免费午夜不卡毛片 | 91在线网 | 欧美日韩一二三区 | 欧美日韩一区二区三区在线观看 | a级欧美片免费观看 | 鲁丝片一区二区三区毛片 | 欧洲免费无线码二区5 | 亚洲欧美日韩精品久久奇米色影视 | 欧美―第一页―浮力影院 | 中文字幕一区二区三区四区五区 | 丁香花成人另类小说 | 欧美日韩精品一区二区三区 | 精品推荐国产麻豆剧传媒 | 三级网站免费看 | 男女无遮挡高清性视频直播 | 国产精品福利片免费看 | 国产高清一区二区 | 日韩精品亚洲专区在线电影不卡 | 国产亚洲欧美日本一二三本道 | 中文字幕一区二区在线观看 |