1. 程式人生 > 實用技巧 >python3自動化測試-使用BeautifulReport生成視覺化測試報告

python3自動化測試-使用BeautifulReport生成視覺化測試報告

1、獲取 BeautifulReport 包

BeautifulReport,git地址:

https://github.com/TesterlifeRaymond/BeautifulReport

1)如果自己電腦上安裝了git,可以直接使用git命令克隆到本地指定目錄下

git clone https://github.com/TesterlifeRaymond/BeautifulReport

2)如果沒有安裝git,直接在git上下載BeautifulReport.ZIP ,解壓到到本地python的的/Lib/site-packages/目錄下

3)修改BeautifulReport.py的2個地方

2、使用BeautifulReport,生成報告

 1 #coding=utf-8
 2 '''
 3 Created on 2020年8月13日
 4 
 5 @author: Administrator
 6 
 7 Descriptions: execute testcases
 8 '''
 9 import unittest
10 import os, datetime
11 from BeautifulReport import BeautifulReport
12 from tools.sendmail import SendMail
13 from config import
conf 14 15 root_dir = os.path.dirname(os.path.abspath(__file__)).replace('\\', '/') 16 test_dir = root_dir + '/testcases'#測試用例所在的目錄 17 report_dir = root_dir + '/testreport'#存放測試報告的目錄 18 19 discover = unittest.defaultTestLoader.discover(test_dir, 'login_testcase.py', None) 20 now = datetime.datetime.now().strftime('
%Y-%m-%d %H_%M_%S') 21 filename = '測試報告' + str(now) 22 BeautifulReport(discover).report(description='測試', filename=filename, log_path=report_dir) 23 24 #傳送郵件 25 SendMail().sendEmail(filename)26 27

3、BeautifulReport截圖需要在測試類中新增一個save_img的方法

1 def save_img(self, img_name): 
2       self.driver.get_screenshot_as_file('{}/{}.png'.format(conf.img_dir, img_name))

然後呼叫時,只需要在測試方法上面加個裝飾器就行了:

 1     """登入模組測試用例"""
 2     @BeautifulReport.add_test_img('登陸成功')
 3     def test_login1(self):
 4         """使用者名稱正確,密碼正確,登入成功"""
 5         self.login.loginFunc()
 6         self.save_img('登陸成功')
 7         time.sleep(3)
 8         currUrl = self.driver.current_url # 獲取當前的url地址
 9         
10         try:
11             self.assertIn('index', currUrl, 'index not in current url!')#判斷index在當前url中
12         except Exception:
13             self.login.saveScreenShot('cor_un_pw_fail.png')
14             raise
15         else:
16             self.login.saveScreenShot('cor_un_pw_pass.png')
17             log.logger.info('%s->run completed! ' % (sys._getframe().f_code.co_name))
18             self.login.quit()

4、測試報告樣式