BeautifulReport底層框架的解析以及html報告頁面元素的更改


利用BeautifulReport 模塊生成html報告
import BeautifulReport as br#引入包,之后設置一下別名
br = br.BeautifulReport(test_suit)#將用例集加入到對象中
br.report(description="beautifulreport",filename="brtest",log_path="")#執行用例統計結果,並生成測試報告
#filename是測試報告的名稱,log_path可以指定測試報告的存儲目錄,這個參數可選

如上操作report方法實現了用例的執行、用例執行結束的結果統計、生成測試報告等操作。

接下來就通過代碼的跟蹤來了解一下BeautifulReport 底層結構,便於我們了解代碼,以后可以根據自己的實際需求來更改生成的報告。注意:讀如下代碼時一定要配合着底層代碼一起閱讀

 1、self.suit.run

因為測試用例所在的類繼承了unittest.TestCase,所以這里所調用的run方法是TestCase類中的run()方法,進入方法

 

其中testPartExecutor是用來執行測試用例的具體方法的

 

addSuccess當用例斷言校驗成功是會執行addSuccess方法,因為result對象是run()方法的參數,調用run的方法所屬類繼承了ReportTestResult類,而ReportTestResult最后又繼承了TestResult類,所以這個addSuccess方法在TestResult這個類當中,但是因為ReportTestResult重寫了TestResult中addSuccess的這個方法,所以最后跟蹤到的是ReportTestResult類。

這個方法執行之后呢,繼續執行stopTest()方法,這個方法也被ReportTestResult類重寫

self.result_list.append這個方法將測試用例執行結果的信息寫入到result_list中

 

 

 可以通過get_testcase_property這個方法增加屬性信息,最后向result_list列表中增加屬性值,也可以更改最初傳過來的參數-(TestCase)測試用例實體類test的內容以便獲取test的信息之后操作所需要的屬性信息

 2、self.stopTestRun

 

 

 所有測試用例執行完成之后執行stopTestRun方法,方法體中有一個str(MakeResultJson(item))方法,首先實例化MakeResultJson類,將item數據加入這個類中,之后將對象轉為字符串,通過str方法,又因為MakeResultJson里面重寫了__repr__方法,所以在對象轉為字符串是,str(MakeResultJson(item))先調用的str,之后str內部調用的__repr__,又因為MakeResultJson重寫了__repr__,所以調用的是最新的__repr__方法

 

如上的這個方法keys的集合就是顯示在html頁面上面的關鍵字信息,所以可以通過更改此方法,從而更改html頁面的元素信息

3、self.output_report()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM