unittest擴展功能庫unittestreport—V1.1.1版本使用詳細文檔


unittestreport—V1.1.1版本使用詳細文檔

前言

關於unittestreport最初在開發的時候,最初只是計划開發一個unittest生成html測試報告的模塊,所以起名叫做unittestreport。在開發的過程中結合使用的小伙伴的一些反饋,所以慢慢的擴展了更多的功能進去。之前在寫unittestreport的時候,也陸續寫了幾遍關於unittestreport相關功能的使用,每次都是一個特定的功能,這邊給出一遍系統的使用文檔來給大家介紹一下unittestreport的功能。

  • 關於unittestreport是什么?

    • unittestreport是基於unittest開發的的一個功能擴展庫,為unittest提供了一些常用的擴展功能:

      • HTML測試報告生成

      • 測試用例失敗重運行

      • 發送測試結果及報告到郵箱

      • unittest數據驅動

  • 安裝命令:

    cmd命令行下輸入下面的命令進行安裝

    pip install unittestreport
  • 備注:

    • 開發者:檸檬班—木森
    • E-mail:musen_nmb@qq.com
    • 大家在使用過程中發現bug,可以聯系我,以便優化解決!

一、HTML測試報告生成

unittestteport中封裝了一個TestRunner類,可以用來代替unittest中的TextTestRunner來執行測試用例,執行完測試用例之后會自動生成測試報告。並且有多種報告風格可選

  • 模塊導入

from unittestteport import TestRunner

 

  • 使用案例

runner = TestRunner(test_suite)
runner.run()

 

  • 關於TestRunner初始化參數

    • suites: 測試套件(必傳)
    • filename: 指定報告文件名
    • report_dir:指定存放報告路徑
    • title:指定測試報告的標題
    • templates: 可以指定1,2,3三個風格的模板
    • tester:測試人員名稱
  • 報告樣式展示:

    image

二、測試用例失敗重運行

關於unittest重運行機制,unittestreport中提供了兩種方式

  • 方式一: rerun裝飾器
    • 使用案例:使用rerun裝飾失敗需要重運行的用例,該用例失敗后會自動重運行
      from unittestreport import rerun
      ​
      class TestClass(unittest.TestCase):
          @rerun(count=4, interval=2)
          def test_case_01(self):
              a = 100
              b = 99
              assert a == b

       

    • 用例運行
      runner = TestRunner(test_suite)
      runner.run()
    • 參數說明:
      • count:用來指定用例失敗重運行的次數

      • interval:指定每次重運行的時間間隔

  • 方式二:TestRunner.rerun方法
    • 使用案例:所有的用例失敗,只要有失敗的用例,會自動重運行該用例
    • 用例正常編寫即可

    • 運行是使用TestRunner.rerun_run方法運行

      runner = TestRunner(suite=suite)
      runner.rerun_run(count=3, interval=2)
    • 參數說明:
      • count:用來指定用例失敗重運行的次數

      • interval:指定每次重運行的時間間隔

三、郵件發送測試報告

unittestreport內部實現了發生測試結果到郵箱的方法,執行完測試用例之后調用發送測試報告的方法即可。發郵件的方法介紹:TestRunner類中實現了send_email方法,可以方便用戶,快速發送郵件。

  • 使用案例
    runner = TestRunner(suite)
    runner.run()
    runner.send_email(host="smtp.qq.com",
                      port=465,
                      user="musen_nmb@qq.com",
                      password="algmmzptuasdabab",
                      to_addrs="3247119728@qq.com")
  • 參數介紹
    • host: smtp服務器地址
    • port:端口
    • user:郵箱賬號
    • password:smtp服務授權碼
    • to_addrs:收件人郵箱地址(一個收件人傳字符串,多個收件人傳列表)
  • 收到的郵件樣式

image

四、數據驅動的使用

關於數據驅動這邊就不給大家做過多的介紹了,數據驅動的目的是將測試數據和用例邏輯進行分離,提高代碼的重用率,以及用例的維護,關於數據驅動本,unittestreport.dataDriver模塊中實現了三個使用方法,支持使用列表(可迭代對象)、json文件、yaml文件來生成測試用例,接來分別給大家介紹一下使用方法:

  • 1、使用介紹

    from unittestreport.dataDriver import ddt, list_data,json_data,yaml_data
    • 第一步:使用ddt裝飾測試用例類
    • 第二步:根據使用的數據選擇對應的方法進行驅動
  • 2、使用案例

    • 一、用例保存在可迭代對象中(如列表):使用list_data
      from unittestreport import ddt, data
      @ddt
      class TestClass(unittest.TestCase):
          cases = [{'title': '用例1', 'data': '用例參數', 'expected': '預期結果'}, 
                   {'title': '用例2', 'data': '用例參數', 'expected': '預期結果'},
                   {'title': '用例3', 'data': '用例參數', 'expected': '預期結果'}]
          @data(cases)
          def test_case(self, data):
              pass

       

    • 二、用例保存在json文件中:使用json_data
      from unittestreport import ddt,json_data
      
      @ddt
      class TestClass(unittest.TestCase):
          @yaml_data("C:/xxxx/xxx/cases.json")
          def test_case(self, data):
              pass

       

      • json文件中的數據格式

        cases.json文件

        [
          {
            "title": "用例1",
            "data": "用例參數",
            "expected": "預期結果"
          },
          {
            "title": "用例2",
            "data": "用例參數",
            "expected": "預期結果"
          },
          {
            "title": "用例3",
            "data": "用例參數",
            "expected": "預期結果"
          }
        ]

         

    • 三、用例保存在yaml文件中:使用yaml_data
      from unittestreport import ddt,yaml_data
      
      @ddt
      class TestClass(unittest.TestCase):
          @yaml_data("C:/xxxx/xxx/cases.yaml")
          def test_case(self, data):
              pass
      
      
      • yaml文件中的數據展示

        cases.yaml文件

        - title: 用例1
          data: 用例參數
          expected: 預期結果
        ​
        - title: 用例2
          data: 用例參數
          expected: 預期結果
          
        - title: 用例4
          data: 用例參數
          expected: 預期結果

         


  • 2、注意點:

    • 關於使用ddt的時候進行數據驅動,指定測試報告中的用例描述:

    • 測試報告中的用例描述默認使用的是用例方法的文檔字符串注釋,

    • 如果要給每一條用例添加用例描述,需要在用例數據中添加title或者desc字段,字段對應的數據會自動設置為測試報告中用例的描述

    image

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM