我們在做自動化測試的時候,有時候想要很清楚的看到每條用例執行的詳細信息,我們可以通過unittest中verbosity參數進行設置
verbosity參數設置
verbosity表示在只執行用例的過程中可以把用例的執行情況根據配置的參數不同表示不同的詳細程度,我們先看下源碼中如何進行解釋的。
通過觀察可以看到我們verbosity默認為1,可以設置為0和2。
- 0 (靜默模式): 你只能獲得總的測試用例數和總的結果。
- 1 (默認模式): 非常類似靜默模式 只是在每個成功的用例前面有個“.” 每個失敗的用例前面有個 “E”
- 2 (詳細模式):測試結果會顯示每個測試用例的所有相關的信息 並且 你在命令行里加入不同的參數可以起到一樣的效果
看這么多,不如我們實踐下。
小試牛刀
我們通過unittest和我們前面寫的查詢音樂的結果一起看看verbosity每個情況
verbosity=0
0 (靜默模式): 你只能獲得總的測試用例數和總的結果。
# coding:utf-8 import unittest import requests class Music(unittest.TestCase): def select(self,name): url = 'https://api.apiopen.top/searchMusic' data = { "name":name } r = requests.post(url,data=data) b = r.json()['result'][0]['title'] return b # 錯誤的用例 def test01(self): b = '斷橋殘雪的故事' a = self.select(b) self.assertEqual(b,a) print('這個是用例一') # 錯誤的用例 def test02(self): a = '說好不哭的劇情' b = self.select(a) self.assertEqual(a,b) print('這個是用例二') # 正確的用例 def test03(self): a = '芒種' b = self.select(a) self.assertEqual(a,b) print('這個是用例三') if __name__ == '__main__': unittest.main(verbosity=0)
通過執行后我們可以看到當vervbosity=0的時候,只顯示了執行錯誤了多少條用例
vervbosity=1
1 (默認模式): 非常類似靜默模式 只是在每個成功的用例前面有個“.” 每個失敗的用例前面有個 “E”
# coding:utf-8 import unittest import requests class Music(unittest.TestCase): def select(self,name): url = 'https://api.apiopen.top/searchMusic' data = { "name":name } r = requests.post(url,data=data) b = r.json()['result'][0]['title'] return b # 錯誤的用例 def test01(self): b = '斷橋殘雪的故事' a = self.select(b) self.assertEqual(b,a) print('這個是用例一') # 錯誤的用例 def test02(self): a = '說好不哭的劇情' b = self.select(a) self.assertEqual(a,b) print('這個是用例二') # 正確的用例 def test03(self): a = '芒種' b = self.select(a) self.assertEqual(a,b) print('這個是用例三') if __name__ == '__main__': unittest.main(verbosity=1)
通過執行后我們可以看到當vervbosity=1的時候,成功的用例用.表示,失敗的用E表示
vervbosity=2
2 (詳細模式):測試結果會顯示每個測試用例的所有相關的信息 並且 你在命令行里加入不同的參數可以起到一樣的效果
# coding:utf-8 import unittest import requests class Music(unittest.TestCase): def select(self,name): url = 'https://api.apiopen.top/searchMusic' data = { "name":name } r = requests.post(url,data=data) b = r.json()['result'][0]['title'] return b # 錯誤的用例 def test01(self): b = '斷橋殘雪的故事' a = self.select(b) self.assertEqual(b,a) print('這個是用例一') # 錯誤的用例 def test02(self): a = '說好不哭的劇情' b = self.select(a) self.assertEqual(a,b) print('這個是用例二') # 正確的用例 def test03(self): a = '芒種' b = self.select(a) self.assertEqual(a,b) print('這個是用例三') if __name__ == '__main__': unittest.main(verbosity=2)
執行后發現verbosity=2,執行完用例把用例執行詳情詳細的打印出來了
這一篇重復代碼較多,只是為了方便理解verbosity設置各個參數表示的內容詳細的展示給大家,大家也可以動手自己試一試