欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pytest使用fixture實現(xiàn)token共享的方法

 更新時間:2023年11月02日 10:07:23   作者:測試界媛姐  
同學們在做pytest接口自動化時,會遇到一個場景就是不同的測試用例需要有一個登錄的前置步驟,登錄完成后會獲取到token,用于之后的代碼中,本文給大家介紹Pytest使用fixture實現(xiàn)token共享的方法,感興趣的朋友一起看看吧

同學們在做pytest接口自動化時,會遇到一個場景就是不同的測試用例需要有一個登錄的前置步驟,登錄完成后會獲取到token,用于之后的代碼中。首先我先演示一個常規(guī)的做法。

首先在conftest定義一個login的方法,方法返回token

@pytest.fixture(scope="function")
def login():
    header = {
            "Content-Type": "application/json"
    }
    data = {
            "username": "test",
            "password": "test"
    }
    login_info = requests.post(url='http://.../login',json=data).json()
    return login_info['token']

在測試用例方法中引入這個方法,所有用到token,都需要使用login這個方法。

def test_user(login):
    token = login # 通過login獲取token
    ......
def test_address(login):
    token = login # 通過login獲取token
    ......

通過上面的方法,可以解決接口使用token的需求,不過這么做每次都會先執(zhí)行l(wèi)ogin接口,有沒有一種方法可以只執(zhí)行一次login接口,后面的接口就不調(diào)用login接口了呢。經(jīng)過老武測試,其實是可以做到的。

思路:login接口使用緩存,當有token的時候就使用token,就不調(diào)用login接口了,如果沒有則調(diào)用login接口,再把token緩存起來。

那需要對上面login的方法進行改造,增加save_token方法,將token存起來。引入pickle模塊,用來寫數(shù)據(jù)。

import pickle
@pytest.fixture(scope="function")
def login():
    ......
    # 增加緩存方法
    save_token(login_info['token'])
    return login_info['token']
def save_token(token):
    # login_path為目錄中一個存放token的文件路徑,自己定義。
    with open(login_path, 'wb') as f:
        pickle.dump(login_info, f)
        f.close()

上面代碼完成了token的寫入,當沒有token的時候token寫入到文件中。如果有token,我們就不需要執(zhí)行登錄操作,直接使用文件中的token,這個時候代碼需要繼續(xù)改造。方法開始時判斷當前是否存在保存token的文件,如果有則獲取token,不再執(zhí)行登錄的操作。再增加一個讀取文件內(nèi)容的方法get_login_info

import pickle
@pytest.fixture(scope="function")
def login():
    if os.path.exists(login_info):
        return get_login_info(login_info)
    else:
        ......
        # 增加緩存方法
        save_token(login_info['token'])
        return login_info['token']
# 增加一個讀取文件的方法
def get_login_info():
    with open(login_path, 'rb') as f:
        data = pickle.load(f)
        f.close()
        return data

以上工作已經(jīng)完成了90%,再來個收尾就完美了。每次執(zhí)行用例結束后把存token文件刪除,不然生成了一個token,代碼判斷token文件存在,就不會去調(diào)用登錄接口。token一但過期,用例就會執(zhí)行失敗。

在conftest定義一個方法,每次執(zhí)行用例都清理一下token文件。要注意級別是session級別哦。

@pytest.fixture(scope='session', autouse=True)
def clear_login_file():
    if os.path.exists(login_path):
        logger.info("清理token文件")
        os.remove(login_path)

到此這篇關于Pytest使用fixture實現(xiàn)token共享的文章就介紹到這了,更多相關Pytest使用fixture內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 深度辨析Python的eval()與exec()的方法

    深度辨析Python的eval()與exec()的方法

    這篇文章主要介紹了深度辨析Python的eval()與exec()的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-03-03
  • 深度學習tensorflow基礎mnist

    深度學習tensorflow基礎mnist

    mnist作為深度學習中的HelloWorld,該小工程詳細描述了如何從零開始深度學習,代碼詳細,解釋全面,需要的朋友可以參考下
    2021-04-04
  • python環(huán)境功能強大的pip-audit安全漏洞掃描工具

    python環(huán)境功能強大的pip-audit安全漏洞掃描工具

    這篇文章主要為大家介紹了python環(huán)境中功能強大的pip-audit安全漏洞掃描工具的功能介紹及安裝使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • python實現(xiàn)指定字符串補全空格的方法

    python實現(xiàn)指定字符串補全空格的方法

    這篇文章主要介紹了python實現(xiàn)指定字符串補全空格的方法,涉及Python中rjust,ljust和center方法的使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • 使用Pytorch構建第一個神經(jīng)網(wǎng)絡模型?附案例實戰(zhàn)

    使用Pytorch構建第一個神經(jīng)網(wǎng)絡模型?附案例實戰(zhàn)

    這篇文章主要介紹了用Pytorch構建第一個神經(jīng)網(wǎng)絡模型(附案例實戰(zhàn)),本文通過實例代碼給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-03-03
  • 基于Python實現(xiàn)船舶的MMSI的獲取(推薦)

    基于Python實現(xiàn)船舶的MMSI的獲取(推薦)

    工作中遇到一個需求,需要通過網(wǎng)站查詢船舶名稱得到MMSI碼,網(wǎng)站來自船訊網(wǎng)。這篇文章主要介紹了基于Python實現(xiàn)船舶的MMSI的獲取,需要的朋友可以參考下
    2019-10-10
  • python3.3實現(xiàn)乘法表示例

    python3.3實現(xiàn)乘法表示例

    這篇文章主要介紹了python3.3實現(xiàn)乘法表示例,需要的朋友可以參考下
    2014-02-02
  • 樹莓派4B安裝Tensorflow的方法步驟

    樹莓派4B安裝Tensorflow的方法步驟

    這篇文章主要介紹了樹莓派4B安裝Tensorflow的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • Python 處理帶有 \u 的字符串操作

    Python 處理帶有 \u 的字符串操作

    這篇文章主要介紹了Python 處理帶有 \u 的字符串操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Python?的Json?模塊編碼詳解

    Python?的Json?模塊編碼詳解

    這篇文章主要為大家介紹了Python?的Json?模塊編碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助<BR>
    2021-11-11

最新評論