python自動化測試pytest框架


pytest和unittest都是python中的測試框架,pytest相比unittest 更加的靈活,具體體現在 以下幾點

1.寫測試方法時不用繼承類

2.前置后置放在一起

2.1如果是全局共享的前置,就會寫在一個固定的文件中,(比如一個系統中打開瀏覽器,訪問系統網址就是全局共享的前置)這個文件命名為conftest,其他的各個模塊設計到的前置放在用例文件中

from selenium import webdriver
import pytest
from TestDatas import global_datas as gd

@pytest.fixture
def init_driver():
    driver = webdriver.Chrome()
    driver.maximize_window()
    driver.get(gd.login_url)
    yield driver
    driver.quit()

  

2.2前置后置的定義語法,@pytest.fixture,前置后置用yield隔開,yield前的就是前置,yield后的就是后置,yield后面加的語句是返回值,如上面代碼中的yield driver,driver就是返回值

2.3用例中用到前置時,在用例前加上@pytest.mark.usefixtures

@pytest.mark.usefixtures("前置的名稱")

 

2.4如果用例要用上返回值,就在函數參數上加上前置名稱

    def test_login_success(self,init_driver):#init_driver是前置名稱
        # 登錄
        #LoginPage(self.driver).login_success(*lds.success)
        LoginPage(init_driver).login_success(*lds.success)
        #斷言
        assert(HomePage(init_driver).get_element_exists())==True

 

3.有給用例打標簽的功能,運行時,通過標簽進行分類運行

3.1先建一個文件,定義好標簽名,作者在此用的時ini文件來定義標簽名,語法如下,markers=標簽名

[pytest]
markers=
    demo_fail: just for demo show
    smoke

3.2在需要打標簽的測試函數以及類上,加上@pytest.mark.標簽名

@pytest.mark.標簽名

  

4運行用例,unittest需要加載用例,而pytest中是自動識別用例,pytest命令在哪個目錄下執行,那就默認從哪個目錄下開始搜索用例。

 

5.pytest斷言要比unittest靈活,assert 表達式即可。(erunittest當中,要assert*)

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM