1. 程式人生 > 實用技巧 >大廠測試總監簡單教你用python自動化生成測試報告

大廠測試總監簡單教你用python自動化生成測試報告

前言

日常測試當中常常要將測試結果輸出為報告文件公之於眾,如果能將報告文件生成的過程自動化實現,效率的提升無疑是可觀的。

針對這一項,我們瞭解並嘗試通過python中的docx模組進行word文件自動化生成,在這裡將基本方法與實現過程分享一下。

安裝

由於使用的是python3,實踐過程中發現,如果直接使用pip命令安裝模組:

pip install docx

import模組會因版本問題報錯,應前往:https://www.lfd.uci.edu/~gohlke/pythonlibs/下載最新的python_docx-0.8.10-py2.py3-none-any.whl再解除安裝原版本並重新安裝此whl檔案:

pip uninstall docx

此時再次嘗試import docx則不再有報錯提示,即安裝成功。

基本方法

安裝成功後,則可以開始著手根據格式、內容需求來生成文件,下面根據文件生成過程中的一些要素來介紹一些docx模組的基本方法。

首先是建立空白文件,其後的所有操作都需要基於文件物件document來進行操作:

from docx import Document

其次則是為文件新增標題、段落這樣的基本元素:

document.add_heading('This is my title', 1)    #新增1級標題

但以此方式新增的標題、段落,其格式只能為docx模組預設格式且內容不易修改,實踐中採取了一種更為靈活的方式:

head = document.add_heading(level=1)              #新增標題

由此,使用run物件進行內容追加,即可於後續直接對其字型等文字屬性進行修改,例如:

run.font.name = fontName                           #設定英文字型

而關於字號、加粗、顏色等其他屬性的設定方式和字型設定類似,此處以一個整合函式為例:

from docx.shared import Inches, Pt, RGBColor, Cm

同樣的,也可以修改段落相關屬性以契合預期表現效果:

from docx.enum.text import WD_ALIGN_PARAGRAPH

在完善了文件中文字、段落的格式之後,還需要針對測試報告中不可或缺的圖片與表格進行新增與設定:

# 新增圖片並居中,'pic.png'為相對路徑,width為圖片相對大小

# 新增表格,rows和cols為行列數、Table Grid為實體邊框樣式

最後,考慮到文件的整體樣式,可以對其頁面進行設定:

#頁面設定,A4,窄邊距

實現過程

先來列舉兩個實現過程中的問題以作示例,繼而對文件自動化生成的整體思路進行引申。

其一,報告內容中存在著多處需要加粗或改變字型的文字,那麼如何便捷地適配每處文字的具體表現呢?此處的方案是先預設一些‘關鍵詞’如:'V5.1'、'高階機'等,再組成適配re.split()的正則表示式去對報告內容進行分割與設定:

# 根據預設關鍵詞拼接正則表示式

其二,考慮到表格著存在不同形式的合併需求,那麼如何使其合併方式自動化地適配資料呢?此處的方案為在預設表格資料時,將合併的表格內資料重複寫一次,即:

#表格資料——“評測專案”首行1-2列合併則寫了2次、”對比產品“首列5-8行合併寫了4次

其後於指令碼的表格輸出方法中,直接根據所讀取到的重複資料項分佈方式來決定表格的合併形式,如首行1-2列資料重複,則:

table.cell(0, 0).merge(table.cell(0, 1))

由以上兩個問題進行舉一反三,實際上整篇文件均是採取了預設資料、讀取資料、輸出資料這樣的流程進行生成的,其中預設資料指的是:

而資料讀取環節,則是去遍歷content_data.items()中的內容,由此找到報告文件中每一小節中對應的預設內容,再去根據內容標識進行區分使用對應的方法進行資料輸出:

總結

對面試經驗、軟體、介面、自動化測試感興趣可以175317069,群內會有不定期的免費資料連結發放。如果你有好的學習資料可以私聊發我,我會註明出處之後分享給大家。

綜上,自動化測試報告生成指令碼便完成了,在其後的版本迭代過程中只需更改預設資料中的內容,不同樣式或內容的報告即可自動生成,希望本文對大家有所幫助。