import pytest
test_login_data =[(
"admin"
,"admin"),
("user"
,"123456")]
deflogin
(user, pwd)
:print
(f"登入使用者名稱:"
)print
(f"登入密碼:"
)if pwd ==
"admin"
:return
true
else
:return
false
@pytest.mark.parametrize(
"user, pwd"
,test_login_data)
deftest_login
(user, pwd)
: result = login(user, pwd)
assert result ==
true
,"失敗原因:密碼不正確"
if __name__ ==
'__main__'
: pytest.main(
["-s"
,"test_fixture_request.py"
])
執行結果:有2個用例,乙個測試通過,乙個測試失敗了,互不影響
test_fixture_request.py
.登入使用者名稱:admin
登入密碼:admin
f登入使用者名稱:user
登入密碼:123456
assertionerror: 失敗原因:密碼不正確
import pytest
test_login_data =
["admin"
,"12345"
]@pytest.fixture(scope=
"module"
)def
login
(request)
: user = request.param
print
(f"登入使用者名稱:"
)return user
@pytest.mark.parametrize(
"login"
, test_login_data,indirect=
true
)def
test_login
(login)
: a = login
print
(f"測試用李中login的返回值"
)assert a !=
""if __name__ ==
'__main__'
: pytest.main(
["-s"
,"test_fixture_request2.py"
])
新增indirect=true引數是為了把login當成乙個函式去執行,而不是乙個引數
執行結果:
test_fixture_request2.py
登入使用者名稱:admin
.測試用李中login的返回值admin
登入使用者名稱:12345
.測試用李中login的返回值12345
import pytest
test_login_data =[,
]@pytest.fixture(scope=
"module"
)def
login
(request)
: user = request.param[
"user"
] pwd = request.param[
"pwd"
]print
(f"登入使用者名稱:"
)print
(f"登入密碼:"
)if pwd ==
"123456"
:return
true
else
:return
false
@pytest.mark.parametrize(
"login"
, test_login_data,indirect=
true
)def
test_login
(login)
: a = login
print
(f"測試用李中login的返回值"
)assert a ,
"失敗原因:密碼錯誤"
if __name__ ==
'__main__'
: pytest.main(
["-s"
,"test_fixture_request3.py"
])
執行結果:
test_fixture_request3.py 登入使用者名稱:admin
登入密碼:1111
f測試用李中login的返回值false
test_fixture_request3.py:24: assertionerror
test_fixture_request3.py 登入使用者名稱:admin
登入密碼:1111
f測試用李中login的返回值false```
# 4、自定義mark標記
```python
import pytest
@pytest.mark.add
def test_mark01():
print("執行mark01用例。。。")
@pytest.mark.add
def test_mark02():
print("執行mark02用例。。。")
def test_mark03():
print("執行mark03用例。。。")
def test_mark04():
print("執行mark04用例。。。")
執行add標記的用例
pytest -m "add" -s
不執行add標記的用例
pytest -m "not add" -s
pytest學習筆記
學習主要參考 2種方法 1.首先使用 pip 安裝 pytest pip3 install pytest 檢視 pytest 是否安裝成功 pip3 show pytest 2.直接import pytest 在pycharm 然後alt enter進行install 比第一種方法快捷 試驗 imp...
pytest學習筆記(一)
這兩天在學習pytest,之前有小用到pytest,覺得這個測試框架很靈巧,用在實現介面自動化 pytest requests 非常的輕便,然後很有興致的決定學習下,然後又發現了pytest selenium這麼個神奇的東東,加上pytest rerunfailures失敗case自動執行,pyte...
pytest學習教程 assert 3
assert就是斷言,每個測試用例都需要斷言。與unittest不同,pytest使用的是python自帶的assert關鍵字來進行斷言,大大降低了學習成本。assert關鍵字後面可以接乙個表示式,只要表示式的最終結果為true,那麼斷言通過,用例執行成功,否則用例執行失敗。pytest的用例失敗描...