欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

pytest收集鉤子實戰(zhàn):用pytest_collection_finish獲取完整用例清單

pytest收集鉤子實戰(zhàn):用pytest_collection_finish獲取完整用例清單 pytest 的鉤子函數(shù)體系絕大多數(shù)測試開發(fā)都用過 pytest_runtest_logreport、pytest_terminal_summary 這類執(zhí)行期鉤子做用例統(tǒng)計、JUnit 報告、失敗重跑。但如果你要的數(shù)據(jù)是「這次到底收集到了哪些測試用例、命中哪些用例、參數(shù)化展開后一共多少條」也就是在用例真正開始跑之前就要拿到一份完整的命中清單執(zhí)行期鉤子就有點繞了跑完一條統(tǒng)計一條還得自己維護狀態(tài)被跳過和 setUp 階段失敗的用例還得小心別漏。這個需求的最佳切入點其實是 pytest_collection_finish。簡單說pytest_collection_finish 是 pytest 在「收集階段全部結(jié)束、執(zhí)行階段正式開始之前」觸發(fā)的一個鉤子。你在這個鉤子里拿到的 session.items就是這一輪 pytest 命中所有篩選條件之后、即將執(zhí)行的完整用例集合。做測試平臺上報、精準回歸范圍確認、用例資產(chǎn)盤點、命中率分析用這個鉤子比在終端解析那行 “collected 123 items” 或統(tǒng)計執(zhí)行報告干凈得多。這篇我直接分享自己用這個鉤子的完整思路和踩坑記錄適合三類人正在寫內(nèi)部測試平臺、需要用例級清單上報的想統(tǒng)計參數(shù)化展開后實際用例量、按標記/文件/類維度做大盤的以及對 pytest 收集機制本身好奇、想搞明白 collection 階段到底發(fā)生了什么的人。1. 先搞清楚 pytest 的 Collection 階段到底給了我們什么很多同學(xué)寫 pytest 插件上來就找執(zhí)行期鉤子其實 pytest 的生命周期里收集階段才是最該插手的時機。我先把這個階段講透后面你寫鉤子會順手很多。1.1 Collection一個大篩子把測試文件變成用例對象pytest 啟動之后并不是直接跑用例而是先進入 collection 階段。這個階段會從 rootdir 開始沿著目錄一層層往下掃描匹配 test_*.py 或 *test.py 文件再在每個測試文件里匹配以 test開頭的函數(shù)、TestXxx 類里的 test_ 方法以及 pytest.mark.parametrize 展開出來的參數(shù)組合。每一個最終匹配到的單元會被包裝成一個 Item 對象。你可以把 collection 理解成一個大篩子第一步篩出所有“看起來像測試”的節(jié)點第二步再做命令行篩選比如 -k 表達式、-m 標記表達式、--ignore 忽略路徑第三步給參數(shù)化用例做笛卡爾積展開。等這些步驟全部走完留下來的就是“命中”的用例集合。你想想看我們說的“收集測試命中用例數(shù)據(jù)”本質(zhì)上就是把篩子輸出端拿到的那一摞清單完整記錄下來。這里有個容易忽略的點參數(shù)化是在收集階段完成的。一個測試函數(shù)只要寫了 pytest.mark.parametrize 傳了 5 組參數(shù)收集之后就變成 5 條獨立的 itemnodeid 長得不一樣執(zhí)行時也按 5 條獨立用例算。所以你在終端看到 “collected 120 items”往往是你寫代碼時數(shù)的 20 個測試函數(shù)被參數(shù)化一展開就成了 120。這種數(shù)據(jù)只有收集階段才能準確拿到跑到執(zhí)行期再數(shù)就得累死。1.2 收集鉤子全家桶三個鉤子怎么分工pytest 在收集階段暴露了不止一個鉤子想清楚分工才不會用錯。我整理成表鉤子觸發(fā)粒度典型用途pytest_collectstart每個 collector目錄/文件/類開始收集時做收集進度條、日志pytest_itemcollected每個 item 成功生成時對單個用例打點、計數(shù)pytest_collection_modifyitems(session, config, items)全部 item 收集完畢、篩選完成后對 items 列表做增刪改排序選擇/排序插件的地盤pytest_collection_finish(session)collection 完全收尾、執(zhí)行前讀取最終 items做大盤統(tǒng)計、上報、落地pytest_collectstart 和 pytest_itemcollected 是“過程性”鉤子粒度太碎。pytest_collection_modifyitems 和 pytest_collection_finish 是“結(jié)果性”鉤子都在收集結(jié)束后觸發(fā)差別在于順序modifyitems 在前finish 在后。換句話說modifyitems 階段其他插件還可能對你手里的 items 動手比如 pytest-randomly 在這里亂序比如你想在這里按優(yōu)先級篩掉一批用例到了 finish 階段集合已經(jīng)定了不適合再改只適合讀。1.3 為什么放棄執(zhí)行期鉤子選擇 collection 階段拿數(shù)據(jù)我最早做用例統(tǒng)計用的也是 pytest_runtest_logreport后來發(fā)現(xiàn)三個問題第一執(zhí)行期鉤子只能拿到“已經(jīng)執(zhí)行出結(jié)果”的用例一個用例如果被 skipIf 跳過在 setup 階段就被攔截了你要統(tǒng)計“本輪全部命中用例”就怎么都數(shù)不全。第二收集階段能看到還沒開始執(zhí)行的完整清單可以做預(yù)檢查——比如命中集為空、命中集和預(yù)期范圍不一致這在執(zhí)行前就該發(fā)現(xiàn)。第三執(zhí)行期數(shù)據(jù)往往帶著狀態(tài)passed、failed、error、skipped如果你只是想回答“這輪跑了哪些用例、一共多少、參數(shù)化規(guī)模多大”這樣的問題這些狀態(tài)信息反而是噪音。所以我的經(jīng)驗是凡是要“用例清單”的一律用 finish 鉤子凡是要“執(zhí)行結(jié)果”的才用執(zhí)行期鉤子。兩個切面的定位完全不同。2. 鉤子簽名與前置機制動手前先讀懂這些細節(jié)光知道 finish 鉤子能拿到 session.items 還不夠簽名里藏著很多細節(jié)不看清楚寫出來的代碼脆弱得很。2.1 簽名與觸發(fā)時機順便理清 -k / -m 篩選的影響鉤子簽名非常簡單def pytest_collection_finish(session: pytest.Session) - None: ...只有 session 一個參數(shù)。觸發(fā)時機是整個收集機制徹底結(jié)束后、pytest_runtestloop 開始前。我用一句話記憶modifyitems 之后、執(zhí)行之前。這里有個很關(guān)鍵的語義觸發(fā)當(dāng)時session.items 已經(jīng)是經(jīng)過命令行篩選的最終命中集合。也就是說你執(zhí)行 pytest -k test_login 時finish 鉤子里看到的 items 已經(jīng)只剩包含 test_login 的用例執(zhí)行 pytest -m p0 時items 已經(jīng)只剩帶 p0 標記的用例。這不是壞事恰恰相反——「命中」二字本來就應(yīng)該是篩選后的結(jié)果。如果你想對比篩選前全量就另外用無篩選的 --collect-only 建立基線后面我會講這個做法。另一個容易被忽略的點即使你用了 -x失敗即停、-k 篩完一個不剩、或者收集階段出了一些非致命問題這個鉤子照樣會觸發(fā)。所以這也是一個理想的“兜底檢查點”比如在這里判斷 len(session.items) 0直接打警告避免后面執(zhí)行階段空跑一趟才發(fā)現(xiàn)沒收集到用例。2.2 session.items 里每個元素都是什么session.items 是一個列表每個元素是 pytest.Item 的實例。你平時寫的測試函數(shù)收集之后最常見的類型是 pytest.Function但 pytest 也支持 doctest、自定義 collector所以代碼里別假設(shè)每個 item 都有 module 或 cls。拿一個普通用例舉例item 身上這些屬性非常有用屬性說明注意點nodeid唯一標識如 test_demo.py::TestLogin::test_login_ok[case1]多級路徑 類 函數(shù) 參數(shù)name測試函數(shù)顯示名參數(shù)化時末尾可能帶 [參數(shù)id]originalname參數(shù)化前的原始函數(shù)名pytest 6.2 才有path / fspath文件路徑新版用 path舊版用 fspath最好做個兼容module所屬模塊對象doctest item 可能是 Nonecls所屬測試類模塊級函數(shù)沒有 clskeywords關(guān)鍵字字典包含類名、函數(shù)名、mark 名、參數(shù)名markers該 item 上的所有 mark可能包含自動生成的 parametrize 標記callspec參數(shù)化調(diào)用信息含 params 和 id沒有參數(shù)化的 item 沒有這個屬性location三元組 (文件路徑, 行號, 名)定位用例很方便剛開始用的時候我老想著把 item 整個丟進 JSON后來發(fā)現(xiàn) item 對象里包含大量不可序列化、還可能帶 fixture 實例的東西序列化幾乎必然翻車。正確姿勢是寫一個轉(zhuǎn)換函數(shù)只抽取你要的標量字段。2.3 參數(shù)化用例的 nodeid 與 callspec 解析參數(shù)化用例的 nodeid 長這樣tests/test_demo.py::TestCalc::test_add[a-b-1]nodeid 的本質(zhì)是用 :: 把模塊路徑、類名、測試函數(shù)名串聯(lián)起來末尾的 [a-b-1] 是參數(shù)組合標識。坑點在于參數(shù)內(nèi)容本身可能包含逗號、中文、甚至方括號你要是用 nodeid.rsplit([, 1) 暴力拆遇到參數(shù)值里帶左括號就炸了。我推薦用 callspec 來解析if hasattr(item, callspec): callspec item.callspec param_id getattr(callspec, id, ) params { k: repr(v) for k, v in getattr(callspec, params, {}).items() }callspec.id 是 pytest 根據(jù)參數(shù)值或你傳入的 ids 生成的參數(shù)組合標識比你自己從 nodeid 里摳字符串靠譜得多。callspec.params 則是一個 dictkey 是參數(shù)名value 是參數(shù)值。這里還要提個醒參數(shù)值可能是 fixture 實例、字典、甚至類對象直接扔進 JSON 必然報錯所以上面代碼里我用了 repr()輸出到報告里至少還能看個大概。如果擔(dān)心參數(shù)里有密碼等敏感信息這里要么只保留 param_id要么在存儲前做脫敏。3. 實操把命中用例數(shù)據(jù)落地成可用數(shù)據(jù)理論鋪墊夠了下面直接上代碼。我會從一個最小 demo 開始逐步擴展到一個能直接用到生產(chǎn)環(huán)境的版本。3.1 最小實現(xiàn)先打印一份用例清單驗證切面第一步在項目根目錄建一個 conftest.py寫最簡版本import pytest pytest.hookimpl(tryfirstTrue) def pytest_collection_finish(session): print(f\n[pytest_collection_finish] 共收集到 {len(session.items)} 條用例, flushTrue) for item in session.items: print( , item.nodeid, flushTrue)注意我加了 tryfirstTrue意思是如果還有其他插件也實現(xiàn)了這個鉤子我這個先跑。這里的意圖是盡快把命中清單打出來避免其他插件的耗時代碼拖慢輸出。跑一下pytest --collect-only -q如果 conftest.py 放對了位置你會在終端看到我們打印的用例清單。這一步驗證完說明鉤子本身已經(jīng)通了接下來所有邏輯都往這個函數(shù)里放。3.2 完整輸出把命中數(shù)據(jù)結(jié)構(gòu)化落地成 JSON打印到終端只適合臨時看真正做平臺上報、用例盤點得把數(shù)據(jù)落成結(jié)構(gòu)化文件。下面這個版本是我實際項目里改出來的可以直接抄import json from datetime import datetime from pathlib import Path import pytest def _safe_str(value): try: return str(value) except Exception: return unserializable def _item_to_dict(item): path str(getattr(item, path, None) or getattr(item, fspath, )) module getattr(item, module, None) d { nodeid: item.nodeid, name: getattr(item, originalname, item.name), path: path, module: getattr(module, __name__, None) if module else None, line: item.location[1] if getattr(item, location, None) else None, keywords: sorted(getattr(item, keywords, {}).keys()), markers: [m.name for m in item.iter_markers()], parametrized: hasattr(item, callspec), } if d[parametrized]: callspec item.callspec d[param_id] getattr(callspec, id, ) or d[params] { k: _safe_str(v) for k, v in getattr(callspec, params, {}).items() } return d pytest.hookimpl(tryfirstTrue) def pytest_collection_finish(session): payload { generated_at: datetime.now().isoformat(), command_args: list(getattr(session.config, args, [])), total: len(session.items), cases: [_item_to_dict(item) for item in session.items], } output_path Path(session.config.rootdir) / collection_report.json output_path.write_text( json.dumps(payload, ensure_asciiFalse, indent2), encodingutf-8, ) print( f[pytest_collection_finish] 已寫入 {output_path}共 {len(session.items)} 條命中用例, flushTrue, )這里有幾個細節(jié)值得說ensure_asciiFalse 必須帶上否則 nodeid、參數(shù)里的中文全部變成 \uXXXX報告根本沒法看。path 屬性做了兼容新版本 pytest 用 item.path老版本用 item.fspath二選一寫死容易在升級后炸。item.location 三元組的第二項就是用例定義行號這個信息在排查用例命中錯誤時極其好用。params 里用 _safe_str 包一層再奇怪的參數(shù)對象也不會讓 JSON 序列化崩潰。跑完之后 collection_report.json 會落在項目根目錄用 jq 或者隨便什么 JSON 工具都能查。這已經(jīng)能回答“這輪命中多少用例、每個用例在哪個文件哪一行、有沒有參數(shù)化”這類問題了。3.3 做命中率與基線差異分析從“收集數(shù)據(jù)”到“分析數(shù)據(jù)”只有一份 JSON 還不夠很多時候我們想知道的是“命中率”。這個詞在精準測試場景下非常常用假設(shè)整個產(chǎn)品全量用例庫有 5000 條這次回歸因為需求范圍限制只該跑其中的 800 條鉤子收集完一看實際命中了 750 條那命中率 93.75%剩下 50 條去哪了這就是精華所在。做法分兩步。第一步先不帶任何篩選執(zhí)行一次全量收集生成基線pytest --collect-only -q -p no:cacheprovider復(fù)用上面那個鉤子把 collection_report.json 的內(nèi)容當(dāng)作 baseline。接著我寫一個簡化版的對比邏輯import json from pathlib import Path import pytest def _load_baseline(path: str collection_report.json) - dict: p Path(path) if not p.exists(): return {} return json.loads(p.read_text(encodingutf-8)) pytest.hookimpl(tryfirstTrue) def pytest_collection_finish(session): baseline _load_baseline() if not baseline: return baseline_ids {case[nodeid] for case in baseline.get(cases, [])} current_ids {item.nodeid for item in session.items} hit_ids current_ids baseline_ids new_ids current_ids - baseline_ids # 新增/不在基線里的用例 lost_ids baseline_ids - current_ids # 基線里有這輪沒命中的用例 hit_rate len(hit_ids) / len(baseline_ids) if baseline_ids else 0 print( f[命中分析] 基線 {len(baseline_ids)} 條本輪命中 {len(hit_ids)} 條 f命中率 {hit_rate:.2%}新增 {len(new_ids)} 條未命中 {len(lost_ids)} 條, flushTrue, )這個思路擴展性很強。比如你想按優(yōu)先級分析就提前在全量基線里給每個用例打上 p0/p1/p2 標記然后按標記分別算命中率想按模塊分析就把 lost_ids 按文件路徑前綴分組直接定位漏測風(fēng)險集中在哪里。我把這套邏輯接到內(nèi)部測試平臺之后最常用的其實不是總量命中率而是 p0 用例命中率——跑了一次回歸核心用例漏了一半平臺直接就飄紅比事后翻報告快多了。第 4 章我會展開講幾個實戰(zhàn)場景先提醒一點基線文件本身會過期用例庫在持續(xù)變化建議每次發(fā)版前重新生成基線并且把基線生成動作固化到 CI 流水線里別靠手敲命令。4. 進階場景命中數(shù)據(jù)如何變成平臺能力數(shù)據(jù)弄到手之后怎么讓它真正產(chǎn)生價值我分享三個我實際做過的場景每個都對應(yīng)一種不同的業(yè)務(wù)訴求。4.1 場景一直接上報測試平臺實現(xiàn)用例清單回放內(nèi)部測試平臺往往有“測試記錄”功能想展示每條測試用例的執(zhí)行結(jié)果就得先知道這輪跑了哪些用例。很多人是在全部跑完后從 JUnit XML 里解析其實在 finish 鉤子里直接把命中清單上報給平臺平臺立刻就能生成一條“測試記錄”執(zhí)行結(jié)果跑完后再一輪 patch 上去整體體驗會好很多。上報代碼也不復(fù)雜關(guān)鍵是要兜住異常import json import os import pytest def _report_to_platform(payload: dict): try: import requests api os.environ.get(TEST_PLATFORM_API, ) if not api: return resp requests.post(api, jsonpayload, timeout5) resp.raise_for_status() except Exception as exc: # noqa: BLE001 # 上報失敗絕不能影響 pytest 主流程 print(f[report] 上報失敗: {exc}, flushTrue) pytest.hookimpl(tryfirstTrue) def pytest_collection_finish(session): payload { run_id: os.environ.get(RUN_ID, local), total: len(session.items), case_ids: [item.nodeid for item in session.items], } _report_to_platform(payload)注意一個鐵律鉤子里做網(wǎng)絡(luò)請求必須 try/except 包住因為測試環(huán)境經(jīng)常斷網(wǎng)、內(nèi)網(wǎng)通不了、超時很久如果這些異常冒泡到 pytest 主流程整個測試都會被中斷這是絕對不能接受的。4.2 場景二精準回歸的命中集校驗精準回歸大家應(yīng)該都懂開發(fā)只改了某個模塊理論上只需要跑這個模塊相關(guān)的用例。但在改動分析不靠譜的時候真正執(zhí)行范圍可能跟預(yù)期差很多。我在 CI 里加了一個校驗環(huán)節(jié)依賴的就是 finish 鉤子。流程是MR/PR 里解析出受影響的源碼文件列表 - 通過路徑映射生成“預(yù)期命中用例集合” - 執(zhí)行 pytest - finish 鉤子收集實際命中集合 - 對比得到漏測集和新測集。漏測集里如果包含核心用例CI 直接報錯阻塞合入。這個“預(yù)期命中集合”怎么生成不是本文重點但我可以給你一個簡單可用的替代思路很多團隊會給用例按模塊打標記比如 pytest.mark.module_user。精準回歸時執(zhí)行 pytest -m module_user or module_orderfinish 鉤子拿到的就是實際命中集合再跟改動分析腳本預(yù)測的集合一對比誰多誰少一目了然。多做的用例雖然浪費點資源但漏掉用例才是大問題。4.3 場景三配合 pytest-xdist 匯總 worker 數(shù)據(jù)分布式執(zhí)行時數(shù)據(jù)匯總是個容易踩坑的點。pytest-xdist 的機制是 master 先做收集然后把收集到的 item 分發(fā)給各個 worker 執(zhí)行worker 內(nèi)部一般不重復(fù)走完整的 collection 流程。所以穩(wěn)妥的做法是在 master 進程的 finish 鉤子里拿全局命中數(shù)據(jù)落一個文件如果需要按 worker 維度統(tǒng)計再在 worker 側(cè)把各自執(zhí)行的 nodeid 寫日志最后合并。我在項目里的做法是兩階段先跑一次pytest --collect-only -q生成全局命中清單讓老板和平臺先看到范圍然后再正式跑分布式執(zhí)行。這樣即使執(zhí)行中途某個 worker 掛了本輪“命中范圍”早就留下了快照復(fù)盤的時候不至于啥都沒了。這個思路比強行在 xdist worker 里匯總數(shù)據(jù)簡單得多也更穩(wěn)。5. 常見問題與排查實錄寫鉤子不難但真實環(huán)境里會碰到各種妖魔鬼怪。我把常遇到的坑和排查方法整理出來你對照著看能少走不少彎路。5.1 鉤子沒觸發(fā)、重復(fù)觸發(fā)、print 被吞最基礎(chǔ)但最高頻的問題是鉤子壓根沒觸發(fā)。先看 conftest.py 放對位置沒有——pytest 的 conftest 加載機制是分層級的只有放在 rootdir 或測試目錄的父級目錄里才會對目標測試用例生效。你在某個子目錄的 conftest.py 里寫了鉤子但跑的是另一個目錄下的用例自然不觸發(fā)。其次是函數(shù)名拼寫。pytest 的鉤子是通過 hookspec 名字匹配的少寫一個字母就靜默失效pytest 還不會報錯。排查方法很簡單臨時在鉤子第一行加一個 print然后執(zhí)行pytest --collect-only -q能打印出來說明鉤子生效了沒打印就是位置或者拼寫問題。重復(fù)觸發(fā)則可能來自多份 conftest.py。如果測試目錄層級里有多層 conftest且每層都實現(xiàn)了同一鉤子pytest 會依次調(diào)用多個實現(xiàn)。大多數(shù)情況下這也是合法需求但如果你的本意是全局一份邏輯就要注意清理多余的 conftest或者用pytest.hookimpl(trylastTrue)之類的方式控制執(zhí)行順序。print 被吞的問題也很常見。pytest 默認對測試執(zhí)行過程的輸出捕獲collection 階段雖然在通常場景下認為還在執(zhí)行捕獲邏輯之前但保險起見所有調(diào)試 print 都加 flushTrue或者干脆直接寫到文件別依賴終端輸出。這是我踩過最多次的坑。5.2 item 屬性訪問炸了怎么破最常見的是 AttributeError。比如你遍歷 session.items假設(shè)每個 item 都有 module 屬性結(jié)果遇到 doctest 類型的 itemitem.module 是 None遇到 pytest 7 之前的版本item.path 不存在只有 item.fspath遇到自定義 collector 生成的 item可能連 callspec 都沒有。我總結(jié)下來的三條防御式寫法所有屬性訪問都用 getattr(item, xxx, None) 給默認值關(guān)鍵路徑用getattr(item, path, None) or getattr(item, fspath, )。判斷是否有參數(shù)化用 hasattr(item, callspec)不要靠 nodeid 里有沒有 [ 來猜。序列化前統(tǒng)一經(jīng)過 _safe_str()參數(shù)值里可能塞了對象、函數(shù)、甚至 mock 實例repr 一下兜底。另外提一句item.location 在某些極端情況下也可能沒有訪問前用 getattr(item, location, None) 判空。這些防御代碼看起來啰嗦但能幫你在 pytest 小版本升級時不炸。5.3 參數(shù)化解析與 JSON 序列化的坑如果不用 callspec 非要自己拆 nodeid遇到參數(shù)值里有中文逗號、空格、方括號你會得到一個又長又亂的字符串。尤其參數(shù)值是(1, 2)這種元組的 reprpytest 會轉(zhuǎn)義很多字符你肉眼很難還原原始參數(shù)。所以再次強調(diào)解析參數(shù)化用 callspec。JSON 序列化那邊最常見的問題是 params 里有一個 requests.Session 對象或者 fixture 返回的連接對象json.dumps 直接拋 TypeError。我的 _safe_str 方案會把所有 value 變成字符串信息量雖然損失一點但報告文件永遠能生成出來。如果擔(dān)心報告文件本身越來越大——全量收集 5000 條用例一個 JSON 可能就 1~2MBCI 上多存幾份倒是沒啥但要記得把 collection_report.json 加進 .gitignore別污染代碼倉庫。5.4 排查速查表我最后把經(jīng)驗整理成一個表直接貼墻上用現(xiàn)象可能原因解法鉤子完全沒觸發(fā)conftest.py 位置不對 / 函數(shù)名拼錯先加 print 驗證再查文件層級鉤子觸發(fā)多次多層 conftest 都有實現(xiàn)用 hookimpl 的 tryfirst/trylast 控制或減少 conftestitems 數(shù)量為 0-k/-m 篩得太狠 / 路徑不存在去掉篩選再收集對比或在這里打兜底警告item.module 為 Nonedoctest/自定義 itemgetattr 判空按 None 處理參數(shù)化解析亂自己拆 nodeid改用 item.callspecJSON 序列化報錯參數(shù)值是對象遍歷前用 _safe_str 包裹上報失敗中斷測試網(wǎng)絡(luò)異常冒泡鉤子里所有網(wǎng)絡(luò)請求 try/exceptfinish 拿到的 items 與終端統(tǒng)計不一致其他插件在 modifyitems 階段改過 items先執(zhí)行 modifyitems 再執(zhí)行 finish讀取時別修改6. 最后分享幾點真實心得鉤子本身寫起來很簡單但要把這個切面真正用好我總結(jié)了幾條個人經(jīng)驗希望對你有幫助。第一finish 鉤子里絕對不要修改 items。這個階段數(shù)據(jù)已經(jīng)定型你修改它也只是在內(nèi)存里改執(zhí)行階段到底用不用取決于 pytest 內(nèi)部的調(diào)度順序搞不好還能跟其他插件打架。想改用例集合請老老實實去 pytest_collection_modifyitems 里做那是官方設(shè)計好的“修改窗口”。第二別在 finish 里統(tǒng)計執(zhí)行結(jié)果。有人問我能不能在這個鉤子里判斷用例通過多少、失敗多少做不到因為它發(fā)生在執(zhí)行之前。你要執(zhí)行結(jié)果去用 pytest_terminal_summary 或者 report 相關(guān)鉤子各管一段才最清晰。第三我建議把這段邏輯收成一個小插件。比如做一個 pip 可安裝的包內(nèi)部就一個 conftest.py 和幾個工具函數(shù)通過 entry_points 注冊到 pytest 里。這樣不用每個項目粘一份代碼升級邏輯只改一個地方CI 流水線里也能很干凈地復(fù)用。第四平時調(diào)試這套東西我常年配合pytest --collect-only -q使用。它不執(zhí)行用例但收集階段完整跑完finish 鉤子照樣觸發(fā)數(shù)據(jù)照樣落盤。這等于給了你一個“只盤點、不執(zhí)行”的開關(guān)做用例庫大盤再合適不過。你甚至可以寫個定時任務(wù)每天夜里全量收集一次把命中數(shù)據(jù)歸檔慢慢就是一個很有價值的用例資產(chǎn)庫。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
9999热这里只有精品| 99日韩网站| 丰满少妇猛烈A片免费看观看 | 婷婷五月天激情四射| tingtingjiqingwuyue| 精品亚洲国产成人A片在线鸭王| 91久久婷婷人人澡草 | 激情图片五月天| 好好日激情五月天| 超碰免费人妻| 五月丿香啪啪| 亚洲网在线观看| 精品99视频| 丁香五月天殴美激情| 激情丁香久久久久久| 久久久久这里只有精品| 色婷久九| 九九无码| 玖玖热视频| 久久婷婷五月综合精品蜜芽| 亚洲国产网站| 天天日P天天射P| 激情网五月天| 国产成人+综合亚洲+天堂| 亚洲色色色色| 1024欧美看片| 国产精品国产成人国产三级| 国产色网站| 精品99网站| 日本啪啪网| 99在线视频操999| 五月天婷婷基地| 久久色9| 色色色色五月天| 久久 中文 日本| 超碰成人黄色网| 色私五月婷婷| 九九热这里| 天天色综合色| 日本精品。999| 欧美内射AA| 99热国产婷婷| 在线综合亚洲欧美65| 精品人妻一区| 91中文在线| av中文在线| 久久综合五月天| 久久在线人妻| 日本久久人| 大香蕉在线99热| 深爱激情六月天| 久久婷婷五月综合伊人| 激情性爱五月天| 天天拍天天操| 五月丁香欧美综合| 婷婷五月天影院| 婷婷丁香五月婷婷| 色婷婷激情| www.婷婷.com| 日韩高清成人| 日韩AAAAA| 九九九热精品| 五月婷婷五月| 国产精产国品一二三在观看| 久草婷| 日本www免费九九| 色色色色丁香| 狠狠色婷婷色| 五月婷婷啪啪网| 狼人婷婷综合| 99热欧美精品| 91九色国产| 丁香六月久久| 99精品一二三四视频| 亚洲狠狠婷婷| 九九热视频精品2| 91 九色 熟女| 九色视频这里只有精品| 九九热这里| 日日噜噜夜夜狠狠久久丁香五月| 99热这里| 99热这里有精品| 欧美槡BBBB槡BBB少妇| 男人操女人高潮91视频| 狠狠久久婷婷| 丁香婷婷六月激情文学| 天天综合天天玩夜夜玩天天玩夜夜玩| 常久最新免费的色吊丝| 五月婷婷久久大香蕉| 99婷婷| 国产精品色色| 久久丁香网| 日韩有码久久| 再綫Av免费視品| 色婷婷激情小说网| 五月丁香婷婷综合网| 婷婷色九月| 人人草人人舔| 极品少妇婷婷五月| 日韩欧美一区二区三区四区| 免费亚洲成人电影AV| 岛国AAAV| 天天操夜夜爽天天操| 日韩情色在线观看| 色五月成人| 丁香五月网址| 天天爽夜夜爽天天爽夜夜爽| 色噜噜狠狠色综合日日| 日本色超碰| 激情小说婷婷五月| 伊人激情综合网| 久99热| 无码AV大香线蕉伊人| 人妻内射一区二区在线视频| 奇米四色五月天| 性生活视频98791| 久久这里只有国产| 超碰在线超碰| 视频一区二区在线| 婷婷激情五月天综合| 婷婷激情性爱| 99热这里只有精品26| 五月丁香花激情综合网| 狠狠爱综合网| 秋霞免费三级片| 97婷婷五月| 99综合网| 超级碰碰91| 99只有这里是精品| 中国丰满熟女A片免费观| 久久久精品99| 久久色五月天激情小说| 国产婷婷婷| 日本色色色| www.成人婷婷综合| 激情AV综合| 99人人干| 一级黄色影片| 久久五月丁香婷婷| 亚洲天天| 色婷婷WWW| 99精品在这里| 欧州婷婷五月天综合| 久久九区| 激情AV| 一区二区传媒视频| 久久人妻乱| 日韩成人不卡| 五区毛片七区毛片| 五月桃花网综合| 99在线观看这里都是精品| 26uuu欧美| 色欲五月丁香| 婷婷六月五月天综合| 狠狠综合网| 亚洲精品在线视频| 九九色影视| 久9久成人精品视频| 香蕉AV777XXX色综合一区| 五月激情综合网| 99色色网| 亚洲精品V天堂中文字幕| 色狠狠色综合久久久绯色aⅴ影视| 色六月天天激情综合网| wwwwww.色| www五月| 精品99在线| 天天日天天干天天天| 99精品偷自拍| 色五月天成人在线| 色九四色| 桔色成人官方网站| 男女啪啪做爰高潮无遮挡| 精品视频这里只有精品| 亚洲色另类| 婷婷丁香五月天大香蕉| 成人免费va| 丁香五月激情网| 婷综合| 99热这里只有精品55| 91在线观看九区| 日韩精品无码99| 99综合网| 丁香六月情| 2022人人操人人看| 五月婷婷在线免费观看| 人人操超踫| 黄色片avv| 五月婷婷丁香色播网| 中文AV网站| 99热6这里只有精品| 91操屁股| 国产乱子轮XXX农村| 成人九九视频| 国产精品成人网站| 婷婷综合另类小说| 97超碰色| 亚洲国产99| sisi热国产| 99视频只有精品| www.日韩艹| 国产又爽又猛又粗的视频A片| 欧美猛片| 91丨九色丨国产打屁股网站| 777色色色| 99爱免费在线观看| 97亚洲婷婷| 国产成人网址| 26uuu精品国产| 热99精品视频| 九月丁香八月婷婷加勒比| 噜噜吧天天爱| 91狠狠综合久久| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 欧美色色色色色色| 极品少妇XXXX精品少妇偷拍| www久久艹| 美女网黄| 久久色午夜在线导航| AV在线中文| 久久久月丁香| 久久HD| 色综合视频在线| 51国精产品自偷自偷综合| 精品久久99| 五月丁香六月片| 婷婷五月在线观看| 怡红院一二三| 另类小说五月天综合网| 欧美欧盟性爱网| 婷婷黄色网| 99色热| 夜色综合网| www 五月天 com| 97碰啪啪| 国产色网站| 超碰亚洲欧美| 最近中文字幕大全免费版在线| 六月丁香网| 一二三区视频韩国| 天天成人五月天| 亚洲第一成人无码A片| 九九综合影音先锋| 国产XXXX搡XXXXX搡麻豆| 久99视频在线观看| 久9久9热久热| 日韩色色视频www| 色综合色综合婷婷热| 久久jiuwww| 日韩野外 无套| 大香蕉伊人久久| 久久精品99久久久久久| 人人干人人看| 色婷婷精品视频| 婷婷五月天综合色| 色婷婷综合久色AV五色最新| 九九热在线亚洲免费视频| 五月丁香成年黄色| 五月丁香五月综合欧美| 久久偷拍综合五月天| 欧美视频在线观看噜噜| 亚州日本欧州韩美高青高潮一| 丁香婷婷久久 | 狼人狠狠操| 婷婷五月丁香五月天| 色狠狠激情五月| 丁香婷婷黄网站| 视频一区二区在线| 色久99| 丁香五月激情啪啪综合| 月色色综合婷婷网| 五月天天堂久久| 成人在线高清| 婷婷九九| 婷婷97碰碰| 99热99日天天干| 色婷婷丁香五月天| 久久婷婷综合五月天| www.五月天社区| 婷婷月五天在线在线看| 亚洲日韩人妻操逼| 亚洲五月情| 天天婷婷天天| 啪啪六月婷婷| 99热这里只是精品| 5月丁香婷婷激情网| 丁香六月五月天| 色婷婷亚洲六月婷婷中文字幕| 色导航色婷婷五月天在线观看| 色色网五月激情| 日本va欧美va欧美精品88| 色五月亚洲开心网| 午夜成人网站在线观看| 99热综合| 97精品人人A片免费看| 99精品偷自拍| 丁香五月www| 婷婷月综合| 久99视频| 九九视频这里只有精彩| 婷婷五月天BBw| 欧美色爱五月天| 婷婷五月综激情| 丁香五月婷婷久久久| 亚洲另类毛片| 五月激情综合激情五月| 色色色区| 日本特黄aaaaa| 深爱婷婷丁香五月激情| 婷婷久草| 国精产品一区二区三区| 都市激情蜜桃婷婷五月天| 67194成I人在线观看线路1| 夜夜躁狠狠 | 色婷婷丁香五月| 免费在线观看AV网站| 狠狠久久婷婷| 天天操中文字幕| 99热中文字幕久久| 99这里有精品| 天天干天天干天天操| 五月丁香啪| 综合五月婷婷| 一级黄在线| 97在线视频观看| 国产一区二区三区影院| 99视频日韩| 操操综合网婷婷| 九九伦子片| 久久久久久久久久久44| 色婷婷影视| 狠狠色噜噜狠狠| 人妻久热| 九月丁香婷婷| A片试看120分钟做受视频红杏 | 激情开心五月天| 97色色色色色| 久久九九网| 久久婷色| 九九中文色色| 9l视频自拍9l九色成人| 激情五月天噢美| 色五月丁香激情| 丁香五月日本| 婷婷五月丁综合| 婷婷五月激情在线视频| a网站免费观看| 天天色情站| 婷婷五月丁香五月| 停停五月色宗合| 久久99网站| 国产六月婷婷| 丁香六月欧美| 亚洲视频五区| 精品9久| 991国产精选视频在线播放下载| 五月开心婷婷极品激情| 26uuu欧美亚洲日韩| 婷婷六月综合激情| 97久久视频| 婷婷色色综合| 五月婷婷色色| 婷婷婷婷婷婷婷五月丁香| 久久女人天堂| 色天使久久综合| 中文字幕视频在线播放| 久久久久久久合一狠狠做深爱 | 欧美黑人巨大性生话| 九九99九九精品视频| 久99热| 色婷婷五月天小说网| 丁香五月六月综合激情| 色天使久久综合| 色噜噜狠狠色综| 狠狠插日日干撸| 色五月丁香五月| 丁香五月天亚洲综合| 中文字幕,综合,91| 啄木鸟丝袜美女福利视频| 免费黄色视频网址| 1024亚洲| 五月丁香基地| 日本人妻A片成人免费看片| 777精品久无码人妻蜜桃| 小色小蛇伊人婷婷色香五月| 这里只精品热在线18| 丁香六月在线| 成人国产网站| 五月丁香青草综合啪啪| 色婷婷亚洲婷婷| 色99在线视频| 婷婷五月天亚洲五码| 无码少妇高潮喷水A片免费| 激情爱爱网站| 深爱婷婷网| 激情文学综合婷婷五月天丁香花| 色婷婷丁香六月| 99视频九九热| 天天色99| 五月婷婷亚洲综合网| 久久婷婷91| 亚洲超碰在线| WWW五月婷婷| 狠狠五月激情丁香六月| 久热re视频在线观看网站| 美女五月激情| 日韩成人电影AV| 五月婷婷久久综合| 99热啪啪| 精品乱码视频| 日日色综合| 另类专区在线观看| 粉嫩av蜜桃av蜜臀av| www.97干视频| 五月婷婷激情综合| 91好好热日本在线| 婷婷五月天亚洲五码| 欧美成综合在线观看| 国产精品国产VA片国产| 国产精品18久久久| 欧美综合激情五月| 丁香五月天大香蕉啪啪| 色很很96| 亚洲精品字幕在线观看| 五月天久久www| 蜜臀99精品| 1囯产午夜仑鲁鲁| 婷婷五月激情天| 丁香六月激情国产| 99热综合| 色99网| 一级性爱视频| WWW、日本色丁香、co m| 99r久久这里只有精品| 久久 婷婷 五月天| 婷婷丁香色性爱| 五月天久久丁香| 日本不卡一区二区三区| 色婷婷激情小说网| 爱射综合| 操久久精| 玖玖热视频| 99视频久久| 亚洲色五月| 伊人婷婷青青cao| 99精品无码| 国产精品五月丁香| 伊人喵咪a V| 五月婷婷激情综合网 | 亚洲AV电影美洲AV电影| 五月花综合视频| 99操不停| 成人丁香| 色婷婷五月影视| 国产FREESEXVIDEOS性中国| 五月丁香六月激情综合在线| 91视频久久久| 日日夜夜狠狠| 国产,欧美,日韩,性爱| 91夫妻网站九色| 久久五月天综合| 9婷婷内射| 九九热在线精品视频| 91人妻人人做人碰人人爽九色| 五月天com| 九九热视频精品2| 午夜色婷婷| 日韩小视频在线99| 丁香久久激情俄| 日本一级一片免费视频| 久久九九99字幕| 久久久久久久五月| 超碰人人草| 思思热99在线视频| 日韩成人电影AV| 日本人人超碰| 婷婷激情图片| 久热久| 色色色九九九五月婷婷| 日本久久婷| 天天干天天干天天干天天干天天干天天| 影音先锋AV男人站| 久久大香蕉同僚| 婷婷色亚洲| 亚洲狠狠爱婷婷| 欧洲色| 免費亭亭成人| 9有码中文| 牛色色碰| 120分钟婬片免费看| 99热日| 色婷婷69| 亚洲V国产V欧美V久久久久久| 五月丁香激情综合久久| 婷婷色系婷色| 精品激情| 伊人久久综合| 五月婷婷丁香日韩在线| 人妻内射视频| 亚洲小视频| 色一区高清| 精品日本视频444| 欧美综合激情丁香五月六月婷| 丁香五月最新地址| 超碰啪啪网| 久久丁香五月天| 色播播之激情五月婷婷| 91爱啪啪| 免费看无码视频A级| 538在线精品| 超碰女人天堂| 五月丁香六月婷婷啪啪| 五月丁香怕怕综合| 99在线精品观看99| 久操干| 国产精品天天狠天天看| 婷婷综合激情| www.色五月| 婷婷综合网站| 欧美韩日AAA网站| 99ri精品| 亚洲综合无码| 五月激情射| 五月丁香狠狠爱婷婷综合| 五月丁香六月婷| 综合激情视频| 99久久婷婷国产综合精品草原| 丁香五月天色婷婷| 亚洲激情97五月天| 99热欧| 99啪啪视频| 欧美在线ee日韩| 另类在线| 久久538| 99热最新网址| 婷婷丁香熟妇综合网| 综合伊人久久| 激情婷婷五月| 伊人久久五月天| 欧美啪啪9| 99网99热| www.99成人视频| 开心五月深爱五月婷| 99ri精品视频在线观看| 九月婷婷久久久| 五月丁香啪啪综合网| 婷婷五月色惰| 91色综合网| 超碰97久久| 五月天综合久久丁香91| av在线中文| 91九色 熟| 一点色成人网| 色婷婷导航| 99色色色色| 婷婷六月丁| 97色色视频| 涩涩五月天| 亚洲午夜电影| 大香蕉久操| 婷婷五月丁香基地| 99热久久这里只有精品| 97人碰人操| 日韩无码亚欧无码| 97碰人人操| 欧美色99| 色色影院aaaav| 日韩av大全| 久久性爰视频这里只有精品| 综合网视频| 久热视频这里只有精品| 五月天激情无码| 五月婷婷激情日本| 天天操天天曰| 超碰日韩人妻在线| 婷婷激情啪啪| 久久婷婷热| 亚洲综合新99视频| 欧美日韩AAA| www.五月丁香| 91日本在线观看| 五月天色色无码| 久久综合综合综合| 日本九九九九| 婷婷激情五月天亚洲综合| 激情五月,婷婷五月,丁香五月| 开心五月婷婷| 日本色婷婷| 1级欧美日韩| 香蕉网久久| 这里只有精彩小视频视频网站| 手机激情网| 99视频只有精品| 五月婷婷,六月丁香| 色色欧美色色| 伊人狠狠丁香婷婷综合尤物| 色五月 激情婷婷 综合五月天| 久大香蕉| 超碰久热| 婷婷丁香18| 先锋影音av色五月天资源站| 激情综合色播| 五月丁香六月停停停| 五月婷婷六月情| 综合久久五月天| 婷婷色五月激情| 欧美视频五区| EEUSS鲁片一区二区三区| 日韩无码人妻一区二区三区综合| 婷婷9月天| 色9色| 玖玖婷婷色欲| 91久久| 天天成人综合| 啪啪五月综合| www.五月丁香| 五月婷婷网站| 激情婷婷色色| 97人人操人人插| 天天日天天插| 五月视频日本免费观看| 丁香花婷婷五月天| 九九RE视频在线精品| 五月激情基地| 五月婷网| 大香蕉丁香婷婷| 偷拍五月丁香| 热久久99视频| 五月停停色| 欧美在线干| 婷婷天天婷婷天天澡| 午夜丁香| 五月天婷婷丁香人人操91| 婷婷久久大香蕉| 青青草日本亚洲| 97艹| 国产精品VIDEOSSEX久久发布| 99这里只有| 丁香五月天信号| a免费在线| 欧美婷婷综合| 五月天婷婷成人网| 五月丁香六月停停| 五月丁香爱婷婷深深| 丁香五月激情五月| 日本片日本片祼观看网站在线看中文版网页在线看 | 婷婷五月天亚洲精品| 色婷婷亚洲综合av| 国产毛多水多女人A片| 精品99在线观看| 激情丁香五月激情婷婷| 色婷视频| 99热费观看| 中文字幕成人网站| 思思99热| 91婷婷色五月| 思思久久99| 玖玖九九99| 玖玖在线视频| 亚洲 视频 导航 一区| 九九亚洲| 色婷婷AAA| 九九久久五月天综合伊人| 成人精品在线观看| 超碰色综合| 91综合在线观看首页| 91/九色黑人| 高清a片基地| 婷婷色资源| 黄色激情网站在线观看| 色婷婷精品视频在线播放| 99亚洲精品综合在线| 婷婷丁香色五月天| 在线色婷婷| 五月天丁香看婷婷| 91在线资源| 色网五月婷婷| 激情文学综合婷婷五月天丁香花| 中文字幕在线免费观看视频| 婷婷免费视频| 99热这里是精品| 婷色五月天| 色域五月婷婷丁香| 色婷婷888| 182TV大香蕉| 狠狠爱婷婷丁香| 人人爱摸视频| 青青草轻轻操| 另类专区在线观看| 香蕉综合网| 99九九视频精彩在线| 天天爱综合网| 99色婷婷视频| 亚州美女| 97久操| 99大香蕉| 99热视| 狠狠色噜噜狠狠| 五月综合激情网| 五月婷婷综合激情| 亚州在线中文字幕| 超碰99资源站| 蜜臀av无码久久久久久久久| 婷婷五月天成人网站| 免费看欧美成人A片无码| 五月天激情影院| 欧美S码亚洲码精品M码| 色97啪啪| 亚洲无码成人网| 欧美久久婷婷| 91热在线| 五月婷婷亚洲天堂97色婷婷| 中文字幕97超级碰| 日韩激情婷婷五月天| 思思国产99| 香蕉久久国产AV一区二区| 欧美激情综合五月色丁香| 密视AV综合在线| 噜综合| 婷婷射丁香| 亚洲五月天激情| 夜色爱爱亚洲| 成人操呦av| 色五婷婷开心缴| 在线另类| 大香蕉五月天婷婷丁香91| 色五月婷婷视频| 伊人超碰| 丁香亚洲色综合| 天天做天天爱天天爽夜夜揉| 人人摸人人摸| 成人超碰网| 日韩不卡DvD| 99热这里只有精品最新| 五月丁香激情综合网| 六月婷婷AV| www.狠狠操.com| 六月婷婷激情| 五月天激情综合网| 色情播放| 五月天激情影院| 91porn一起草| 久色欧美| 成人美女网| 九九色逼| 五月丁香综合激情网| 亚洲精品第一国产综合亚AV| 五月天色婷伊人| 色综合综合色| 色色五月天婷婷丁香| 五月天伊人手机在线播放AV| 婷婷五月天视| 丁香五月天婷婷中文字幕| 潘金莲AAAAAAAAAA| ...婷婷国产成人亚洲日韩| 综合另类视频| 先锋资源婷婷| 亚洲婷婷免费| 婷婷综合玖玖五月| 天天操夜夜爱| 丁香综合日产精品久久| 色婷婷成人影片| 婷婷在线播放| 亚洲性天天| 夜夜撸天天操| 中文字幕成人| 色色激情五月天| 色婷婷久久久| 91 九色 熟女| 91久久久久久| 色色色免费视频| 一区二区三区视频| 久久久五月天| 91日本在线观看| 亚洲综合草草| 涩综合网| 这里只有精品免费| 婷婷五月天免费小说| 99热在线只有精品| 性爱先锋AV| 久久综合五月天| 26uuu四色| 亚洲欧洲中文日韩久久AV乱码 | 婷婷网五月| 涩丁香| 六月丁香婷婷五月| 日本色色影院| 婷婷五月色综合| 曰曰久久| 97久久久| 国产高清RV综合aVa| 亚洲av另类在线观看| 99热99色| 182TV大香蕉| 久久激情视频| 欧美在线骚货| 久久艹 五月天| 婷婷五月丁香手机在线视频| 玖玖爱导航| 任你日视频| 97色色色色| 爱久久小说下载网| 色婷婷狠狠18| 久久久www| 福利视频在线播放| 五月婷婷免费看| 夜夜爱影院| 看片视频在线免费日产在线看| 激情图片婷婷| 五月丁香六月婷婷综合| 玖玖综合色| 五月激情综合激情五月| 日韩啪啪自拍| 成人婷99最新| 丁香五月激情综合网激情五月| 99精品九九| 婷婷天堂综合| 色婷婷五月网| 久Se视频在线观看| JAPANRCEP老熟妇乱子伦视频 | 色婷婷久久| 五月天激情婷婷小说| 2015超碰| 夫妇交换刺激做爰| 激情小说五月天| 成人羞羞啪啪 全 视频| www.91AV.COM| 99婷婷| 久久丁香五月天| 91精品电影18T| 色五月大香蕉婷婷| 婷婷五月天小说| 婷婷五月激情六月| 婷婷丁香高潮了| 激情婷婷九月| 国产亚洲精品久久久久苍井松| 五月激情影院| 色综合性视频| 五月婷婷三级| 啪啪视频99| 欧美在线干| 殴美日韩成人| 色人妻五月| 天天色综和网| 99ri视频在线播放| 青青久久五月| 色五月激情综合网| 久久伦乱| 婷婷综合五月天亚洲综合| www.激情在线| 久热一本| 丁香六月色| 99婷婷精品推荐在线视频| 五月丁香久久综合| 99热在线只有精品| 狠狠狠狠狠草| 亚洲综合色网站| 91碰在线| 婷婷爱五月| 91综合视频丁香| 激情开心五月天| 成人av免费观看| 精品无吗va视频免费观看| 开心五月婷婷在线视频免费观看| av中文在线| 99碰网站| 99久久97久久欧美综合网| 亚洲日比视频| 黄色国久久| 婷婷99狠狠| 综合激情视频| 色欲久久综合| 色情五月天丁香社区| 五月丁香六月激情欧美综合| 视色综合| 激情五月亚洲| 久久96热| 影音先锋人妻出差| 婷婷天天综合| 欧洲综合视频在线观看。欧洲,亚洲综合食品在线观看。 | 99热都是精品| 日日色综合| 26uuu欧美日本| 91碰视频| 成片免费观看视频大全| 97久久人人| 日韩成人无码人妻| 五月丁香黄色视频| 99爱这里只有精品免费视频| 丁香五月电影| 五月色影院| 激情婷婷五月天| 超碰免费人人| 国产精品久久久久久亚洲毛片| 免费AV播放| 丰满老熟妇BBBBB搡BBB| 免费视频WWW在线观看网站| 亚洲成av人影院| 99视频这里有精品| 亚洲传媒在线观看| 奇米四色五月天| 性爱七区| 人妻激情综合| 亚洲va欧美| 99热这里只有精品21| 丁香五月日本| 久狠日av| 91大屁股精品| 激情综合无码| 婷婷五月天伊人在线| 色狠狠六月| 五月丁香亭亭天天舔| 天堂草在线看www| 五月丁香在线| 人人摸人人搞| 国产国产乱老熟女视频网站97| 丁香花大香蕉婷婷综合| 色色综合热| xxxx久| 5月婷婷综合| 丁香六月天色婷婷| 欧美色色色色色| 狠狠色综合网| 国产伦亲子伦亲子视频观看| 五月婷婷之综合激情在线| 日本色色网站| 久久99这里只有精品| 日日干日日s| 色日本五月天| 日日综合网| 激情四射亚洲| 色色五月天网站| 五月婷高清视频| 天天综合亚洲| 激情五月影院| 免费在线观看av网站| 婷婷射图| 开心日韩丁香婷婷五月| 激情噜噜噜| 五月天成人综合| 久操大屁股女人av| 99噜噜噜在线播放| 激情五月色播五月| 人人爱人人草| 激情婷婷视频在线| 丁香六月天AV| 婷婷狠狠操| 91碰碰碰| 色婷婷国产精品综合在线观看| 996er在线观看| 亚州操人在线视频| 99精品网| 狠狠色色综合| www.五月丁香av| 97操操| 日本在线观看aaa 99| 五月天激情四射| 五月天激情av| 婷婷亚洲天堂| 色情婷婷。| 丁香五月六月激情| 五月天久久婷婷| 狠狠色丁香婷婷| 停停色综合伊人| 九九99免费视频| 婷婷五月综合免费在线| 激情综合综合综合| 97影院一级片| 五月久久| 这里只有精品在线播放| 婷婷色色五月| 婷婷五月天精品| 五月婷在线视频免费播放| 狠狠搞狠狠操| 91人人网| 久青草影院| 国产毛片操B| 日韩成人五月天| 成人丁香五月| 六月丁香婷婷综合狠狠爱夜夜爱| 微拍92| 亚洲综合婷婷五月天| 丁香五月影院| 天天狠狠婷婷在线| www,色婷婷| 婷婷久久女人| 日日爱699| 综合av在线| 五月天堂婷婷| 激情五月天婷婷| 亚洲第一黄网| 射区导航| 色五月大| www.夜夜操.com| 久久精品日| 五月丁六月香| 殴美97色| 色婷婷狠狠干芒果TV| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 欧美精品久| 五月情婷婷| 大香久久综合网| 五月丁香激情欧洲啪啪| 影音先锋91在线资源站| 亚洲狠狠婷婷综合久久久| 色色婷婷五月| 欧美综合激情五月丁香| 欧美日综合| 亚洲色情免费网| 五月天色五月| 色婷婷成人在线| 成人做爰A片免费看网站找不到了 国产露脸150部国语对白 | 狠狠干 狠狠操| 91九九九色在| 怡红院视频| 午夜福利成人AV91| 六月天婷婷| 激情性爱五月| 激情五月婷婷| 五月丁香婷婷在线综合蜜桃| 国产精品18久久久| 爱草视频在线| 国产毛片操B| 婷婷五月情天| 超碰爱爱爱| 色综合久久天天综合网| 九九国产视频| 国产精品国产成人国产三级| 精品综合五月| 婷婷色资源| 亚洲五月停停| 日韩成人无码人妻| 久久五月综合| 五月激情基地| 日本专区久久| 久草婷婷| 中文不卡一二三区| 丁香六月婷婷激情| 久婷五月| 色色自拍视频网站| 婷婷五月欧美综合| 五月丁香六月在线| 五月婷婷基地| 狠狠精品干练久久久无码中文字幕 | 五月丁激情| 九九热99久久99| 深夜男女福利刺激影院一区| 成人婷婷五月天| 激情国产五月| 色五月超碰| 丁香五月第九色| 久久五月天激情婷婷| 午夜激情综合| 3p日韩网站视频| av成人在线播放| 九九热免费视频| 五月天激情社区| 久久九九玖玖| 国产AV熟妇人震精品一品二区| 五月天婷婷在线播放| 亚洲色情久久| 色五月在线综合| 91色色色| 涩涩涩.com| 日韩欧美颜射| 色激情网| 俺去也综合| 思思热AV| 亚洲激情无码久久| 国产婷婷五月| 五月婷婷综合网| www热久久yy9| 色综合久久天天综合网| 97干在线观看视频| 丁香婷婷狠狠97| www.91色| 高清无码视频网址| 狠狠另类视频| 色月九九| #NAME?| 国产肥白大熟妇BBBB视频| 亚洲熟妇无码乱子AV电影| 日本ww亚洲| 99日本黄站| 欧美偷偷操| 亚洲无码99| 99久久99九九九99九他书对| 五月丁香六月婷婷视频| 五月天激情站| 亚洲av网站在线观看| YW无码| 国产在线aaa片一区二区99| 亚洲激情综合网| 日韩五月丁香| 天天爽天天爽夜夜爽| 蜜臀丁香黄色婷婷五月天| 婷婷性爱视频在线| 99热超碰人| 欧美肉大捧一进一出免费视频| 五月婷婷综合久久| www.99成人视频| 激情婷婷丁香五月| 九九综合视频在线观看| 日本久久婷婷| 大香蕉 伊人夜| 久久日本wwww色| 强辱丰满人妻HD中文字幕| 饮料下药迷倒漂亮女同事强干| 日韩 中文 欧美| 99热66| 丁香五月天堂| 五月婷婷六月丁香在线视频| 天天操夜夜玩!| 丁香五月六月婷婷自拍| 天天爽天天爽天天爽天天爽天天爽| 97热这里精品在线视频| 色噜噜五月丁香婷婷| 色色图五月天| 婷婷日本在线| 婷婷香蕉香| 西西4r午夜剧场| 五月婷婷丁香日韩在线| 极品人妻VIDEOSSS人妻| 国产XXXX搡XXXXX搡麻豆| 激情综合亚洲| 狠狠干综合| 人妻丰满精品一区二区A片| 大香蕉九九| 99热伊人| 成人国产欧美大片一区| 国产69久久久欧美黑人A片| 色色色欧美| 五月综合激情| 性做爰A片免费视频A片直播| 国产精品18久久久| 欧美成人一区二区三区在线视频| 无遮挡国产高潮视频免费观看| 日本欧美成人片AAAA | 婷婷欧美| www999日韩精品| 五月婷婷五月天| www.99热这里只有精品| 丁香五月偷拍| 婷婷激情五月| www.91五月| 曰本aaaaaa丈片| 婷婷丁香五月91| 99熟女视频| 99在线精品视频观看免费下载| 亚洲va日| 少妇口诉沐足视频播放器网址| 日撸夜撸日操| 婷婷五月婷婷| 91操人视频| 国产成人精品亚洲线观看| 狠狠爱成人综合网| 中文字幕在线不卡视频| 99超级碰碰| 涩涩涩,com| 一级A片天天操夜夜操| www.minyis.com【JT】实力收量可预付QQ2101460746 | 五月丁香免费看| 色私五月婷婷| 伊人色综合网| 色色网站日本91| 色爽九九| 性 色 婷婷| 丁香六月五月天| 九九色婷婷| A片女女女女女女BBBB| 大香蕉伊然在亚洲90| 久久资源网五月婷| 五月丁香六月婷婷中文版| 天天五月天综合网址| 91碰碰| 激情AV综合| 九九99九九99九九99视频网| 五月天伊人av| 五月婷婷中文字幕| 五月天成人小说| 操逼电影免费看| 九九热啪啪| 六月婷色六月| 综合网啪啪| 桃色成人网| 热99精品视频五月| 婷婷丁香五月天小说| 99热99美国在线观看| 一本大道嫩草AV无码专区| 综合亚洲AV| 久色视频首页| 婷婷五月,偷窥偷拍网| 中文字幕日产A片在线看| 第四色网婷婷| 天堂五月婷婷| 色综合久久88色综合天天99| 国产午夜精品AV一区二区麻豆| 久久激情天堂| 79色色免费| 激情五月婷婷网| 色色综合五月| 26uuu美女三级视频| www.久热| 日本人妻伦在线中文字幕 | 激情五月婷婷伊人| 曰曰久久| 成片免费观看大全| 五月激情综合激情五月| 婷婷综合色图| 五月天偷拍| 婷婷五月精品中文字幕| 69婷婷丁香午夜| 337p大胆噜噜噜噜噜91Av| 婷婷丁香精品视频在线观看| 激情五月婷婷免费视频| 欧美va在线观看| 久久大国产香蕉| 丁香五月婷婷综合视频| 婷婷五月丁香综合激情| 日韩99无码| 色亚洲中文| 99在线观看| 九九精彩久久| 婷婷五月天中文字幕| 国产精品18久久久| 丁香婷婷精品视频| 九九热99视频| 99久精品| 婷婷色五月天在线| SS丁香五月婷婷| 天天爱天天做天天操| 色欲五月婷婷| 丁香六月激情综合| 无码字幕中文| 日韩激情人伦人| 九九精品热| 婷婷欧美偷拍综合| 91丨九色丨大屁股| 久婷久婷| 婷婷狠狠97| 91久久九色| 五月天狠狠网| 超爽内射| 99热这里只有精品免费观看| 久久这里只有精品视频15| 欧美噜一噜| 超碰亚洲欧美| 五月天夜夜爱夜夜操| 日韩艹比| 婷婷夜夜夜夜| 五月丁香婷婷钟和色图| 九九九成人在线视频| 黄色三级毛片中字| 天天干天天干天天干天天干天天干天天 | 开心激情五月天网| 日韩九九视频| 婷婷爱五月| 青青草搞屄视频网站| 五月婷在线| 天天天天天操| 综合色色五月| 国产婷婷五月天| 丁香五月成人自拍| 亚洲美女网Va| 青青草tp| 九九色逼|