今天我們開始我們的第一個python webdriver自動化測試腳本。并就測試腳本進行一一解釋說明。
本示例代碼演示了使用Ie瀏覽器訪問百度進行搜索測試。
HTMLTestRunner 從這里下載:
http://tungwaiyip.info/software/HTMLTestRunner_0_8_2/HTMLTestRunner.py
下載后和當前測試腳本放在同一目錄。
# 將以下代碼保存到first_webdriver.py中
#-*- coding:utf-8 -*-
__author__ = u'苦葉子'
from selenium import webdriver
import unittest
import HTMLTestRunner import sysfrom time import sleep
reload(sys)
sys.setdefaultencoding("utf-8")
class BaiduTest(unittest.TestCase):
"""百度首頁搜索測試用例"""
def setUp(self):
self.driver = webdriver.Ie()
self.driver.implicitly_wait(30)
self.base_url = u"http://www.baidu.com"
def test_baidu_search(self):
driver = self.driver print u"開始[case_0001]百度搜索"
driver.get(self.base_url)
# 驗證標題
self.assertEqual(driver.title, u"百度一下,你就知道")
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys(u"開源優(yōu)測")
driver.find_element_by_id("su").click()
sleep(3)
# 驗證搜索結果標題
self.assertEqual(driver.title, u"開源優(yōu)測_百度搜索")
def tearDown(self):
self.driver.quit()
if __name__ == '__main__':
testunit = unittest.TestSuite()
testunit.addTest(BaiduTest('test_baidu_search'))
# 定義報告輸出路徑
htmlPath = u"testReport.html"
fp = file(htmlPath, "wb")
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u"百度測試",
description=u"測試用例結果")
runner.run(testunit)
fp.close()
總體上代碼分為四大塊
文件保存編碼及作者定義
#-*- coding:utf-8 -*-
__author__ = u'苦葉子'
導入相關基礎模塊
# 從selenium中導入webdriver模塊
from selenium import webdriver
# 導入unittest模塊,作為用例基類
import unittest
# 導入html報告生成模塊,用于html格式報告生成
import HTMLTestRunner
# 導入sys模塊
import sys
# 導入sleep模塊,用于強制等待
from time import sleep
設置當前python運行環(huán)境為utf8
# 設置當前python運行在utf-8編碼下,這樣你的中文就不會亂碼了
reload(sys)
sys.setdefaultencoding("utf-8")
定義和實現測試用例
# 從unittest.TestCase繼承
class BaiduTest(unittest.TestCase):
"""百度首頁搜索測試用例"""
# 用例級初始化函數,自動執(zhí)行
def setUp(self):
# 初始化基于IE瀏覽器的webdriver實例
self.driver = webdriver.Ie()
# 給當前webdriver設置全局隱性等待時間,最大30s
self.driver.implicitly_wait(30)
# 設置首頁url
self.base_url = u"http://www.baidu.com"
def test_baidu_search(self):
# 簡單賦值,這樣在本測試中后續(xù)就不用每次都寫self.driver,
# 少寫幾個字符, 都是為了偷懶啊??
driver = self.driver
# 在控制臺打印輸出
print u"開始[case_0001]百度搜索"
# 啟動瀏覽器,并訪問首頁
driver.get(self.base_url)
# 驗證標題
self.assertEqual(driver.title, u"百度一下,你就知道")
# 清理搜索輸入框中的數據
driver.find_element_by_id("kw").clear()
# 在搜索輸入框中輸入 開源優(yōu)測
driver.find_element_by_id("kw").send_keys(u"開源優(yōu)測")
# 單擊 百度一下 按鈕
driver.find_element_by_id("su").click()
# 強制等3s
sleep(3)
# 驗證搜索結果標題
self.assertEqual(driver.title, u"開源優(yōu)測_百度搜索")
# 用例級清理函數,自動執(zhí)行
def tearDown(self):
# 退出webdriver,同時關閉當前webdrier session下所有瀏覽器窗口
self.driver.quit()
測試腳本主運行入口
# python main函數
if __name__ == '__main__':
# 初始化一個用例套件集
testunit = unittest.TestSuite()
# 往用例套件集新增一個測試
testunit.addTest(BaiduTest('test_baidu_search'))
# 定義報告輸出路徑,這里是當前目錄
htmlPath = u"testReport.html"
# 打開測試報告文件
fp = file(htmlPath, "wb")
# 構建一個HTMLTestReport執(zhí)行器
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title=u"百度測試",
description=u"測試用例結果")
# 運行測試集
runner.run(testunit)
# 關閉打開的測試報告文件
fp.close()
使用以下命令運行上述代碼
python first_webdriver.py
可以看到:
將啟動瀏覽器訪問百度首頁
在百度首頁搜索框中輸入了 開源優(yōu)測 單擊了 百度一下 按鈕 顯示出搜索結果
閉關了瀏覽器
在當前目錄下 生成了testReport.html的測試報告文件
最后總結下,要注意的幾個關鍵點:
確保要啟動的瀏覽器的驅動已經下載好,具體在哪下載請參見上一章
確保下載了HTMLTestRunner模塊
最好自己把代碼一行行敲入一遍,不要直接拷貝運行
聯系客服