1 # -*- coding: utf-8 -*- 2 import HTMLTestReport 3 import HTMLTestRunner 4 import os 5 import sys 6 import time 7 import unittest 8 from selenium import webdriver 9 10 11 class Baidu(unittest.TestCase): 12 def setUp(self): 13 self.driver = webdriver.Firefox() 14 self.driver.implicitly_wait(30) 15 self.driver.maximize_window() 16 # self.base_url = "https://www.baidu.com" 17 # self.driver.get(self.base_url) 18 self.driver.get("https://www.baidu.com") 19 20 def test_case1(self): 21 """設計測試失敗case""" # *****效果是在測試報告中顯示顯示出測試名稱***** 22 print("========【case_0001】打開百度搜索 =============") 23 # current_time = time.strftime("%Y-%M-%D-%H-%M-%S", time.localtime(time.time())) 24 # "."表示創建的路徑為當.py文件所處的地址,\\是用\將“\”轉義 25 # pic_path = '.\\result\\image\\' + current_time + '.png' 26 current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) 27 pic_path = '.\\result\\image\\' + '2017-07-17\\' + current_time + '.png' 28 print(pic_path) # 打印圖片的地址 29 time.sleep(2) 30 self.driver.save_screenshot(pic_path) # 截圖,獲取測試結果 31 self.assertEqual('百度一下,你就知道', self.driver.title) # 斷言判斷測試是否成功,判斷標題是否為百度(設計失敗的case) 32 33 def test_case2(self): 34 """設計測試過程中報錯的case""" 35 print("========【case_0002】搜索selenium =============") 36 self.driver.find_element_by_id("kw").clear() 37 self.driver.find_element_by_id("kw").send_keys(u"selenium") 38 self.driver.find_element_by_id('su').click() 39 time.sleep(2) 40 # current_time = time.strftime("%Y-%M-%D-%H-%M-%S", time.localtime(time.time())) 41 current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) 42 # "."表示創建的路徑為當.py文件所處的地址,\\是用\將“\”轉義 43 pic_path = '.\\result\\image\\'+'2017-07-17\\' + current_time + '.png' 44 print(pic_path) # 打印圖片的地址 45 time.sleep(2) 46 self.driver.save_screenshot(pic_path) # 截圖,獲取測試結果 47 self.assertIn('selenium', self.driver.title) # 斷言書寫錯誤,導致case出錯 48 49 def test_case3(self): 50 """設計測試成功的case""" 51 print("========【case_0003】 搜索夢雨情殤博客=============") 52 self.driver.find_element_by_id("kw").clear() 53 self.driver.find_element_by_id("kw").send_keys(u"夢雨情殤") 54 self.driver.find_element_by_id('su').click() 55 # current_time = time.strftime("%Y-%M-%D-%H-%M-%S", time.localtime(time.time())) 56 current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) 57 # "."表示創建的路徑為當.py文件所處的地址,\\是用\將“\”轉義 58 pic_path = '.\\result\\image\\2017-07-17\\' + current_time + '.png' 59 print(pic_path) # 打印圖片的地址 60 time.sleep(2) 61 self.driver.save_screenshot(pic_path) # 截圖,獲取測試結果 62 63 self.assertIn('夢雨情殤', self.driver.title) 64 65 def tearDown(self): 66 self.driver.quit() 67 68 69 if __name__ == "__main__": 70 '''生成測試報告''' 71 current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time())) 72 testunit = unittest.TestSuite() # 定義一個單元測試容器 73 testunit.addTest(Baidu("test_case1")) #將測試用例加入到測試容器內 74 testunit.addTest(Baidu("test_case2")) 75 testunit.addTest(Baidu("test_case3")) 76 report_path = ".\\result\\SoftTestReport_" + current_time + '.html' # 生成測試報告的路徑 77 fp = open(report_path, "wb") 78 runner = HTMLTestReport.HTMLTestRunner(stream=fp, title=u"自動化測試報告", description='自動化測試演示報告', tester='fyr') 79 # runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"自動化測試報告", description='自動化測試演示報告') 80 runner.run(testunit) 81 fp.close()
注意事項:
1.獲取當前時間的格式為:
%Y-%m-%d-%H_%M_%S 而不是 %Y-%M-%D-%H-%M-%S
2.填寫的截圖存放地址“\”,要用轉義字符“\”進行轉義,變為“\\”
3.runner = HTMLTestReport.HTMLTestRunner(stream=fp, title=u"自動化測試報告", description='自動化測試演示報告', tester='fyr')的測試報告如圖所示:
4.runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"自動化測試報告", description='自動化測試演示報告') 的效果圖如圖所示: