框架設計篇之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個搜索用例?以後,項目中基本採用這種方法來執行同一個功能不同測試用例的編寫。
框架設計篇之3-什麼是POM框架內封裝基類和實現POM
自動化框架設計篇之2-簡單介紹unittest單元測試框架
Selenium框架設計篇之1什麼是自動化測試框架
Selenium中級篇之10-Python中的繼承的使用
中級篇之9-把截圖類方法封裝到前面的BasePage.py
中級篇之8-Python自定義封裝一個簡單的Log類
Selenium中級篇之7-Python中字元串切割操作
歡迎關注凱哥公眾號:凱哥Java


※框架設計篇之3-什麼是POM框架內封裝基類和實現POM
※自動化框架設計篇之2-簡單介紹unittest單元測試框架
※Selenium框架設計篇之1什麼是自動化測試框架
※中級篇之9-把截圖類方法封裝到前面的BasePage.py
TAG:凱哥java |
※怎樣從0開始搭建一個測試框架
※教你一個測試暗戀對象的方法
※八字合婚測試有哪幾種方法
※單元測試之類型測試
※測試:4個答案,測試你的人緣怎麼樣?
※心理測試:四個廁所選一個,測試你是一個怎樣的女人?
※心理測試:選一個背影,測你是一個什麼樣的人
※四個方法 幫你測試有沒有腦中風
※心理測試:四個戒指選一個,測試你晚年會變成什麼樣?
※超准心理測試:4種髮型選一個,秒測你的真實個性!
※心理測試:4種花選一種,測試4月份你會有什麼變化?
※如何自測是否有口臭?幾個方法來測試
※心理測試:4件個性禮服選一個,測你是哪種男人殺手?
※軟體測試年薪過二十萬的條件,你符合幾個?
※心理測試:選一個招財擺件,測試狗年你哪一方面最順心
※測試 | 測試你的撩人套路到了哪個階段
※心理測試:一道可測試你個性的測試題
※心理測試:4個金字選一個,測試近期你是否會變得好命
※億萬殭屍算分係數測試結果一覽
※心理測試:四個鏤空面具選一個,測你的神秘指數有多高