fixture中使用request引數

2022-09-14 09:03:13 字數 1254 閱讀 8938

import

pytest

"""傳乙個引數:

知識點:

1、test_login的引數化中 indirect=true 是指吧login 當成乙個函式去執行,namelist表示login函式所需的引數

2、test_login()方法的login,指的是fixture的返回值

"""namelist=["

test2

","test1"]

@pytest.fixture(scope="

function")

deflogin(request):

name =request.param

print(f"

fixture中")

return

name

@pytest.mark.parametrize(

"login

",namelist,indirect=

true) #知識點1

deftest_login(login): #知識點2

print(f"

用例登入的賬號是-----")

if__name__ == '

__main__':

pytest.main(['-s

', '

test_resuqest.py

'])

#傳兩個引數

@pytest.fixture()

deflogins(request):

param =request.param

print(f"

fixture輸出賬號是:")

print(f"

fixture輸出密碼是:")

return

param

data =[,,

]

#知識點:如果需要傳多個引數,需要通過字典去傳

@pytest.mark.parametrize(

"logins

", data, indirect=true)

deftest_name_pwd(logins):

print(f"

用例輸出賬號是:")

print(f"

用例輸出密碼是:

pytest之fixture的詳細使用

前言 1 首先要理解unittest中setup teardown的作用,可以實現在執行用例前或結束後加入一些操作,但這種都是針對整個測試類全域性生效的 2 如果有以下場景 用例 1 需要先登入,用例 2 不需要登入,當每個測試用例的執行環境和條件都不一樣時,顯然無法用 setup 和 teardo...

fixture使用時需要注意的問題

今天單測不太順利,主要是fixture使用不熟悉,記錄兩個問題 bug 1 經過定位發現是fixture資料始終不能灌入導致的,檔案如下 machine1 id 1 machine1 id 2 期望有兩條資料,實際只有一條,原因是在rspec灌資料時裝載yml,而這裡的資料是個hash,結果key相...

使用多個fixture的返回值作為測試用例的入參

有時自動化場景需要使用多個fixture的返回值作為測試用例的入參。解決方法有兩個,乙個是使用fixture的params引數解決,乙個是使用pytest lazy fixture外掛程式 方法一 使用fixture的params引數解決 示例import pytest pytest.fixture...