1. 程式人生 > 實用技巧 >使用selenium + python 生成測試報告

使用selenium + python 生成測試報告

首先導包:

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: