當前位置:
首頁 > 知識 > 框架設計篇之6一個類文件多個測試方法情況下測試固件寫法

框架設計篇之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


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 凱哥java 的精彩文章:

框架設計篇之3-什麼是POM框架內封裝基類和實現POM
自動化框架設計篇之2-簡單介紹unittest單元測試框架
Selenium框架設計篇之1什麼是自動化測試框架
中級篇之9-把截圖類方法封裝到前面的BasePage.py

TAG:凱哥java |

您可能感興趣

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