結合HTMLTestRunner作的改動,頁面內容拿的HttpRunnerManager中的測試報告模板(感謝HttpRunnerManager),HttpRunnerManager是直接將結果數據傳遞給報告,結合原HTMLTestRunner是在執行測試的同時將結果寫到測試報告中,功能還不夠完善,可是基本功能都已ok;模板地址:https://github.com/wishchen/ExtentHTMLTestRunnercss
from ExtentHTMLTestRunner import HTMLTestRunner filename="/*/result.html" fp=open(filename,'wb') runner=HTMLTestRunner( stream=fp, title='自動化測試報告', description='用例執行狀況:')
在報告中展現截圖:html
項目結構:git
from ExtentHTMLTestRunner import HTMLTestRunner import unittest class InterfaceTest(unittest.TestCase): def test_1(self): print("測試") print("screenshot_baidu.png") def test_2(self): a = 1 b = 2 return a*b if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(InterfaceTest)) filename="result22.html" fp=open(filename,'wb') runner=HTMLTestRunner( stream=fp, title='自動化測試報告', description='用例執行狀況:') runner.run(suite) fp.close()
運行結果:github
第二條用例沒有輸出什麼,因此是空api
項目結構和上面是同樣的,只是用例代碼不同:post
__author__ = 'Leo' from ExtentHTMLTestRunner import HTMLTestRunner import unittest,os,requests # 獲取根目錄 BASE_DIR = os.path.dirname(os.path.dirname(__file__)) # 獲取指定目錄test_case TEST_CASE = os.path.join(BASE_DIR,"test_case") class InterfaceTest(unittest.TestCase): def test_1(self): url = 'https://api.apiopen.top/getWangYiNews' data = { 'page':1, 'count':1 } r = requests.post(url=url,data=data) print(r.text) def test_2(self): a = 1 b = 2 # Name and print in this format "screenshot_*.png" if you want to show screenshot in report. print("screenshot_baidu.png") return a*b if __name__ == '__main__': # suite = unittest.TestSuite() # suite.addTest(unittest.makeSuite(InterfaceTest)) discover = unittest.defaultTestLoader.discover(TEST_CASE, pattern='test_002.py') filename="result.html" fp=open(filename,'wb') runner=HTMLTestRunner( stream=fp, title='自動化測試報告', description='用例執行狀況:') runner.run(discover) fp.close()
運行結果:學習
第二條用例使用了截圖功能,如圖所示:測試
喜歡的朋友能夠學習一下,後面還能夠平臺化,另外對測試及測試開發感興趣的夥伴,能夠加入到咱們的學習溝通羣,一塊兒提高本身!ui