Python_15 ddt驅動與日誌

sweet發表於2023-05-02

一、查缺補漏
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去掉就好

相關文章