Pytest fixture之request传参
生活随笔
收集整理的這篇文章主要介紹了
Pytest fixture之request传参
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Pytest中我們經常會用到數據參數化,我們來介紹下裝飾器@pytest.fixture()配合request傳參的使用
user = request.param
如果想把登錄操作放到前置操作里,也就是用到@pytest.fixture裝飾器,傳參就用默認的request參數
user = request.param 這一步是接收傳入的參數,本案例是傳一個參數情況
?
@pytest.mark.parametrize("input_user",user_list,indirect=True)中indirect=True
是指用user_list、pwd_list數據對“input_user”、“input_pwd”這個fixture進行參數化,雖然裝飾器寫在測試用例上,但是卻是對測試用例使用的fixture進行傳遞數據,這正是indirect的意思.
?
request傳多個參數、多個fixtrue
import pytest user_list=['wangxiao','zhangxiao'] pwd_list=['123456','123'] @pytest.fixture(scope="module") def input_user(request):user=request.paramprint("用戶名:%s"%user)return user @pytest.fixture(scope="module") def input_pwd(request):pwd = request.paramprint("密碼:%s"%pwd)return pwd @pytest.mark.parametrize("input_user",user_list,indirect=True) @pytest.mark.parametrize("input_pwd",pwd_list,indirect=True) def test_login(input_user,input_pwd):print(input_user,input_pwd) if __name__=='__main__':pytest.main(['-s','test01.py'])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py ============================= test session starts ============================= platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\wangli\PycharmProjects\Test\test plugins: allure-pytest-2.8.5, html-1.22.0, metadata-1.8.0 collected 4 itemstest01.py 用戶名:wangxiao 密碼:123456 wangxiao 123456 .用戶名:zhangxiao zhangxiao 123456 .密碼:123 zhangxiao 123 .用戶名:wangxiao wangxiao 123 .============================== 4 passed in 0.06s ==============================Process finished with exit code 0request傳多個參數、單個fixtrue
import pytest user_list=[('wangxiao','123'),('chengzi','123456')]@pytest.fixture(scope="module") def login(request):user = request.parampwd = request.paramprint("用戶名:%s,密碼:%s"%(user,pwd))return user,pwd@pytest.mark.parametrize("login",user_list,indirect=True) def test_login(login):print(login) if __name__=='__main__':pytest.main(['-s','test01.py'])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/test/test01.py ============================= test session starts ============================= platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\wangli\PycharmProjects\Test\test plugins: allure-pytest-2.8.5, html-1.22.0, metadata-1.8.0 collected 2 itemstest01.py 用戶名:('wangxiao', '123'),密碼:('wangxiao', '123') (('wangxiao', '123'), ('wangxiao', '123')) .用戶名:('chengzi', '123456'),密碼:('chengzi', '123456') (('chengzi', '123456'), ('chengzi', '123456')) .============================== 2 passed in 0.04s ==============================Process finished with exit code 0?
總結
以上是生活随笔為你收集整理的Pytest fixture之request传参的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python操作Jira提交BUG
- 下一篇: Python测试开发django3.视图