當前位置: 華文星空 > 新聞

Python+selenium自動化生成測試報告

2022-04-17新聞

批次執行完用例後,生成的測試報告是文本形式的,不夠直觀,為了更好的展示測試報告,最好是生成HTML格式的。

unittest裏面是不能生成html格式報告的,需要匯入一個第三方的模組:HTMLTestRunner

一、匯入HTMLTestRunner

1.這個模組下載不能透過pip安裝了,只能下載後手動匯入

2.Download下HTMLTestRunner.py檔就是我們需要下載的包。

3.下載後復制到Python安裝檔的Lib目錄下

二、生成html測試報告

1.這裏主要有三個參數:

stream:測試報告寫入檔的儲存區域

title:測試報告的主題

description:測試報告的描述

2. report_path是存放測試報告的地址

執行指令碼後在F槽指定位置就能找到這個測試報告檔,這時候如果檔多了,不知道測試報告在哪天生成的?能否在檔名上顯示一個日期和時間呢?當然是可以的

備註:

%Y-%m-%d為年月日

%H-%M為分時 註意:時間之間不能使用冒號(:)因為檔名不能使用冒號

三、測試報告詳情

1.找到測試報告檔,用瀏覽器開啟,點開View裏的Detail可以檢視詳情描述。

紅框中內容顯是英文,我們不能直觀看出是什麽測試用例,可以在測試程式碼中添加中文註釋, 註釋前面要加字母u ,程式碼修改如下

四、再次執行run_all_case指令碼檔後,檢視HTML測試報告

unittest斷言

Python在 unittest.TestCase 類中提供了很多斷言方法。斷言方法檢查你認為應該滿足的條件是否確實滿足。如果該條件確實滿足,你對程式行為的假設就得到了確認,你就可以確信其中沒有錯誤。如果你認為應該滿足的條件實際上並不滿足,Python將引發異常。下表描述了6個常用的斷言方法。使用這些方法可核實返回的值等於或不等於預期的值、返回的值為 True 或 False 、返回的值在列表中或不在列表中。 你只能在繼承 unittest.TestCase 的類中使用這些方法。

unittest常用的斷言方法

1.assertEqual(self, first, second, msg=None)

--判斷兩個參數相等:first == second

2.assertNotEqual(self, first, second, msg=None)

--判斷兩個參數不相等:first != second

3.assertIn(self, member, container, msg=None)

--判斷是字串是否包含:member in container

4.assertNotIn(self, member, container, msg=None)

--判斷是字串是否不包含:member not in container

5.assertTrue(self, expr, msg=None)

--判斷是否為真:expr is True

6.assertFalse(self, expr, msg=None)

--判斷是否為假:expr is False

7.assertIsNone(self, obj, msg=None)

--判斷是否為None:obj is None

8.assertIsNotNone(self, obj, msg=None)--判斷是否不為None:obj is not None

例項:assertEqual(a, b),其它的斷言方法請自行償試)