應用HTMLTestRunner整合測試報告


為了便於測試腳本的維護,以及更多測試用例的管理,於是根據上次學習的HTMLTestRunner生成的測試報告,今天將對其進行整理。我們之前使用 TestSuite 只是在一個.py 文件里添加多個測試用例,那么我們可以法把多個.py 文件中的用例通過測試套件來組織。
測試套件結構如圖所示(在此,謝謝蟲師博客的分享):
這里寫圖片描述

 

測試案例:
1.通過加載baidu模塊,sogou模塊以及PythonOrg模塊
2.生成測試報告
為此,本文的實際用例如下:
這里寫圖片描述

3.根據需要,寫好測試腳本。待完成后的測試腳本分別另存為文件
(TestBaidu.py,TestSogou.py,PythonOrg.py,All_HTMLTest.py)將其放在同一目錄下,然后運行All_HTMLTest.py的腳本。

測試腳本:
TestBaidu.py
測試搜索和鏈接的控件。

 

測試搜索和鏈接的控件。

#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest import time import re import HTMLTestRunner class TestBaidu(unittest.TestCase): def setUp(self): self.browser=webdriver.Chrome() self.browser.implicitly_wait(30) self.base_url="http://www.baidu.com" self.verficationErrors=[] self.accept_next_alert=True def test_search(self): browser = self.browser browser.get(self.base_url+'/') browser.find_element_by_id("kw").clear() browser.find_element_by_id("kw").send_keys("自動化測試") browser.find_element_by_id("su").click() time.sleep(2) browser.find_element_by_id("su").submit() time.sleep(3) title=browser.title print ("title is %s"%title) time.sleep(5) browser.close() def test_link(self): browser=self.browser browser.get(self.base_url+'/') browser.find_element_by_link_text("貼吧").click() time.sleep(5) browser.close() def tearDown(self): self.browser.quit() self.assertEqual([],self.verficationErrors) if __name__=="__main__": unittest.main() 

TestSogou.py
測試搜索,微信link以及設置鏈接的控件。

#coding=utf-8 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException import unittest import time import re import HTMLTestRunner class TestSogou(unittest.TestCase): def setUp(self): self.browser=webdriver.Chrome() self.browser.implicitly_wait(30) self.base_url="https://www.sogou.com" self.verficationErrors=[] self.accept_next_alert=True def test_search(self): browser=self.browser browser.get(self.base_url+'/') browser.maximize_window() keyworld=browser.find_element_by_name("query") keyworld.send_keys("Selenium Python") browser.find_element_by_id("stb").click() time.sleep(3) browser.close() def test_weixin(self): browser=self.browser browser.get(self.base_url+'/') browser.maximize_window() browser.find_element_by_link_text("微信").click() time.sleep(2) browser.close() def test_config(self): browser=self.browser browser.get(self.base_url+'/') browser.maximize_window() browser.find_element_by_class_name. ("s_usersetting").click() time.sleep(2) browser.close() def tearDown(self): self.browser.quit() self.assertEqual([],self.verficationErrors) if __name__=="__main__": unittest.main() 

 

PythonOrg.py
測試搜索和link控件。

import unittest from selenium import webdriver from selenium.webdriver.common.keys import Keys import os class PythonOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() #這樣可以根據需要自動加載時間 self.driver.implicitly_wait(30) self.base_url="http://www.python.org" self.verficationErrors=[] self.accept_next_alert=True def test_search(self): driver = self.driver driver.get(self.base_url+"/") self.assertIn("Python", driver.title) elem = driver.find_element_by_name("q") elem.send_keys("selenium") elem.send_keys(Keys.RETURN) #判斷title中是否有Welcome字段 self.assertIn("Welcome", driver.title) driver.close() def test_download(self): driver = self.driver driver.get(self.base_url+"/") self.assertIn("Python", driver.title link=driver.find_element_by_link_text("Downloads") link.click() time.sleep(3) driver.close() def tearDown(self): self.driver.quit() self.assertEqual([],self.verficationErrors) if __name__ == "__main__": unittest.main() 

 

All_HTMLTest.py
此.py加載了TestBaidu.py,TestSogou.py,PythonOrg.py

#coding=utf-8 import unittest #加載模塊TestBaidu,TestSogou,PythonOrg import TestSogou import PythonOrg import TestBaidu import time import HTMLTestRunner testunit=unittest.TestSuite() #將測試用例加入到測試容器中 testunit.addTest(unittest.makeSuite(TestSogou.TestSogou)) testunit.addTest(unittest.makeSuite(PythonOrg.PythonOrgSearch)) testunit.addTest(unittest.makeSuite(TestBaidu.TestBaidu)) #runner=unittest.TextTestRunner() #runner.run(testunit) #導入當前時間,使用time模塊的相關函數 now=time.strftime("%Y-%m-%d_%H-%M-%S",time.localtime()) #將測試結果寫入到result.html中 fp=open(now+"result.html",'wb') runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title='Test Report',description=u'Result:') runner.run(testunit) fp.close() 

 

F5運行,得到:
這里寫圖片描述
C:\Python34,得到:
這里寫圖片描述
打開,此文件得到:
這里寫圖片描述

對於錯誤的case,可以根據實際情況再做討論。
這樣一來,對於腳本的維護便利了很多。只需要根據需要,改動相關模塊的腳本即可,或者根據需要添加需要的模塊的腳本,然后加載到All_HTMLTest.py中去。


免責聲明!

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



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