使用selenium + python 生成測試報告
阿新 • • 發佈:2020-12-21
首先導包:
from selenium import webdriver import time import unittest import HTMLTestRunner
然後寫一個類:
把方法寫到類裡面
class TestBaidu(unittest.TestCase): # override metherd 重寫了父類方法 # 開啟百度 #初始化 def setUp(self): self.db = webdriver.Chrome() self.db.get("http://baidu.com") self.db.maximize_window() # 百度搜索的操作 測試用例1 def test_seach(self): input= self.db.find_element_by_id("kw") # 對輸入庫的操作 input.send_keys("紀昀") # 定位百度按鈕元素 btn = self.db.find_element_by_id("su") # 對按鈕進行操作 btn.click() # 百度設定每頁展示條數 測試用例2 def test_baidu_set(self): db = self.db db.get("http://baidu.com/gaoji/preferences.html") RequType = db.find_element_by_name("NR") RequTypeOptionAll = RequType.find_elements_by_tag_name("option") for values in RequTypeOptionAll: print(values.get_attribute("value")) print(values.text) if "50" in values.text: values.click()break time.sleep(3) # 儲存設定 db.find_element_by_xpath("/html/body/form/div/input").click() time.sleep(2) db.switch_to_alert().accept()
然後main 控制程式執行過程 生成測試報告:
if __name__ == '__main__': # 建立測試用例容器 testlist = unittest.TestSuite() # 將用例新增到容器中 testlist.addTest(TestBaidu("test_seach")) # testlist.addTest(類名("函式名")) testlist.addTest(TestBaidu("test_baidu_set")) # 建立測試報告 # 建立檔案目錄 file = "e:/aaa/baidu.html" fle = open(file, "wb") # 生成測試報告的時候用的是二進位制檔案wb rb wb 以進位制的方式進行讀寫檔案 print(fle) # 定義測試報告,stream定義報告所寫入的內容,title為報告標題,description為報告的說明與描述 runner = HTMLTestRunner.HTMLTestRunner( stream=fle, title=u'百度搜索測試報告', description=u'用例執行情況:') # 將測試報告和用例容器關聯在一起 runner.run(testlist)
然後run執行,在E盤aaa目錄下就會生成daidu.html: