框架設計篇之6-一個類文件多個測試方法情況下測試固件的寫法
其實,到前面這一篇文章,簡單的Python+Selenium自動化測試框架就已經算實現了。接下來的主要是介紹,unittest管理腳本,如何如何載入執行腳本,再就是採用第三方插件,實現輸出html的測試報告。本文來介紹下,在同一個類中,多個測試函數時候,測試固件如何寫
為了說明這個問題,我們在之前的測試類基礎上,再寫一個test_search2()的測試用例,看看會發生什麼。
具體代碼:
# coding=utf-8
import time
import unittest
from framework.browser_engine import BrowserEngine
from pageobjects.baidu_homepage import HomePage
class BaiduSearch(unittest.TestCase):
def setUp(self):
"""
測試固件的setUp()的代碼,主要是測試的前提準備工作
:return:
"""
browse = BrowserEngine(self)
self.driver = browse.open_browser(self)
def tearDown(self):
"""
測試結束後的操作,這裡基本上都是關閉瀏覽器
:return:
"""
def test_baidu_search(self):
"""
這裡一定要test開頭,把測試邏輯代碼封裝到一個test開頭的方法里。
:return:
"""
homepage = HomePage(self.driver)
homepage.type_search("selenium") # 調用頁面對象中的方法
homepage.send_submit_btn() # 調用頁面對象類中的點擊搜索按鈕方法
time.sleep(2)
homepage.get_windows_img() # 調用基類截圖方法
try:
assert "selenium" in homepage.get_page_title() # 調用頁面對象繼承基類中的獲取頁面標題方法
print ("Test Pass.")
except Exception as e:
print ("Test Fail.", format(e))
def test_search2(self):
homepage = HomePage(self.driver)
homepage.type_search("python") # 調用頁面對象中的方法
homepage.send_submit_btn() # 調用頁面對象類中的點擊搜索按鈕方法
time.sleep(2)
homepage.get_windows_img() # 調用基類截圖方法
if __name__ == "__main__":
unittest.main()
問題發現了沒,我們的瀏覽器啟動和關閉了兩次,是不是這個問題?原來,沒執行一次test開頭的函數,都要執行一次測試固件,也就是說執行setUp()和()一次,如果有N個test開頭的函數,測試固件就執行N次,我們到底有沒有,只需要執行一次測試固件,支持執行多次測試函數。
我們測試中,肯定需要,打開一個頁面,然後測試這個頁面的多個用例,才關閉這個頁面,去測試其他頁面,在unittest是有相關測試固件方法去支持這種行為。請看下面調整,自己對比下,能不能找出不同。
具體代碼:
# coding=utf-8
import time
import unittest
from framework.browser_engine import BrowserEngine
from pageobjects.baidu_homepage import HomePage
class BaiduSearch(unittest.TestCase):
@classmethod
def setUpClass(cls):
"""
測試固件的setUp()的代碼,主要是測試的前提準備工作
:return:
"""
browse = BrowserEngine(cls)
cls.driver = browse.open_browser(cls)
@classmethod
def tearDownClass(cls):
"""
測試結束後的操作,這裡基本上都是關閉瀏覽器
:return:
"""
def test_baidu_search(self):
"""
這裡一定要test開頭,把測試邏輯代碼封裝到一個test開頭的方法里。
:return:
"""
homepage = HomePage(self.driver)
homepage.type_search("selenium") # 調用頁面對象中的方法
homepage.send_submit_btn() # 調用頁面對象類中的點擊搜索按鈕方法
time.sleep(2)
homepage.get_windows_img() # 調用基類截圖方法
try:
assert "selenium" in homepage.get_page_title() # 調用頁面對象繼承基類中的獲取頁面標題方法
print ("Test Pass.")
except Exception as e:
print ("Test Fail.", format(e))
def test_search2(self):
homepage = HomePage(self.driver)
homepage.type_search("python") # 調用頁面對象中的方法
homepage.send_submit_btn() # 調用頁面對象類中的點擊搜索按鈕方法
time.sleep(2)
homepage.get_windows_img() # 調用基類截圖方法
if __name__ == "__main__":
unittest.main()
運行一下,是不是,只需要打開和關閉瀏覽器一次,就執行了2個搜索用例?以後,項目中基本採用這種方法來執行同一個功能不同測試用例的編寫。


※Selenium中級篇之4-封裝一個自己的類-瀏覽器引擎類
※mybatis if test標籤的使用
※Selenium中級篇之3二次封裝Selenium中幾個方法
※Selenium中級篇之1PyCharm的安裝和簡單使用
※練習篇32 練習篇完-如何截圖並保存
TAG:凱哥java |
※怎樣從0開始搭建一個測試框架
※教你一個測試暗戀對象的方法
※超准心理測試:4種髮型選一個,秒測你的真實個性!
※測試:4個答案,測試你的人緣怎麼樣?
※心理測試:選一個背影,測你是一個什麼樣的人
※心理測試:四個廁所選一個,測試你是一個怎樣的女人?
※單元測試之類型測試
※心理測試:四個鏤空面具選一個,測你的神秘指數有多高
※心理測試:4種花選一種,測試4月份你會有什麼變化?
※心理測試:4個手型選一個,測你的個性脾氣
※測試 | 測試你的撩人套路到了哪個階段
※心理測試:4件個性禮服選一個,測你是哪種男人殺手?
※八字合婚測試有哪幾種方法
※軟體測試年薪過二十萬的條件,你符合幾個?
※心理測試:四個戒指選一個,測試你晚年會變成什麼樣?
※心理測試:10個數字選一個,把你看穿!
※心理測試:四個樹形選一個,測你們的性格態度
※心理測試:4個座位選一個,測出你對人的戒心有多重!
※測試 | 六種指甲形狀,看你有什麼樣的個性
※心理測試:四個晚裝選一個,測試你的情商有多高?