国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

從0開始python學(xué)習(xí)-47.pytest框架之解決Template替換無法進(jìn)行二次處理的問題之熱加載

這篇具有很好參考價(jià)值的文章主要介紹了從0開始python學(xué)習(xí)-47.pytest框架之解決Template替換無法進(jìn)行二次處理的問題之熱加載。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

問題:當(dāng)參數(shù)為動(dòng)態(tài)參數(shù)時(shí),Template替換無法進(jìn)行二次處理

解決方案:通過熱加載來進(jìn)行替換

熱加載原理:在代碼運(yùn)行的過程中動(dòng)態(tài)的調(diào)用python中的方法達(dá)到獲得動(dòng)態(tài)參數(shù)

可以進(jìn)行熱加載的情況:yaml文件,隨機(jī)數(shù),替換后的值進(jìn)行計(jì)算,加密等

示例:

需要熱加載的數(shù)據(jù):

yaml數(shù)據(jù):extract.yaml

token: 76_ZgYcDxWFgCCjZVj2EPfqj7QWW_k3-iUZq68Mr6hE_VvDDa_IAfjEIi7nQwMUoISer8MAspesP1JnP1iIziezVPcB4jqZs4z_3EQpVtkEVm0Z0L7VyTmQV7JC0gsTYGaAAAPUC

需要操作的數(shù)據(jù)

class DeBugTalk:

    #場景一:讀取yaml中的數(shù)據(jù)
    def read_yaml(self,key):
        with open("D:\study\pytest\extract.yaml", encoding="utf-8") as f:
            value = yaml.safe_load(f)
            return value[key]

    # 場景二:數(shù)據(jù)計(jì)算
    def add(self,a,b):
        return str(int(a)+int(b))

    # 場景三:讀取隨機(jī)數(shù)
    def random(self):
        return str(random.randint(1, 10))

熱加載方法

class ExtractUtil:
    def hotload_replace(self,data_str:str):
        # 1.定義一個(gè)正則匹配的通用表達(dá)式
        # regexp = "\\$\\{(.*?)\\}"   # 用于匹配格式為:${access_token}
        regexp = "\\$\\{(.*?)\\((.*?)\\)\\}"  # 用于匹配格式為:${函數(shù)名(參數(shù))}
        fun_list = re.findall(regexp,data_str)

        for f in fun_list:
             print(f)
            # ${函數(shù)名(參數(shù))} >>函數(shù)名=f[0],參數(shù)為=f[1]
            if f[1] == "":  # 當(dāng)f[1]沒有參數(shù)為''時(shí)
                value = getattr(DeBugTalk(), f[0])()  # >>此時(shí)通過反射調(diào)用了random()和dm5()方法
        
            else:  # 當(dāng)f[1]有參數(shù)時(shí)
                value = getattr(DeBugTalk(), f[0])(*f[1].split(","))
        
            # 如果value的值為字符串格式,但是時(shí)數(shù)字,為了看著清楚明白,可以加一層處理
            if isinstance(value, str) and value.isdigit():
                value = "'" + value + "'"
            print('value:%s' % value, type(value))  # 注意這里的打印是在if同級(jí),不然不滿足的數(shù)據(jù)無法打印
            # 拼接舊的值
            old_value = "${"+f[0]+"("+f[1]+")}"
            # 將舊的值替換成新的值
            data_str = data_str.replace(old_value,str(new_value))
        return data_str


if __name__ == '__main__':
    request_data = {"data1":"${read_yaml(token)}","data2":"${add(1,2)}","data3": "${random()}"}
    data_str = yaml.safe_dump(request_data)
    print("old_str:%s" % data_str)
    data_str = ExtractUtil().hotload_replace(data_str)
    print("new_str:%s" % data_str)

打印結(jié)果

從0開始python學(xué)習(xí)-47.pytest框架之解決Template替換無法進(jìn)行二次處理的問題之熱加載,python,學(xué)習(xí),python,pytest,開發(fā)語言,測(cè)試用例?文章來源地址http://www.zghlxwxcb.cn/news/detail-795177.html

到了這里,關(guān)于從0開始python學(xué)習(xí)-47.pytest框架之解決Template替換無法進(jìn)行二次處理的問題之熱加載的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • WebUI自動(dòng)化學(xué)習(xí)(Selenium+Python+Pytest框架)003

    WebUI自動(dòng)化學(xué)習(xí)(Selenium+Python+Pytest框架)003

    在成功定位到元素之后,我們需要對(duì)元素進(jìn)行一些操作動(dòng)作。常用的元素操作動(dòng)作有: ? ? ? ? ? ? ? ?鍵盤動(dòng)作:向?yàn)g覽器發(fā)送一個(gè)內(nèi)容,通常用于輸入框輸入內(nèi)容或向?yàn)g覽器發(fā)送快捷鍵 ? ? ? ? ? ? ? ? 鼠標(biāo)左鍵單擊,通常用于點(diǎn)擊按鈕 ? ? ? ? ? ? ? ? 清空內(nèi)容,通

    2024年02月04日
    瀏覽(52)
  • WebUI自動(dòng)化學(xué)習(xí)(Selenium+Python+Pytest框架)001

    開啟另一篇學(xué)習(xí)之路_WebUI自動(dòng)化 先來一波基礎(chǔ)概念 1.自動(dòng)化適合什么類型的項(xiàng)目: 重復(fù)性高,迭代頻率高的回歸測(cè)試。數(shù)據(jù)量大、手工難以實(shí)現(xiàn)的壓力測(cè)試,手工執(zhí)行效率低的兼容測(cè)試 2.自動(dòng)化的優(yōu)點(diǎn): 高效率、可重復(fù)、減少人為錯(cuò)誤、克服手工測(cè)試的局限性 3.自動(dòng)化的缺點(diǎn):

    2024年02月05日
    瀏覽(31)
  • 【碼尚教育】Python自動(dòng)化測(cè)試框架pytest—入門學(xué)習(xí)筆記

    【碼尚教育】Python自動(dòng)化測(cè)試框架pytest—入門學(xué)習(xí)筆記

    目錄 前言 一、pytest單元測(cè)試框架 二、 單元測(cè)試框架和自動(dòng)化測(cè)試框架有什么關(guān)系 三、pytest簡介 四、使用pytest默認(rèn)的測(cè)試用例規(guī)則及基礎(chǔ)應(yīng)用 五、pytest測(cè)試用例的運(yùn)行方式 六、pytest執(zhí)行測(cè)試用例的順序 七、如何分組執(zhí)行?編輯 八、pytest跳過用例 九、pytest框架實(shí)現(xiàn)的一些

    2023年04月12日
    瀏覽(21)
  • 從零開始學(xué)習(xí)軟件測(cè)試-第47天筆記

    yaml yaml是一種所有編程語言都可用的友好的數(shù)據(jù)參數(shù)化標(biāo)準(zhǔn)。 yaml里只能使用字典或列表這兩種數(shù)據(jù)類型。 使用縮進(jìn)表示層級(jí)關(guān)系,但只允許使用空格縮進(jìn)。 縮進(jìn)時(shí)空格的數(shù)量不重要,只要在同一層級(jí)數(shù)據(jù)左側(cè)對(duì)齊即可。 大小寫敏感。 下載yaml模塊 pip install PyYAML yaml的寫法

    2024年02月07日
    瀏覽(42)
  • 【Linux】開始學(xué)習(xí)進(jìn)程替換吧!

    【Linux】開始學(xué)習(xí)進(jìn)程替換吧!

    送給大家一句話: 人生中有些事,你不竭盡所能去做,你永遠(yuǎn)不知道你自己有多出色?!?尾田榮一郎《海賊王》 通過學(xué)習(xí)進(jìn)程替換,我們可以體會(huì)到多語言混搭的快樂,可以從C語言直接蹦到python ,也可以從c++里運(yùn)行java代碼。是不是很厲害!這是通過調(diào)度多個(gè)進(jìn)程的效果,

    2024年04月09日
    瀏覽(25)
  • 解決deepspeed框架的bug:不保存調(diào)度器狀態(tài),模型訓(xùn)練重啟時(shí)學(xué)習(xí)率從頭開始

    解決deepspeed框架的bug:不保存調(diào)度器狀態(tài),模型訓(xùn)練重啟時(shí)學(xué)習(xí)率從頭開始

    deepspeed存在一個(gè)bug,即在訓(xùn)練時(shí)不保存調(diào)度器狀態(tài),因此如果訓(xùn)練中斷后再重新開始訓(xùn)練,調(diào)度器還是會(huì)從頭開始而不是接著上一個(gè)checkpoint的調(diào)度器狀態(tài)來訓(xùn)練。這個(gè)bug在deepspeed的github中也有其他人提出:https://github.com/microsoft/DeepSpeed/issues/3875 因此我們需要寫一個(gè)保存調(diào)度器

    2024年02月09日
    瀏覽(17)
  • pytest 接口測(cè)試框架學(xué)習(xí)

    pytest 接口測(cè)試框架學(xué)習(xí)

    使用pycharm 新建一個(gè)project, 進(jìn)入preferences,添加 pytest,和requests ? ? ? 【留言777】 各位想獲取源碼等教程資料的朋友請(qǐng) 點(diǎn)贊 + 評(píng)論 + 收藏 ,三連! 三連 之后我會(huì)在評(píng)論區(qū)挨個(gè)私信發(fā)給你們~

    2024年02月15日
    瀏覽(22)
  • Python —— pytest框架

    Python —— pytest框架

    1、搭建自動(dòng)化框架的思路與流程 1、搭建自動(dòng)化測(cè)試框架的思路和流程,任意測(cè)試手段流程都是一致的:手工測(cè)試、自動(dòng)化測(cè)試、工具測(cè)試 手工測(cè)試:熟悉業(yè)務(wù) —— 寫用例 —— 執(zhí)行用例并記錄結(jié)果 —— 生成測(cè)試報(bào)告 自動(dòng)化測(cè)試:熟悉業(yè)務(wù) —— 寫自動(dòng)化用例(來自于手工

    2024年04月17日
    瀏覽(15)
  • Python測(cè)試框架 Pytest —— mock使用(pytest-mock)

    Python測(cè)試框架 Pytest —— mock使用(pytest-mock)

    安裝:pip install pytest-mock 這里的mock和unittest的mock基本上都是一樣的,唯一的區(qū)別在于pytest.mock需要導(dǎo)入mock對(duì)象的詳細(xì)路徑。 先將需要模擬的天氣接口,以及需要模擬的場景的代碼寫好,然后在進(jìn)行遵循pytest的用例規(guī)范進(jìn)行書寫關(guān)于mock的測(cè)試用例 通過上述代碼,提供pytest中

    2024年02月09日
    瀏覽(22)
  • Python單元測(cè)試框架之pytest -- 斷言

    Python單元測(cè)試框架之pytest -- 斷言

    對(duì)于測(cè)試來講,不管是功能測(cè)試,自動(dòng)化測(cè)試,還是單元測(cè)試。一般都會(huì)預(yù)設(shè)一個(gè)正確的預(yù)期結(jié)果,而在測(cè)試執(zhí)行的過程中會(huì)得到一個(gè)實(shí)際的結(jié)果。測(cè)試的成功與否就是拿實(shí)際的結(jié)果與預(yù)期的結(jié)果進(jìn)行比較。這個(gè)比的過程實(shí)際就是斷言(assert)。 在unittest單元測(cè)試框架中提供

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包