精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Python 裝飾器工廠在接口自動化中的六種高級用法

開發(fā) 前端
裝飾器工廠(Decorator Factory)在 接口自動化測試框架 中有非常廣泛的應用。它不僅可以提升代碼的可讀性和復用性,還能幫助我們實現(xiàn)。

裝飾器工廠(Decorator Factory)在 接口自動化測試框架 中有非常廣泛的應用。它不僅可以提升代碼的可讀性和復用性,還能幫助我們實現(xiàn):

1、接口日志記錄

2、異常重試機制

3、權限校驗

4、性能監(jiān)控

5、數(shù)據(jù)驅(qū)動

6、環(huán)境切換

前提準備:定義一個通用接口函數(shù)模板

import requests

from functools import wraps

1. 日志記錄裝飾器工廠(支持不同級別)

功能說明:

根據(jù)傳入的日志級別(info/debug),記錄接口調(diào)用信息。

實現(xiàn)代碼:

def make_logger(level='info', enabled=True):
    def logger_decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            if not enabled:
                return func(*args, **kwargs)
            log_method = {
                'info': logging.info,
                'debug': logging.debug
            }.get(level.lower(), logging.info)
            log_method(f"[{func.__name__}] 正在調(diào)用接口...")
            result = func(*args, **kwargs)
            log_method(f"[{func.__name__}] 接口調(diào)用完成")
            return result
        return wrapper
    return logger_decorator

使用示例:

@make_logger('debug')
def get_user_info(user_id):
    print(f"獲取用戶 {user_id} 的信息")
get_user_info(1001)

?? 輸出:

2025-06-29 14:30:00,123 [DEBUG] [get_user_info] 正在調(diào)用接口...

獲取用戶 1001 的信息

2025-06-29 14:30:00,124 [DEBUG] [get_user_info] 接口調(diào)用完成

 2. 接口異常自動重試裝飾器工廠

功能說明:

封裝一個通用的重試邏輯,失敗時自動重試 N 次,適用于網(wǎng)絡請求等不穩(wěn)定操作。

實現(xiàn)代碼:

def retry(max_retries=3, delay=1, exceptinotallow=(Exception,)):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            retries = 0
            while retries <= max_retries:
                try:
                    return func(*args, **kwargs)
                except exceptions as e:
                    retries += 1
                    logging.warning(f"[{func.__name__}] 第 {retries}/{max_retries} 次重試失敗: {e}")
                    if retries > max_retries:
                        raise
                    time.sleep(delay)
            return None
        return wrapper
    return decorator

使用示例:

@retry(max_retries=3, exceptinotallow=(requests.exceptions.RequestException,))
def fetch_data(url):
    response = requests.get(url)
    return response.json()
try:
    data = fetch_data("https://api.example.com/data")
    print(data)
except Exception as e:
    print("最終請求失敗:", e)

3. 權限驗證裝飾器工廠(支持角色控制)

功能說明:

根據(jù)不同用戶角色(如 admin、user)決定是否允許執(zhí)行某個接口。

實現(xiàn)代碼:

def permission_required(role='user'):
    def decorator(func):
        @wraps(func)
        def wrapper(context, *args, **kwargs):
            user_role = context.get('role')
            if user_role != role:
                logging.error(f"[{func.__name__}] 權限不足,需要 {role} 角色,當前為 {user_role}")
                raise PermissionError(f"權限不足,需要 {role} 角色")
            return func(context, *args, **kwargs)
        return wrapper
    return decorator

使用示例:

@permission_required('admin')
def delete_user(context, user_id):
    print(f"管理員 {context['username']} 刪除了用戶 {user_id}")
context = {'username': '張三', 'role': 'admin'}
delete_user(context, 1002)

4. 接口性能統(tǒng)計裝飾器工廠

功能說明:

記錄接口執(zhí)行時間,用于性能分析或優(yōu)化。

實現(xiàn)代碼:

import time
def performance_monitor(enabled=True):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            if not enabled:
                return func(*args, **kwargs)
            start = time.time()
            result = func(*args, **kwargs)
            duration = time.time() - start
            logging.info(f"[{func.__name__}] 執(zhí)行耗時: {duration:.4f} 秒")
            return result
        return wrapper
    return decorator

使用示例:

@performance_monitor()
def slow_api():
    time.sleep(1.2)
slow_api()

?? 輸出:

[slow_api] 執(zhí)行耗時: 1.2003 秒

5. 數(shù)據(jù)驅(qū)動裝飾器工廠(參數(shù)化測試)

功能說明:

為接口函數(shù)動態(tài)注入測試數(shù)據(jù),實現(xiàn)參數(shù)化測試。

實現(xiàn)代碼:

def data_provider(data_list):
    def decorator(func):
        @wraps(func)
        def wrapper(*args, **kwargs):
            for data in data_list:
                logging.info(f"運行測試用例: {data}")
                func(*data)
        return wrapper
    return decorator

使用示例:

@test_data([
    ("張三", "北京"),
    ("李四", "上海"),
    ("王五", "廣州")
])
def test_user_location(name, city):
    print(f"{name} 的城市是 {city}")
test_user_location()

?? 輸出:

運行測試用例: ('張三', '北京')

張三 的城市是 北京

運行測試用例: ('李四', '上海')

李四 的城市是 上海

...

6. 環(huán)境切換裝飾器工廠(開發(fā)/測試/生產(chǎn))

功能說明:

根據(jù)環(huán)境配置自動切換接口地址或行為。

實現(xiàn)代碼:

def environment_switch(env='dev'):
    base_urls = {
        'dev': 'http://dev.api.example.com',
        'test': 'http://test.api.example.com',
        'prod': 'http://api.example.com'
    }
    def decorator(func):
        @wraps(func)
        def wrapper(endpoint, *args, **kwargs):
            full_url = f"{base_urls[env]}/{endpoint}"
            logging.info(f"[{func.__name__}] 請求地址: {full_url}")
            return func(full_url, *args, **kwargs)
        return wrapper
    return decorator

使用示例:

@environment_switch('test')
def call_api(url):
    print(f"正在調(diào)用接口: {url}")
call_api("users/list")

?? 輸出:

[test_api] 請求地址: http://test.api.example.com/users/list

正在調(diào)用接口: http://test.api.example.com/users/list

?? 總結表格:6 種裝飾器工廠對比

圖片圖片


責任編輯:武曉燕 來源: 測試開發(fā)學習交流
相關推薦

2024-08-20 16:32:37

python接口自動化

2024-02-28 16:04:04

深拷貝Python

2025-01-06 15:00:00

Python裝飾器代碼

2020-12-14 10:52:44

Python裝飾器開發(fā)

2023-02-15 16:31:08

Linux自動化編排工具

2023-08-15 15:44:55

React開發(fā)

2021-06-01 07:19:58

Python函數(shù)裝飾器

2023-06-01 16:45:11

React開發(fā)JavaScript

2016-05-10 14:38:13

大數(shù)據(jù)企業(yè)

2023-04-26 08:41:16

Git撤消更改

2011-07-29 13:17:35

HTML 5

2011-05-11 10:00:57

2025-10-21 02:00:00

2024-10-12 08:18:21

Spring接口組件

2024-04-30 15:05:36

Python接口自動化

2022-10-19 16:26:48

數(shù)字化轉(zhuǎn)型技巧數(shù)據(jù)分析

2023-09-24 14:52:21

數(shù)據(jù)分析相關系數(shù)矩陣

2023-09-01 09:21:03

Python自動化測試

2017-06-26 10:35:58

前端JavaScript繼承方式

2025-05-27 01:44:00

點贊
收藏

51CTO技術棧公眾號

精品国产亚洲一区二区三区在线 | 亚洲图片第一页| 无码人妻av一区二区三区波多野 | 亚洲欧美日韩国产一区| 欧美精品日韩一本| 国产精品电影网| 精品熟女一区二区三区| 成人在线影视| 欧美好骚综合网| 欧洲一区二区三区免费视频| 精品国产综合久久| 久久久精品人妻一区二区三区四| 日韩欧乱色一区二区三区在线 | 国产亚洲一区二区三区在线播放| 免费黄色国产视频| 99只有精品| 国产免费成人在线视频| 日韩av电影国产| 精品人妻一区二区三区香蕉| caoporn视频在线| 成人午夜在线免费| 欧美激情第一页xxx| 91亚洲精品久久久蜜桃借种| 久久综合之合合综合久久| 久久精品国产99久久6| 中文字幕国产日韩| 777一区二区| 澳门成人av网| 国产欧美一区二区精品久导航| 亚洲综合中文字幕68页| 欧美人妻一区二区| 超碰cao国产精品一区二区| 一区二区三区在线播| 成人区精品一区二区| 日本一本高清视频| 久久97精品| 色网综合在线观看| 亚洲精品久久区二区三区蜜桃臀| 中文字幕有码无码人妻av蜜桃| 成人无号精品一区二区三区| 欧美肥妇毛茸茸| 熟妇人妻va精品中文字幕 | 黄色特一级视频| 韩国av永久免费| 香蕉久久国产| 8050国产精品久久久久久| 在线观看av中文字幕| 人人鲁人人莫人人爱精品| 国产精品私人影院| 99高清视频有精品视频| 欧美另类一区二区| 成人影视亚洲图片在线| 亚洲欧美精品在线| 超碰成人在线播放| av亚洲一区| 欧美亚洲国产一区二区三区va| 国产日韩第一页| 又污又黄的网站| 午夜日韩福利| 亚洲欧美综合图区| 国产高清999| 秋霞伦理一区| 亚洲免费在线播放| 久久综合九九| 国产女人高潮时对白| 国产视频一区欧美| 久久伊人免费视频| 免费观看av网站| 一区二区在线免费播放| 欧美午夜寂寞影院| 手机在线成人免费视频| 大菠萝精品导航| 日本一区二区免费在线| 亚洲一区二区在线看| 熟妇人妻一区二区三区四区 | 91av免费观看91av精品在线| 中文字幕激情小说| 亚洲乱码在线| 亚洲系列中文字幕| 艳妇乳肉豪妇荡乳xxx| 日韩福利视频一区| 欧美α欧美αv大片| 无限资源日本好片| 国产精品一站二站| 欧美视频完全免费看| 三级一区二区三区| 日韩电影av| 黑人巨大精品欧美一区二区一视频| 精品一区二区成人免费视频 | 麻豆久久一区| 亚洲第一天堂av| 天堂在线一区二区三区| 一区二区在线视频观看| 亚洲欧美日韩中文在线| 亚洲人做受高潮| 波多野结衣在线观看一区二区| 久久精品国产99国产精品澳门| 深爱五月激情网| 亚洲欧美tv| 亚洲精品理论电影| 麻豆免费在线观看视频| 99热这里有精品| 欧美日韩一区二区三区四区五区| www.国产区| 视频在线一区| 日韩欧美在线网站| 国产裸体免费无遮挡| 二区三区不卡| 日韩一区和二区| 日本xxxxxxxxx18| 国产日产一区 | 国产一区二区香蕉| 欧美男人天堂网| 久久久久久9| 国产成人精品视频在线| 成人毛片一区二区三区| 日韩专区在线视频| 国产成人啪精品视频免费网| www.色日本| 国产成人小视频| 999国产视频| 亚洲成人黄色片| 国产91精品在线观看| 国产精品久久7| 手机看片一区二区| 亚洲天堂精品视频| 女人床在线观看| 91九色综合| 亚洲精品有码在线| 成人在线手机视频| 91久久高清国语自产拍| 久热99视频在线观看| 中文字幕精品无| 99精品国产99久久久久久白柏| 久久大香伊蕉在人线观看热2| 四虎电影院在线观看| 国产亚洲欧洲997久久综合 | 欧美在线影院| 成人av在线天堂| 国产ts人妖调教重口男| 风间由美性色一区二区三区| 在线看成人av电影| 在线观看av免费| 欧美日韩国产专区| 一级少妇精品久久久久久久| 久久av超碰| 久久综合久久八八| 国产男男gay体育生网站| 国产精品第一页第二页第三页| 国产爆乳无码一区二区麻豆| 依依综合在线| 精品亚洲国产视频| 日本高清不卡码| 国产美女精品一区二区三区| 成人免费视频观看视频| av在线免费网址| 欧美mv和日韩mv国产网站| 欧美日韩在线观看成人| 亚洲综合精品四区| 久久国产精品久久精品国产| 国产直播在线| 亚洲女人天堂网| 成人午夜精品视频| 中文字幕一区二区三| 亚洲欧美天堂在线| 国内视频精品| 国产一区二区在线免费| 国产欧美久久久久久久久| 91麻豆精品国产91久久久资源速度| 一本加勒比波多野结衣| 亚洲影院免费| 亚洲 国产 欧美一区| 老色鬼在线视频| 亚洲天堂开心观看| 91成人一区二区三区| 91免费在线视频观看| 色一情一乱一乱一区91| 51vv免费精品视频一区二区| 国产做受高潮69| 国产三级伦理片| 亚洲亚洲人成综合网络| 999久久久精品视频| 欧美一区高清| 久久精品日韩精品| 成人av集中营| 久久久久久国产三级电影| 亚洲熟女乱色一区二区三区久久久 | 亚洲第一成人网站| 午夜视频一区| 欧洲一区二区在线| 不卡专区在线| 在线观看国产成人av片| 国产精品午夜影院| 中文字幕的久久| 四虎永久免费观看| 午夜精品亚洲| 日本欧美色综合网站免费| 免费成人毛片| 中文字幕日本精品| 丰满人妻av一区二区三区| 色综合色综合色综合色综合色综合 | 欧美综合一区| 国产精品亚洲一区| 亚洲天堂网站| 国产91精品久久久久| 人人妻人人澡人人爽精品日本| 一区二区三区成人| 奇米777在线| 欧美高清一区| 日产精品久久久一区二区| 性欧美gay| 久久久久国产一区二区三区| 天堂а√在线官网| 欧美日韩国产高清一区| 潘金莲一级黄色片| 91小视频在线| 特级特黄刘亦菲aaa级| 美女在线一区二区| a级网站在线观看| 久草精品在线| 狠狠色狠狠色综合人人| 精品入口麻豆88视频| 国产精品视频在线观看| 麻豆系列在线观看| 日韩欧美精品三级| 波多野结衣视频在线观看| 偷拍与自拍一区| 国产精品久久久久无码av色戒| 国产高清精品网站| 久久精品国产露脸对白| 开心九九激情九九欧美日韩精美视频电影 | 92久久精品| 欧美福利视频在线观看| 黄色网页在线看| 日韩中文字幕在线看| 国产露脸国语对白在线| 亚洲一区二区免费视频| 三级全黄做爰视频| www.亚洲在线| 免费观看成人网| 性感少妇一区| 国产免费毛卡片| 久久精品高清| 亚洲精品高清视频| 久久中文字幕av| 一区二区三区我不卡| 欧美丰满日韩| 国产高清精品软男同| 亚洲理论电影网| 97久久国产亚洲精品超碰热| 激情综合亚洲| 亚洲资源在线网| 999久久久免费精品国产| 先锋影音一区二区三区| 日韩一区三区| 精品九九九九| 日韩手机在线| 日本一区免费看| 日韩久久精品网| 日韩video| 伊人精品成人久久综合软件| 999在线观看视频| 久久在线视频| 天堂а√在线中文在线 | 久久99热精品| 成人精品一区二区三区免费 | 偷拍25位美女撒尿视频在线观看| 日韩精品欧美激情| 国产在线一二三| 精品精品国产高清一毛片一天堂| 后进极品白嫩翘臀在线视频| 亚洲精品久久久久久久久久久| 91久久精品国产91性色69| 在线91免费看| 人妻视频一区二区三区| 亚洲免费高清视频| 最新电影电视剧在线观看免费观看| 精品福利在线导航| 国产毛片在线视频| 欧美mv日韩mv国产网站app| 色综合久久网女同蕾丝边| 欧美电影免费观看完整版| 外国精品视频在线观看| 在线观看精品国产视频| 宅男在线观看免费高清网站| 欧美野外猛男的大粗鳮| 国产亚洲欧美日韩精品一区二区三区 | 国模私拍一区二区三区| 成人看片网站| 97人人干人人| 欧美午夜精彩| 日韩美女爱爱视频| 亚洲mv大片欧洲mv大片| 婷婷精品国产一区二区三区日韩| 亚洲激情中文| 欧美在线观看视频网站| 国产成人午夜精品影院观看视频 | 毛片网站在线免费观看| 91精品国产91久久| 9999精品视频| 日本成人三级电影网站| 黄色av成人| 亚洲美女爱爱视频| 91免费视频大全| 久久久精品国产sm调教网站| 欧美日韩国产首页| 免费av在线电影| 亚洲欧美三级在线| 羞羞网站在线看| 久久久女女女女999久久| 九九热这里有精品| 久久另类ts人妖一区二区| 欧美88av| 激情久久综合网| 欧美极品少妇xxxxⅹ高跟鞋 | 免费视频一区二区三区在线观看| 日本亚洲一区二区三区| 中文文精品字幕一区二区| 国产高清中文字幕| 亚洲级视频在线观看免费1级| 国产三级在线播放| 91精品久久久久久| 欧美日韩高清| 黄色一级片网址| 日韩电影一区二区三区| 黄色录像a级片| 性做久久久久久免费观看| 日韩毛片一区二区三区| 欧美zozozo| 黄色小说在线播放| 青青草99啪国产免费| 欧美成人福利| 日韩高清av| 日韩电影网1区2区| 蜜桃久久精品成人无码av| 1000精品久久久久久久久| 久久香蕉精品视频| 日韩美女一区二区三区四区| 成人日韩欧美| 亚洲专区中文字幕| 中文字幕一区二区三区久久网站| 污污的视频免费观看| 亚洲欧美另类小说| 99精品视频免费看| 不卡毛片在线看| 亚洲精品黑牛一区二区三区| 免费网站永久免费观看| 成人性生交大片免费看中文网站| 日本免费一二三区| 亚洲国产小视频在线观看| 538在线视频| 麻豆久久久9性大片| 日韩综合在线视频| 国产大屁股喷水视频在线观看| 欧美视频第二页| 国内精品不卡| 国产精品区免费视频| 99riav1国产精品视频| 一区二区免费av| 亚洲视频精选在线| 性欧美18一19性猛交| 97精品一区二区三区| 台湾天天综合人成在线| 最新黄色av网站| 成人激情黄色小说| 欧美h片在线观看| 日韩一区二区在线看| 国产乱码午夜在线视频| 日本视频一区二区在线观看| 精品一区二区三区香蕉蜜桃| av女人的天堂| 欧美区一区二区三区| 四虎影院观看视频在线观看| 精品视频在线观看| 日韩1区2区3区| 亚洲综合网在线观看| 欧美在线999| 最新国产露脸在线观看| 精品视频第一区| 青青草成人在线观看| 欧美日韩免费一区二区| 国产视频亚洲精品| 国产日韩欧美中文在线| 精品欧美一区免费观看α√| 国产91在线|亚洲| 日韩久久中文字幕| y97精品国产97久久久久久| 成人h动漫精品一区二区器材| 国产情侣av自拍| 亚洲黄色av一区| 国产在线一二三| 国产精品免费一区二区三区四区 | 欧美在线高清视频| 日本孕妇大胆孕交无码| 日韩女优中文字幕| 成人午夜免费电影| 中文字幕在线观看免费| 亚洲91精品在线观看| 天天做天天爱天天综合网| 亚洲a v网站|