亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

同學(xué)們?cè)谧鰌ytest接口自動(dòng)化時(shí),會(huì)遇到一個(gè)場(chǎng)景就是不同的測(cè)試用例需要有一個(gè)登錄的前置步驟,登錄完成后會(huì)獲取到token,用于之后的代碼中。首先我先演示一個(gè)常規(guī)的做法。

首先在conftest定義一個(gè)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']

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

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

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

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

那需要對(duì)上面login的方法進(jìn)行改造,增加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為目錄中一個(gè)存放token的文件路徑,自己定義。
    with open(login_path, 'wb') as f:
        pickle.dump(login_info, f)
        f.close()

上面代碼完成了token的寫入,當(dāng)沒有token的時(shí)候token寫入到文件中。如果有token,我們就不需要執(zhí)行登錄操作,直接使用文件中的token,這個(gè)時(shí)候代碼需要繼續(xù)改造。方法開始時(shí)判斷當(dāng)前是否存在保存token的文件,如果有則獲取token,不再執(zhí)行登錄的操作。再增加一個(gè)讀取文件內(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']
# 增加一個(gè)讀取文件的方法
def get_login_info():
    with open(login_path, 'rb') as f:
        data = pickle.load(f)
        f.close()
        return data

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

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

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

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

相關(guān)文章

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

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

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

    深度學(xué)習(xí)tensorflow基礎(chǔ)mnist

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Python?的Json?模塊編碼詳解

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

最新評(píng)論