調用HtmlTestRunner生成測試報告為空


【環境信息】

Python3.6+selenium3.0.2+HtmlTestRunner0.8+Firefox50+Win7

【問題描述】

1.HtmlTestrunner是unittest的一個擴展,目前在網上下載的版本是0.8,由於和Python3存在不兼容的地方,所以運行時會報錯或報告為空。

【解決方案】

1.參考博客:http://blog.csdn.net/liujingqiu/article/details/50518776

根據該博客的描述,修改HtmlTestrunner.py文件后再運行腳本。

博客正文粘貼如下(博客為轉載:http://blog.csdn.net/liujingqiu/article/details/50518776)

 首先,下載HTMLTestRuner.py文件。

源地址:http://tungwaiyip.info/software/HTMLTestRunner.html 這是針對Python2.7版本,那么對於Python3.x的使用,需要改動幾處。

同時謝謝 http://www.bubuko.com/infodetail-529431.html的分享。

具體改動如下:

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

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

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

第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

第778行,將output = saxutils.escape(uo+ue),修改成output = saxutils.escape(str(uo)+str(ue)),

將上述幾處改動,保存成功后,再將HTMLTestRunner.py放到C:\Python34\Lib目錄中,檢驗是否加載成功,在Python IDLE 中輸入 import HTMLTestRunner  若無報錯,那么加載成功。

 

【參考案例】

1.登錄百度雲
2.進入“立即注冊百度賬號”網頁
3.進入”會員中心”網頁
4.生成測試報告的文件名為:2015-01-02result.html。

 1 #coding=utf-8      #防止中文亂碼
 2 from selenium import webdriver
 3 from selenium.webdriver.common.by import By
 4 #加載鍵盤使用的模塊
 5 from selenium.webdriver.common.keys import Keys
 6 from selenium.webdriver.support.ui import Select
 7 from selenium.common.exceptions import NoSuchElementException
 8 
 9 #加載unittest模塊
10 import unittest 
11 import time
12 import re
13 #加載HTMLTestRunner,用於生成HTMLreuslt
14 import HTMLTestRunner
15 
16 class BaiduYun(unittest.TestCase):
17     def setUp(self):
18         self.browser=webdriver.Chrome()
19         self.browser.implicitly_wait(30)
20         self.base_url="http://yun.baidu.com"
21         self.verficationErrors=[]
22         self.accept_next_alert=True
23     def Login(self):
24         browser=self.browser
25         browser.get(self.base_url+'/')
26         u"""百度雲登錄"""
27         browser.find_element_by_name("userName").clear()           
28         username=browser.find_element_by_name("userName")              
29         username.send_keys("alu***")
30         username.send_keys(Keys.TAB)
31         time.sleep(2)
32         password=browser.find_element_by_name("password")
33         password.send_keys("***")
34         password.send_keys(Keys.ENTER)
35         time.sleep(3)
36         browser.close()
37     def Register(self):
38         browser=self.browser
39         browser.get(self.base_url+'/')
40         u"""立即注冊百度賬號"""
41         browser.find_element_by_class_name("link-create").click()
42         time.sleep(2)
43         browser.close()
44     def Link(self):
45         browser=self.browser
46         browser.get(self.base_url+'/')
47         u"""會員中心"""
48         browser.find_element_by_link_text("會員中心").click()
49         time.sleep(2)
50         browser.close()
51     def tearDown(self):
52         self.browser.quit()
53         self.assertEqual([],self.verficationErrors) 
54 if __name__=="__main__":
55     #unittest.main()
56     testunit=unittest.TestSuite()
57     #將測試用例加入到測試容器中
58     testunit.addTest(BaiduYun("Login"))
59     testunit.addTest(BaiduYun("Register"))
60     testunit.addTest(BaiduYun("Link"))
61     #獲取當前時間,這樣便於下面的使用。
62     now = time.strftime("%Y-%m-%M-%H_%M_%S",time.localtime(time.time())) 
63     #打開一個文件,將result寫入此file中
64     fp=open("result"+now+".html",'wb')
65     runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='test result',description=u'result:')
66     runner.run(testunit) 
67     fp.close()

 


免責聲明!

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



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