之前提到selenium加入unittest框架、可以引入HTMLTestRunner擴展、以此來生成測試報告 首先是分享下載的百度雲地址 http://pan.baidu.com/s/1pKUItWR 文件名:HTMLTestRunner.py 下載成功後放入相應的python目錄下如: “C:\ ...
之前提到selenium加入unittest框架、可以引入HTMLTestRunner擴展、以此來生成測試報告
首先是分享下載的百度雲地址
http://pan.baidu.com/s/1pKUItWR
文件名:HTMLTestRunner.py
下載成功後放入相應的python目錄下如: “C:\Python27\Lib”
通過python自帶的IDLE
如果沒有報錯、則說明添加成功
之後是利用之前寫好的博客園登錄腳本
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import time 5 import unittest 6 7 from selenium import webdriver 8 9 10 class TestCnblogs(unittest.TestCase): 11 def setUp(self): 12 print "自動化測試用例執行開始" 13 self.driver = webdriver.Firefox() 14 self.driver.implicitly_wait(30) 15 # 智能等待30S 16 self.Errors = [] 17 # 錯誤信息列表 18 19 def tearDown(self): 20 self.driver.quit() 21 self.assertEqual([], self.Errors) 22 # 檢查錯誤信息列表 若不為空則返回顯示 23 print "自動化測試用例執行結束" 24 25 def test_cnblogs_login(self): 26 u"""博客園登錄""" 27 driver = self.driver 28 driver.get("http://www.cnblogs.com/") 29 # 測試地址 後面可以添加響應地址 30 driver.find_element_by_css_selector("a[onclick = 'login();return false']").click() 31 driver.find_element_by_css_selector("input[type = 'text']").click() 32 driver.find_element_by_css_selector("input[type = 'text']").send_keys(u"墮落的伊絲莉") 33 # 這裡用戶名由於是中文前面要加 u 34 driver.find_element_by_css_selector("input[type = 'password']").click() 35 driver.find_element_by_css_selector("input[type = 'password']").send_keys("xxxxxx") 36 # 輸入密碼、密碼當然按照實際內容添加 37 driver.find_element_by_css_selector("input[type = 'submit']").click() 38 time.sleep(2) 39 driver.close() 40 41 42 if __name__ == "__main__": 43 unittest.main()
這裡存在一個問題、如果把生成測試報告的代碼內容寫在 if __name__ == "__main__":
之下運行成功且不報錯、但是生成的html文件內容為空
兩種解決方式 一種是在cmd里執行腳本
另一種是寫在另一文件載入上面的測試腳本代碼
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from test_case.cnblogs import TestCnblogs 5 import HTMLTestRunner 6 import unittest 7 8 testreport = unittest.TestSuite() 9 10 testreport.addTest(TestCnblogs("test_cnblogs_login")) 11 filename = "E:\\work\\python project\\selenium_python\\report.html" 12 fp = file(filename, "wb") 13 runner = HTMLTestRunner.HTMLTestRunner( 14 stream=fp, 15 title=u"博客園測試報告", 16 description=u"用例執行情況:" 17 ) 18 runner.run(testreport)
這樣直接在相應的python開發環境下運行即可成功生成測試報告