unittest unittest生成測試報告

2022-06-27 19:36:10 字數 3871 閱讀 3140

我們做測試的人員們都知道測試完成後,肯定是會生成乙個測試報告,那麼當我們做自動化的時候,這個自動化報告也可以自動生成嗎?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)

當然了我們只用這麼多就可以生成報告了。

話不多說,直接就是幹,不過寫之前我們先理下思路:

這裡我還是直接呼叫前面寫的通用**了

#

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()

通過os模組進行找到當前資料夾,使報告生成當前資料夾中

#

當前資料夾路徑

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'

用例執**況:

')

通過unittest中執行用例的方法,來批量執行用例

#

例項化 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 會自動在當前目錄...