同志們,老鐵們,繼上篇文章 web自動化測試實戰之批量執行測試用例 以後咱們接着繼續往下走,有人說咱們運行了全部測試用例,控制檯輸入的結果,若是不少測試用例那也不可以清晰快速的知道多少用例經過率以及錯誤狀況。html
web自動化測試實戰之批量執行測試用例 場景: 運行 AllTest.py 文件後獲得的測試結果不夠專業,沒法直觀的分析測試結果,咱們可否有一個報告直接展現我測試用例運行的測試結果呢。答案是,固然有。python
這裏咱們須要藉助第三方庫生成HTML格式的測試報告。這裏用到的庫是 HTMLTestRunner.py / HTMLTestReportCN.py 文件存放路徑爲 Python安裝路徑的Lib子文件夾中例如:F:\python3\Lib 以下圖,那麼當咱們將包成功導入到LIb目錄下後,咱們能夠在 AllTest.py 代碼開頭直接引用咱們對應的報告格式包。web
備註: HTMLTestRunner.py HTMLTestReportCN.py 一會最後小編會將包打包好推送給你們,都是基於Python3源碼都根據python3修改支持使用的,2個包用法是一致,只是展現報告的風格不一樣一下子小編會給你介紹大概樣式,各位能夠喜歡那種就引用哪一種。單元測試
如今咱們的包導入進來,接着咱們要作的是生成的報告咱們也要建立一個目錄存在報告文件例如:'F:\\python3\\report' ,好報告的包導入了,存放報告的目錄咱們也建立好了,那麼咱們來看看基於上篇 AllTest.py 執行全部測試用例直接輸出到報告怎麼寫測試
01.第一種咱們引用的 HTMLTestReportCN.py 以下代碼ui
# -*-coding=utf-8-*- import unittest import os, time import HTMLTestReportCN # 用例路徑 case_path = 'F:\\python3\\python_code\\test_case_suite' def AllTest(): '''獲取全部的測試模塊''' suite = unittest.TestLoader().discover( start_dir=os.path.dirname(case_path), pattern='case*.py', top_level_dir=None ) return suite def getNowTime(): '''獲取當前的時間''' return time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())) def run(): fileName = os.path.join('F:\\python3\\report', getNowTime() + 'report.html') fp = open(fileName,'wb') runner = HTMLTestReportCN.HTMLTestRunner( stream=fp, title=u'項目測試環境單元測試報告', description=u'注:爲減小時間人力成本,提升轉測質量,特每次對測試環境待發布的代碼會對基礎功能模塊進行單元測試,進一步的提升測試效率,以下爲用例執行結果,請查閱!') runner.run(AllTest()) if __name__ == '__main__': run()
註解:在以上完善後的AllTest.py文件中其中導入了os,timemo模塊、HTMLTestReportCN 庫。getNowTime 方法用來獲取當前時間,每一次生成的測試報告若是文件名稱一致,因爲加上了最新時間信息,即可以根據文件名稱確認哪一個是最新的測試報告3d
run 方法用來執行測試套件中的測試用例和生成測試報告。在report 文件夾下生成了最新的測試報告,report的目錄以下圖所示code
02.第二種咱們引用的 HTMLTestRunner.py 以下代碼htm
# -*-coding=utf-8-*- import unittest import os, time import HTMLTestRunner # 用例路徑 case_path = 'F:\\python3\\python_code\\test_case_suite' def AllTest(): '''獲取全部的測試模塊''' suite = unittest.TestLoader().discover( start_dir=os.path.dirname(case_path), pattern='case*.py', top_level_dir=None ) return suite def getNowTime(): '''獲取當前的時間''' return time.strftime('%Y-%m-%d-%H-%M-%S', time.localtime(time.time())) def run(): fileName = os.path.join('F:\\python3\\report', getNowTime() + 'report.html') fp = open(fileName,'wb') runner = HTMLTestRunner.HTMLTestRunner( stream=fp, title=u'巡服帶教測試環境單元測試報告', description=u'注:爲減小時間人力成本,提升轉測質量,特每次對測試環境待發布的代碼會對基礎功能模塊進行單元測試,進一步的提升測試效率,以下爲用例執行結果,請查閱!') runner.run(AllTest()) if __name__ == '__main__': run()
查看報告輸出樣式blog
以上就是web自動化批量執行用例以後若是生成報告文件,最近工做比較繁忙,會抽空給你們分享好文,持續分享持續輸出,但願本文對大家會有所幫助。