我們做測試的人員們都知道測試完成後,肯定是會生成乙個測試報告,那麼當我們做自動化的時候,這個自動化報告也可以自動生成嗎?python當然可以了!
htmltestrunner是python標準庫的unittest模組的擴充套件。它生成易於使用的html測試報告。
#當然了我們只用這麼多就可以生成報告了。輸出到檔案
fp = file('
my_report.html
', 'wb'
)runner =htmltestrunner.htmltestrunner(
stream=fp,
title='
my unit test',
description='
this demonstrates the report output by htmltestrunner.')
#使用外部樣式表。
#執行測試
runner.run(my_test_suite)
話不多說,直接就是幹,不過寫之前我們先理下思路:
這裡我還是直接呼叫前面寫的通用**了
#通過os模組進行找到當前資料夾,使報告生成當前資料夾中coding:utf-8
import
unittest
import
requests
class
music(unittest.testcase):
defselect(self,name):
url = '
'data =
r = requests.post(url,data=data)
b = r.json()['
result
'][0]['
title']
return
b
deftest01(self):
b = '
斷橋殘雪
'a =self.select(b)
self.assertequal(b,a)
print('
這個是用例一')
deftest02(self):
a = '
說好不哭
'b =self.select(a)
self.assertequal(a,b)
print('
這個是用例二')
deftest03(self):
a = '芒種'
b =self.select(a)
self.assertequal(a,b)
print('
這個是用例三')
if__name__ == '
__main__':
unittest.main()
#通過unittest中執行用例的方法,來批量執行用例當前資料夾路徑
report_path = os.path.dirname(os.path.realpath(__file__
))
#測試報告位址
report_abspath = os.path.join(report_path, "
result.html")
fp = open(report_abspath, "wb"
)
#報告詳情
runner = htmltestrunner_cn.htmltestrunner(stream=fp,
title=u'
自動化測試報告,測試結果如下:',
description=u'
用例執**況:
')
#通過用例,我們可以看到這裡已經完全生成報告了。例項化 testunit =unittest.testsuite()
#載入用例
testunit .addtests(unittest.testloader().loadtestsfromtestcase(music))
#執行用例
runner.run(testunit)
當然肯定有的小夥伴們會說,這裡不能看到通過的用例都是哪些?這個地方可以解決嗎? python這麼強大,這個肯定可以解決啊。不過需要我們在用例中新增注釋。這樣的話就會生成了詳細內容。全部**如下(新增注釋後)
#懷著小小的激動去檢視了生成的報告,果然沒有令我失望,已經完成展現出來了~~coding:utf-8
import
unittest
import
requests
import
osfrom case import
htmltestrunner_cn
class
music(unittest.testcase):
defselect(self,name):
url = '
'data =
r = requests.post(url,data=data)
b = r.json()['
result
'][0]['
title']
return
b
deftest01(self):
'''歌名:斷橋殘雪
'''b = '
斷橋殘雪
'a =self.select(b)
self.assertequal(b,a)
print('
這個是用例一')
deftest02(self):
'''歌名:說好不哭
'''a = '
說好不哭
'b =self.select(a)
self.assertequal(a,b)
print('
這個是用例二')
deftest03(self):
'''歌名:芒種
'''a = '芒種'
b =self.select(a)
self.assertequal(a,b)
print('
這個是用例三')
if__name__ == '
__main__':
#當前資料夾路徑
report_path = os.path.dirname(os.path.realpath(__file__
))
#測試報告位址
report_abspath = os.path.join(report_path, "
result.html")
fp = open(report_abspath, "wb"
)
#報告詳情
runner = htmltestrunner_cn.htmltestrunner(stream=fp,
title=u'
自動化測試報告,測試結果如下:',
description=u'
用例執**況:')
#例項化
testunit =unittest.testsuite()
#載入用例
testunit .addtests(unittest.testloader().loadtestsfromtestcase(music))
#執行用例
runner.run(testunit)
#關閉報告
fp.close()
七 HTMLTestRunner生成測試報告
coding utf 8 created on 2019 01 21 author codeali import os import unittest import time import logging from lib import pathdeal from lib import log fr...
使用Pyunit執行測試並生成HTML報告
1.使用pyunit執行測試 使用python自帶模組unittest就可以進行單元測試,但是遇到unittest.testcase報錯,錯誤是 原因是電腦中,除了python目錄下有unittest,其他地方還存在unittest.py.但是在執行指令碼時,又沒有選擇到自己想要的pythonpat...
Python Pytest框架(五)生成測試報告
忘了的話,來個pytest h findstr html,還可以輸出為文字 pytest h pytest help.txt 1 格式 pytest sv html 測試報告的路徑 要執行的檔案 例如 pytest sv html report.html xfail test.py 會自動在當前目錄...