HTMLTestRunner生成測試報告注意事項


 1 __author__ = 'XXX'
 2 #coding=utf-8
 3 
 4 import requests
 5 import unittest
 6 import json
 7 import HTMLTestRunner
 8 
 9 class GetRequestTest(unittest.TestCase):
10 
11     def setUp(self):
12         self.base_url="http://www.kuaidi100.com/"
13 
14     def tearDown(self):
15         pass
16 
17     def test_login(self):
18         self.data={"type":"yuantong","postid":"200528056708"}
19 
20         r=requests.post(self.base_url+"/query",self.data)
21         dicts=json.loads(r.text)
22         print(dicts)
23         code=r.status_code
24         print(code)
25 
26         self.assertEqual(code,200)
27         self.assertEqual(dicts['status'],'200')
28 
29 if __name__=="__main__":
30     suite=unittest.TestSuite()
31     suite.addTest(GetRequestTest("test_login"))
32     fp=open('E:\\testresult.html','wb')
33     #測試報告的標題與描述
34     runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='測試報告的標題:',description='測試報告的描述:')
35     runner.run(suite)
36     fp.close()

以上是一段簡單的python+unittest接口測試的測試代碼;

這里重點說下運行生成report過程中遇到的問題,記錄下來:

問題1:import HTMLTestRunner.py 報異常:

HTMLTestRunner.py是Python標准庫unittest單元測試框架的一個擴展,它生成HTML測試報告,需要下載此文件,選中目標另存為保存到路徑:\Python36\Lib目錄下(Windows安裝環境)

下載路徑:http://tungwaiyip.info/software/HTMLTestRunner.html

問題2:python3中運行以上腳本報ImportError: No module named 'StringIO',因為HTMLTestRunner.py是基於python2開發的,在解決完問題1后,需要通過編輯器修改HTMLTestRunner.py文件如下內容:

第94行,將import StringIO修改成import io

第539行,將self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

第642行,將if not rmap.has_key(cls):修改成if not cls in rmap:

第766行,將uo = o.decode('latin-1')修改成uo = e

第775行,將ue = e.decode('latin-1')修改成ue = e

第631行,將print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

問題3:IDE里運行python命令執行該段腳本,報錯提示TypeError: 'Module' object is not callable”,原因是以內htmltestrunner模塊的時候不明確,有兩種使用方式,總結如下:

A。直接引入 from HTMLTestRunner import HTMLTestRunner,調用的時候runner = HTMLTestRunner(stream =......)

B。間接引用,import HTMLTestRunner,調用的時候需要runner = HTMLTestRunner.HTMLTestRunner(stream =......)

問題4:在ide里可以運行並生成測試報告,但是在Pycharm里不行,原因是Ctrl+Shift+F10運行不會生成腳本,Alt+Shift+F10運行生成腳本
 
后續繼續更新……


免責聲明!

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



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