一、查缺補漏
1. 在測試報告中新增註釋,寫在類名下面就行,方法名下面,三引號
2. 直接import ddt參照的時候需要ddt.ddt, ddt.data, ddt.unpack
from ddt import ddt,data,unpackkeyi from會更好,參照的時候直接data就行
二、DDT資料驅動
1. 資料驅動:將不同的資料在同一個業務邏輯上執行,只需寫一個測試用例獲取改變項,就可以完成測試檔案
2. 使用:
a. 安裝DDT(Data Driven Tests) pip install ddt
b. 語法:ddt只能對可迭代物件進行解包,像元組和列表,不可以用於字典解包,字典用zip
from ddt import ddt,data,unpack 從ddt庫種匯出ddt,data,unpack函數
在測試類上使用@ddt
在測試函數上使用@data(*case_data),進行資料解壓,然後每一個元素傳入測試函數
c. @data():解壓一層
@unpack(): 解壓多層
d. 用於取值做介面測試
三、紀錄檔
1. 紀錄檔模組
a. 紀錄檔作用:紀錄檔記錄程式的執行過程
b. 紀錄檔要素
i. 紀錄檔渠道:紀錄檔輸出位置,檔案,控制檯,用來收集紀錄檔的
ii. 紀錄檔級別:info、debug、error 我們經常用的
iii. 紀錄檔格式:紀錄檔的樣子,類似於報錯提示哪一行
iv. 紀錄檔內容:自己輸出的內容,或者是報錯資訊
2. 紀錄檔級別(debug < info < warning < error < critical)按嚴重度從小到大排序 ,檢視級別順序是隻可以檢視更嚴重的
a. debug:程式碼偵錯的輸出,不希望別人看到的紀錄檔
b. info:表示程式正常執行的輸出
c. warning:不影響程式執行,可以優化,提示你
d. error:程式執行報錯
e. critical:程式嚴重問題
f. 修改root收集器的紀錄檔級別:logging.basicConfig(level=logging.級別) 設定紀錄檔級別
3. 紀錄檔收集器建立
a. 建立紀錄檔收集器:建立和root一樣的收集器
test_log = logging.getLogger(name='紀錄檔渠道的名稱') 紀錄檔渠道的名稱一般是與專案名稱一致
b. 建立紀錄檔收集渠道:輸出到哪裡
範例化名稱1 = logging.StreamHandler() 建立紀錄檔控制檯渠道,需要範例化
c. 建立紀錄檔格式 fmt是引數,引數可以做名字,但是關鍵字不可以,紫色是引數 格式解釋在圖片裡
格式名 = '【%(asctime)s-%(name)s-%(levelno)s-%(levelname)s-%(pathname)s-%(lineno)d】:%(message)s'
格式接收名 = logging.Formatter(fmt = 格式名)
測試中的值傳給了message
d. 設定紀錄檔輸出格式【渠道】範例化名稱1.setFormatter(fmt =格式接收名) 範例化名稱1.setLevel(logging.級別) 渠道級別
e. 設定紀錄檔級別【收集器】test_log.setLevel(logging.級別) 一般只設定一個
f. 收集器繫結渠道 test_log.addHandler(範例化名稱1)
4. 紀錄檔切割 將紀錄檔收集到檔案中方便收集 紀錄檔會疊加在檔案中
handlers.RotatingFileHandler():按檔案大小切紀錄檔【瞭解】
handlers.TimedRotatingFileHandler():按時間切紀錄檔【掌握】
filename:紀錄檔檔名稱,要帶路徑,預設是當前目錄
when='h',:紀錄檔卷動週期的單位,S:秒, M:分鐘 ,H:小時, D:日, W:周, midnight:日期
interval=1:捲動週期(紀錄檔切割週期),1 間隔多個個when
backupCount=0:紀錄檔保留的個數
encoding=None:編碼格式
5. 函數封裝紀錄檔,一般呼叫紀錄檔函數的範例化物件,不直接呼叫函數
四、一些小記
1. 範例化名 = logging.getLogger() 範例化接收,裡面沒有內容列印出來沒有內容None 用於紀錄檔
2. 報缺少self欄位時多半是範例化問題,後面沒寫括號
3. 不想顯示None把print去掉就好
本文來自部落格園,作者:Alisa-sweet,轉載請註明原文連結:https://www.cnblogs.com/Alisa-sweet/p/17366853.html