如何生成HTMLTestRunner報告

今天,學習瞭如何生成HTMLTestRunner測試報告。 html

用unittest框架作app自動化測試,運行後,測試結果不便於查看,同時多個case存在的時候,可能會致使case result記錄不正確的狀況。 
爲此,引入了HTMLTestRunner.py,它是Python標準庫unittest模塊的一個擴展,它能夠生成直觀的HTML測試報告。app


 

首先,下載HTMLTestRuner.py文件。 
源地址:http://tungwaiyip.info/software/HTMLTestRunner.html 
HTMLTestRunner.py是針對Python2.7版本,對於Python3.x的使用,須要改動幾處。 
具體改動以下: 框架

第94行,將import StringIO修改爲import io 
第539行,將self.outputBuffer = StringIO.StringIO()修改爲self.outputBuffer= io.StringIO() 
第631行,將print >> sys.stderr, ‘\nTime Elapsed: %s‘ %(self.stopTime-self.startTime)修改爲print(sys.stderr, ‘\nTimeElapsed: %s‘ % (self.stopTime-self.startTime)) 
第642行,將if not rmap.has_key(cls):修改爲if not cls in rmap: 
第766行,將uo = o.decode(‘latin-1‘)修改爲uo = o
第772行,將ue = e.decode(‘latin-1‘)修改爲ue = e 
第778行,將output = saxutils.escape(uo+ue),修改爲output = saxutils.escape(str(uo)+str(ue)),

另外注意:編寫腳本打開文件的時候,fp=file(filename,」wb」)在Python3.x中file已經再也不使用了,須要使用的是fp=open(filename,」wb」) ;同時必定要記得close fp即fp.close() 學習

將上述幾處地方改動,保存成功後,將HTMLTestRunner.py放到Python安裝目錄下的Lib目錄中。測試

檢驗是否加載成功,在Python IDLE 中輸入 :ui

import HTMLTestRunner ,回車

若無報錯,那麼加載成功。spa


 

測試腳本:code

if __name__ == "__main__":
#    casesuit()
    #全部的用例集合
    all_test_cases = casesuit()

    #獲取系統當前時間
    now = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime(time.time()))
    day = time.strftime('%Y-%m-%d', time.localtime(time.time()))

    #定義單個測試報告的存放路徑,支持相對路徑
    tdresult = result + day

    #若已經存在以當天日期爲名稱的文件夾的狀況,則直接將測試報告放到這個文件夾之下
    if os.path.exists(tdresult):
        filename = tdresult + "\\" + now + "_result.html"
        #以寫文本文件或寫二進制文件的模式打開測試報告文件
        fp = open(filename, 'wb')
        #定義測試報告
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='MultiCalculator Auto Test Report', description=u'Result')
        #運行測試用例
        runner.run(all_test_cases)
        #關閉報告文件
        fp.close()
    else:
        #不存在以當天日期爲名稱的文件夾的狀況,則創建一個以當天日期爲名稱的文件夾
        os.mkdir(tdresult)
        #以寫文本文件或寫二進制文件的模式打開測試報告文件
        filename = tdresult + "\\" + now + "_result.html"
        fp = open(filename, 'wb')
        #定義測試報告
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='MultiCalculator Auto Test Report', description=u'Result')
        #運行測試用例
        runner.run(all_test_cases)
        #關閉報告文件
        fp.close()

執行測試腳本,就這樣獲得一個report htm

 

在Python3.6中,能夠獲得:blog

 

在result目錄下,有文件

 

打開後,如圖所示,這樣看測試結果明顯更直觀: 

相關文章
相關標籤/搜索