Selenium2+python自動化54-unittest生成測試報告(HTMLTestRunner)

2022-01-31 從零開始學自動化測試

前言

批量執行完用例後,生成的測試報告是文本形式的,不夠直觀,為了更好的展示測試報告,可以生成HTML格式的。

unittest裡面方法是不能生成html格式報告的,需要導入一個第三方的模塊:HTMLTestRunner

 

一、導入HTMLTestRunner

1.這個模塊下載不能通過pip安裝了,只能下載後手動導入,下載地址:http://tungwaiyip.info/software/HTMLTestRunner.html

2.Download下HTMLTestRunner.py文件就是我們需要下載的包。

3.下載後手動拖到python安裝文件的Lib目錄下

 

二、demo解析

1.下載Download下的第二個文件test_HTMLTestRunner.py,這個就是官方給的一個測試demo了,從這個文件可以找到該模塊的用法。

2.找到下圖這段,就是官方給的一個demo了,test_main()裡上半部分就是加載測試case,我們不需要搞這麼複雜。

參考前面一篇內容就行了Selenium2+python自動化53-unittest批量執行(discover)

3.最核心的代碼是下面的紅色區域,這個就是本篇的重點啦。

 

三、生成html報告

1.我們只需把上面紅色區域代碼copy到上一篇的基礎上稍做修改就可以了,這裡主要有三個參數:

--stream:測試報告寫入文件的存儲區域

--title:測試報告的主題

--description:測試報告的描述

2.report_path是存放測試報告的地址

 

四、測試報告詳情

1.找到測試報告文件,用瀏覽器打開,點開View裡的Detail可以查看詳情描述。

2.為了生成帶中文描述的測試用例,可以在case中添加注釋,如在test_01的腳本添加如下注釋:

class Test(unittest.TestCase):
    def setUp(self):
        print "start!"

    def tearDown(self):
        time.sleep(1)
        print "end!"

    def test01(self):
        u'''測試登錄用例,帳號:xx 密碼xx'''
        print "執行測試用例01"

    def test03(self):
        u'''測試登搜索用例,關鍵詞:xxx'''
        print "執行測試用例03"

3.重新運行後查看測試報告

 

五、參考代碼:

# coding:utf-8
import unittest
import HTMLTestRunner

def all_case():
    # 待執行用例的目錄
    case_dir = "D:\\test\\yoyotest\\case"
    testcase = unittest.TestSuite()
    discover = unittest.defaultTestLoader.discover(case_dir,
                                                   pattern="test*.py",
                                                   top_level_dir=None)
    # discover方法篩選出來的用例,循環添加到測試套件中
    for test_suite in discover:
        for test_case in test_suite:
            # 添加用例到testcase
            testcase.addTests(test_case)
    print testcase
    return testcase

if __name__ == "__main__":
    # 返回實例
    # runner = unittest.TextTestRunner()
    report_path = "D:\\test\\yoyotest\\report\\result.html"

    fp = open(report_path, "wb")
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                           title=u'這是我的自動化測試報告',
                                           description=u'用例執行情況:')

    # run所有用例  交流QQ群:232607095
    runner.run(all_case())
    fp.close()

 

學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:232607095

相關焦點

  • 大廠測試筆記——HTMLTestRunner.py測試報告生成
    ',description=u'This is a report test')    runner.run(suite)Run的時候,需要使用Python Run,使用Python unit-test跑測試生成不了myreport.html,目前還不知道為什麼。
  • 自動化測試基礎篇:Selenium unittest 簡介
    unittest中有4個重要的概念:test fixture, test case, test suite, test runnerTestcase:一個TestCase的實例就是一個測試用例。什麼是測試用例呢?就是一個完整的測試流程,包括測試前準備環境的搭建(setUp),執行測試代碼 (run),以及測試後環境的還原(tearDown)。
  • Python unittest單元測試框架的使用
    現在用的也是這個,隨著了解,也有其他的框架,有時間再多去學習,保持持續學習哦~附上官方文檔地址:連結描述https://docs.python.org/2.7/library/unittest.html#unittest是Python自帶的單元測試框,可以用來作自動化測試框架的用例組織執行框架。
  • Python unittest單元測試框架的使用
    現在用的也是這個,隨著了解,也有其他的框架,有時間再多去學習,保持持續學習哦~附上官方文檔地址:連結描述https://docs.python.org/2.7/library/unittest.html#unittest是Python自帶的單元測試框,可以用來作自動化測試框架的用例組織執行框架。
  • selenium+unittest自動化測試實戰項目(一)
    (注:項目是針對我們公司內部系統的測試,只能內部網絡訪問,外部網絡無法訪問)問:1.外部網絡無法訪問,代碼也無法運行,那還看這個項目有啥用2.如何學習本項目3.如何學習自動化測試(python+selenium)答:1.其實代碼並不重要,希望大家完完整整的看完這個項目後,自己會有思路有想法,學會這個項目的框架結構和設計思想,把這些能應用到自己的項目中
  • 自動化測試基礎篇:Selenium 框架設計(POM)
    框架具有以下一些優點:1)代碼復用2)最大覆蓋率3)很低成本維護4)很少人工幹預5)簡單報告輸出2.常見的測試框架分類1)基於模塊的測試框架2)基於庫(Library)結構測試框架3)數據驅動測試框架,和QTP很像
  • Selenium2+python自動化55-unittest之裝飾器(@classmethod)
    運行完後只運行一次2.@是修飾符,classmethod是python裡的類方法 二、執行順序1.用類方法寫幾個簡單case,可以對比這篇:Selenium2+python自動化52-unittest執行順序# coding:utf-8import unittestimport timeclass
  • Python Unittest 根據不同測試環境跳過用例詳解
    如何使用sys.argv  3、自動化測試項目中如何一套代碼多套環境運行@unittest.skip(reason) , 直接跳過被裝飾的用例 ,reason用於填寫跳過用例的原因@unittest.skipIf(condition, reason) , condition 如果為真,跳過被裝飾的用例,reason用於填寫跳過用例的原因@unittest.skipUnless
  • python unittest使用基本過程
    前言unittest是python的標準的單元測試框架,能夠很好的和自動化測試相結合,並有獨立的測試報告框架。在selenium測試中,我們可以用來做webdriver的初始化等等testcase測試用例,unittest的最小單元。用以對指定輸入的返回結果進行檢測。在unittest中提供 了TestCase基類,用來創建新的測試用例類。
  • unittest測試框架
    ()指定使用TextTestRunner運行測試用例runner.run(suite)運行測試套件5.2 指定按順序運行一個模塊中的多個測試suite=unittest.TestSuite()tests=[類名(「測試函數名1」),類名(「測試函數名2」),...]
  • Python接口自動化之unittest單元測試
    ):    def testAdd(self):  # test method names begin with 'test'        self.assertEqual((1 + 2), 3)        self.assertEqual(0 + 1, 1)    def testMultiply(self):        self.assertEqual((0 * 1
  • Python單元測試框架-UnitTest以及測試報告
    test suite:測試套件,是測試用例、測試套件或者兩者的集合,用來將有關聯的測試項打包。test runner:負責執行測試並將結果展示給用戶,可以展示圖形或文字形式(unittest.TextTestRunner)的結果,或者返回一個錯誤碼標識測試用例的執行結果。
  • Python之UnitTest框架介紹
    UnitTest的介紹Python中相對比較流行的自動化測試框架UnitTest,早期主要時用於做單元測試,隨著自動化更新,能夠完善的結合Selenium/Appium/Requests等實現UI自動化與接口自動化。
  • Unittest接口測試生成報告和日誌方法
    now = datetime.datetime.now().strftime('%Y-%m-%d_%H_%M_%S') htmlreport = reportpath + "/" + now + r"result.html" print("測試報告生成地址:%s"% htmlreport) fp = open(htmlreport, "wb")
  • 學會Python+Selenium,分分鐘搭建Web自動化框架!
    用python+selenium實現UI自動化測試,要有一些HTML和xpth的基礎,當然python基礎一定是必須要會的。筆者建議花點時間了解下相關基礎知識,不至於後面發懵。一、什麼是selenium?selenium是個強大的工具集。
  • 乾貨丨Python接口測試自動化實戰及代碼示例:含get、post等方法
    最終選定 python 作為腳本開發語言,使用其自帶的 requests 和 urllib 模塊進行接口請求,使用優化後的 unittest 測試框架編寫測試接口函數,測試結果選用 HTMLTestRunner 框架予以展示,並使用 python 的 ssl 模塊支持 https 協議的驗證。接下來,我詳細地介紹這些模塊,並給出各個模塊完整的測試代碼。
  • Python測試開發庫及項目(超全面!)
    https://github.com/hitchtest/hitchhttps://github.com/python-needle/needleseleniumbase - 端到端自動化測試框架。https://github.com/RaiMan/SikuliX-2014https://github.com/reclosedev/pyautocadhttps://developer.android.com/studio/test/monkeyrunner/index.htmlhttps://pypi.python.org
  • APP UI自動化測試思路總結
    2,Airtest由網易開發(官方文檔),只支持python語言提供集成Airtest與Poco兩個測試框架的強大的IDE,對新手很友好集成基於圖像識別的UI自動化測試框架airtest,即使不懂代碼也能編寫自動化腳本跨平臺,可對Windows、Android和iOS應用軟體進行自動化測試
  • APP UI自動化測試,思路全總結在這裡了
    語言提供集成Airtest與Poco兩個測試框架的強大的IDE,對新手很友好集成基於圖像識別的UI自動化測試框架airtest,即使不懂代碼也能編寫自動化腳本跨平臺,可對Windows、Android和iOS應用軟體進行自動化測試對遊戲測試較為友好Airtest與Poco本質上是python的兩個第三方庫,測試環境搭建沒有Appium
  • 細說unittest單元測試框架
    一、單元測試框架說明 單元測試是指在編程中,針對程序模塊的最小單元(類中的方法)進行正確性檢驗的測試工作。python+selenium自動化測試中通常使用unittest或者pytest作為單元測試框架。