日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Pytest fixture之request传参

發布時間:2025/3/15 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 0

request傳多個參數、單個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传参的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。