1. 程式人生 > >《一頭扎進》系列之Python+Selenium自動化測試框架實戰篇7 - 年底了還沒升職加薪,年終獎全靠它了!!!

《一頭扎進》系列之Python+Selenium自動化測試框架實戰篇7 - 年底了還沒升職加薪,年終獎全靠它了!!!

1. 簡介

  截止到上一篇文章為止,框架基本完全搭建完成。那麼今天我們要做什麼呢????聰明如你的小夥伴或者是童鞋一定已經猜到了,都測試完了,當然是要生成一份高階大氣上檔次的測試報告了。沒錯的,今天巨集哥就帶領你們將這部分內容也整合到這個框架中。本文來介紹如何生成自動化測試報告,前面文章尾部提到了利用HTMLTestRunner.py來生成自動化測試報告。關於HTMLTestRunner不過多介紹,只需要知道是一個能生成一個HTML格式的網頁報告就可以,其他的如果你特別感興趣可以自己去搜索查詢資料。我們需要在巨集哥前邊介紹的自動化框架裡面繼承一個報告輸出,直接來看看效果。

2. 測試報告效果

2.1 測試報告檔案

  我們從下圖中,可以清楚地看到在test_report資料夾下生成的測試報告

2.2 瀏覽器預覽效果

  因為生成的是.html檔案,所以這裡用瀏覽器開啟我們看一下效果如下圖:

2.3 實現

  這裡我們報告輸出程式碼寫到了,負責執行測試套件TestRunner.py這個檔案。相關程式碼如下:

TestRunner.py

2.3.1 程式碼實現:

2.3.2 參考程式碼:
# -*- coding:utf-8 -*-

# 1.先設定編碼,utf-8可支援中英文,如上,一般放在第一行

# 2.註釋:包括記錄建立時間,建立人,專案名稱。
'''
Created on 2019-12-25
@author: 北京-巨集哥   QQ交流群:705269076
Project: 《一頭扎進》系列之Python+Selenium自動化測試框架實戰篇7 - 年底了還沒升職加薪,年終獎全靠它了!!!
'''
# 3.匯入模組
from automation_framework_demo.testsuits import HTMLTestReportCN
import os
import unittest
import time
from automation_framework_demo.framework.SendEmail import SendMail

# 設定報告檔案儲存路徑
report_path = os.path.dirname(os.path.abspath('.')) + '/test_report/'

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

# 設定報告名稱格式
HtmlFile = report_path + now + "HTMLtemplate.html"
#fp = file(HtmlFile, "wb")
fp = open(HtmlFile, "wb")

#用例路徑
case_path = os.path.join(os.getcwd(), '')
print('case_path',case_path)


# 構建suite
# suite = unittest.TestLoader().discover(case_path, "test_baidu_search.py", top_level_dir=None)
suite = unittest.TestLoader().discover(case_path, "baidu_search1.py", top_level_dir=None)

if __name__ == '__main__':
    #初始化一個HTMLTestRunner例項物件,用來生成報告
    runner = HTMLTestReportCN.HTMLTestRunner(stream=fp, title=u"Python+Selenium自動化測試框架實戰篇7專案演示測試報告", description=u"用例測試情況")
    #開始執行測試套件
    runner.run(suite)
    # runner = unittest.TextTestRunner()
    # runner.run(suite)
    fp.close()
2.3.3 執行結果:

  執行程式碼後,控制檯列印如下圖的結果

2.3.4 測試報告預覽

  測試報告用瀏覽器開啟截圖,在你專案檔案路徑下,找到這個HTML的報告,用本地瀏覽器開啟。

  如何生成自動化測試報告就介紹到這裡。

3. 測試報告模板外掛

  巨集哥這裡為了方便,直接將測試報告的模板外掛,直接放在了testsuits的檔案下,如圖:

  如果有潔癖的小夥伴或者童鞋們,可以自己建一個資料夾專門來儲存這個模板外掛也可以的,但是不要忘記了最重要的一條就是將其匯入,否則可能會報找不到的錯誤哦!

4. 匯入測試報告模板外掛

  如何匯入?其實很簡單的,就像python匯入其他模組一樣。例如巨集哥這裡的匯入方法如下:

  巨集哥總結如下:

from  資料夾路徑  import 外掛名字.py

5. 執行所有測試用例

  除了上一篇那種找到資料夾,執行所有測試用例,我們還有別的方法執行所有測試用例嗎?當然有,但是對測試用例的名字的命名有要求,其實也不是硬性要求,只不過是為了後邊我們的正則表示式好寫,這裡命名就規範一些。

5.1 命名規則:

  所有測試用例的名字都以test開頭,例如:test_login.py。

5.2 正則表示式:

  正則表示式:test*.py

5.3 程式碼實現:

5.4 參考程式碼:

# 構建suite
# suite = unittest.TestLoader().discover(case_path, "test_baidu_search.py", top_level_dir=None)
suite = unittest.TestLoader().discover(case_path, "test*.py", top_level_dir=None)

6. 小結

  好了,今天的分享就到這裡吧!!!謝謝各位的耐心閱讀。有問題加群交流討論!!!

哎呀!!!忘記了,最後祝大家聖誕節快樂。。Merry Christmas!!!

 

 

 

您的肯定就是我進步的動力。如果你感覺還不錯,就請鼓勵一下吧!記得隨手點波  推薦  不要忘記哦!!!

別忘了點 推薦 留下您來過的痕跡

 

&n