應用HTMLTestRunner整合測試報告

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

 

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

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

測試腳本:
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,獲得:
這裏寫圖片描述
打開,此文件獲得:
這裏寫圖片描述ui

對於錯誤的case,能夠根據實際狀況再作討論。
這樣一來,對於腳本的維護便利了不少。只須要根據須要,改動相關模塊的腳本便可,或者根據須要添加須要的模塊的腳本,而後加載到All_HTMLTest.py中去。url

相關文章
相關標籤/搜索