亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

e2e端到端測試實(shí)戰(zhàn):從設(shè)計(jì)思路到profile1配置化落地

e2e端到端測試實(shí)戰(zhàn):從設(shè)計(jì)思路到profile1配置化落地 1. 從“e2e”這個(gè)詞說起它到底指什么第一次看到“e2e”這三個(gè)字符很多人會(huì)愣一下。它既不像某個(gè)具體產(chǎn)品的名字也不像某個(gè)技術(shù)框架的縮寫更像是某種圈內(nèi)人才懂的暗號。其實(shí) e2e 是 end-to-end 的縮寫中文一般叫“端到端”。這個(gè)詞在不同圈子里含義差別很大但核心意思是一致的從起點(diǎn)到終點(diǎn)把整條鏈路完整地跑一遍中間不省略、不跳過、不模擬。舉個(gè)生活化的例子。你去餐廳吃飯點(diǎn)了一道宮保雞丁。如果只測試“廚房能不能把雞丁炒熟”那叫單元測試如果測試“服務(wù)員能不能把菜從廚房端到你的桌上”那叫集成測試而 e2e 測試是你走進(jìn)餐廳、看菜單、點(diǎn)單、廚房做菜、服務(wù)員上菜、你吃完買單、走出餐廳——整條鏈路全部走一遍任何一個(gè)環(huán)節(jié)卡住這頓飯就算失敗。這就是端到端的本質(zhì)以最終用戶的視角驗(yàn)證完整流程是否走得通。那為什么“e2e”會(huì)成為一個(gè)熱搜詞因?yàn)檫@兩年軟件交付節(jié)奏越來越快微服務(wù)、前后端分離、多端適配讓系統(tǒng)變得越來越碎。碎到一定程度單元測試全綠、集成測試全過用戶一用還是崩。于是大家重新意識到必須有人站在最外層把整條鏈路串起來跑一遍。e2e 測試、e2e 加密、e2e 流程管理這些概念集中爆發(fā)本質(zhì)上都是同一個(gè)訴求——?jiǎng)e只看局部要看全程。而“e2e profile1”這個(gè)熱詞則把 e2e 推向了更具體的場景。profile 在工程語境里通常指“配置檔案”或“參數(shù)集”profile1 往往意味著某個(gè)默認(rèn)的、第一套的、基礎(chǔ)檔的配置方案。合在一起理解e2e profile1 大概率指向的是在端到端場景下使用第一套標(biāo)準(zhǔn)配置來完成某件事。它可能出現(xiàn)在測試框架的配置文件里可能出現(xiàn)在加密協(xié)議的參數(shù)協(xié)商中也可能出現(xiàn)在某個(gè)自動(dòng)化流水線的預(yù)設(shè)模板中。不管具體落在哪個(gè)領(lǐng)域它的出現(xiàn)都說明一件事e2e 已經(jīng)從“理念”下沉到了“可配置、可復(fù)用、可標(biāo)準(zhǔn)化”的工程實(shí)踐層面。這篇文章面向的讀者很明確如果你正在做自動(dòng)化測試、正在搭 CI/CD 流水線、正在處理跨系統(tǒng)數(shù)據(jù)一致性或者你只是單純被“e2e”這個(gè)詞反復(fù)刷屏想搞明白它到底怎么回事那接下來的內(nèi)容就是為你準(zhǔn)備的。我會(huì)從設(shè)計(jì)思路、核心細(xì)節(jié)、實(shí)操過程、問題排查四個(gè)維度把 e2e 這件事拆開揉碎講清楚并且重點(diǎn)解釋 profile1 這類配置化思路在其中的價(jià)值。文章里會(huì)穿插大量我實(shí)際踩過的坑和總結(jié)出來的技巧你可以直接抄作業(yè)也可以根據(jù)自己項(xiàng)目的情況做調(diào)整。2. e2e 方案的整體設(shè)計(jì)與思路拆解2.1 為什么 e2e 不能等同于“把單元測試串起來”很多人第一次接觸 e2e 時(shí)會(huì)有一個(gè)很自然的誤解既然 e2e 是測整條鏈路那我把所有單元測試按順序跑一遍不就等于 e2e 了嗎這個(gè)想法聽起來合理實(shí)際上完全跑偏。單元測試的視角是“函數(shù)級”的它關(guān)心的是給定輸入 A函數(shù) f 是否返回輸出 B。它不關(guān)心這個(gè)函數(shù)被誰調(diào)用、在什么環(huán)境下調(diào)用、調(diào)用前系統(tǒng)處于什么狀態(tài)。而 e2e 的視角是“用戶級”的它關(guān)心的是一個(gè)真實(shí)用戶從進(jìn)入系統(tǒng)到完成目標(biāo)中間經(jīng)歷的所有環(huán)節(jié)是否協(xié)同工作。這兩者的關(guān)注點(diǎn)根本不在一個(gè)層面上。我舉個(gè)實(shí)際項(xiàng)目中的例子。之前做過一個(gè)電商下單流程單元測試覆蓋了庫存扣減、訂單創(chuàng)建、支付回調(diào)、消息通知四個(gè)模塊每個(gè)模塊單獨(dú)跑都是綠的。但 e2e 一跑就掛原因是什么庫存扣減在事務(wù)提交前發(fā)了消息訂單創(chuàng)建在另一個(gè)事務(wù)里消費(fèi)這條消息結(jié)果消息先到了、訂單還沒落庫消費(fèi)端找不到訂單直接報(bào)錯(cuò)。這個(gè)問題單元測試永遠(yuǎn)發(fā)現(xiàn)不了因?yàn)樗辉凇澳K之間的時(shí)序和事務(wù)邊界”上才會(huì)暴露。e2e 的價(jià)值恰恰就在這里它驗(yàn)證的不是某個(gè)模塊對不對而是模塊之間的協(xié)作在真實(shí)時(shí)序下對不對。所以設(shè)計(jì) e2e 方案時(shí)第一個(gè)要確立的原則就是不要試圖用單元測試的思維去做 e2e。e2e 的用例應(yīng)該從用戶故事出發(fā)而不是從函數(shù)列表出發(fā)。一個(gè)典型的 e2e 用例應(yīng)該長這樣“用戶登錄后搜索商品、加入購物車、提交訂單、完成支付、收到通知”而不是“測試庫存服務(wù)接口返回 200”。2.2 分層設(shè)計(jì)把 e2e 拆成可管理的幾層e2e 最大的痛點(diǎn)是“重”。啟動(dòng)慢、執(zhí)行慢、失敗后定位難。如果所有 e2e 用例都從瀏覽器點(diǎn)擊開始、到數(shù)據(jù)庫校驗(yàn)結(jié)束那維護(hù)成本會(huì)高到讓人想放棄。所以實(shí)際工程中e2e 一定要分層。我通常會(huì)把 e2e 分成三層來設(shè)計(jì)。第一層是API 級 e2e繞過 UI直接通過接口調(diào)用來串聯(lián)完整業(yè)務(wù)流。這一層跑得快、穩(wěn)定性高適合覆蓋大部分核心鏈路。第二層是UI 級 e2e通過瀏覽器或客戶端真實(shí)操作來驗(yàn)證關(guān)鍵用戶路徑。這一層跑得慢但最接近真實(shí)用戶適合覆蓋登錄、下單、支付這類不能出錯(cuò)的黃金路徑。第三層是數(shù)據(jù)級 e2e關(guān)注數(shù)據(jù)從產(chǎn)生到消費(fèi)的完整流轉(zhuǎn)比如一條消息從生產(chǎn)者發(fā)出、經(jīng)過隊(duì)列、被消費(fèi)者處理、最終落庫整條鏈路的數(shù)據(jù)一致性。這三層的比例大概是 7:2:1。API 級占大頭UI 級只覆蓋最關(guān)鍵的幾條路徑數(shù)據(jù)級針對特定場景補(bǔ)充。這樣設(shè)計(jì)的好處是日?;貧w跑 API 級幾分鐘出結(jié)果發(fā)版前跑 UI 級確認(rèn)用戶路徑?jīng)]問題數(shù)據(jù)級按需觸發(fā)不占用常規(guī)流水線時(shí)間。2.3 profile1 這類配置化思路為什么重要現(xiàn)在回到熱詞里的“profile1”。在 e2e 實(shí)踐中profile 的本質(zhì)是把環(huán)境差異和參數(shù)差異從代碼里抽出來變成可切換的配置。為什么這件事重要因?yàn)?e2e 天然要面對多環(huán)境本地開發(fā)環(huán)境、測試環(huán)境、預(yù)發(fā)環(huán)境、生產(chǎn)環(huán)境每個(gè)環(huán)境的地址、賬號、數(shù)據(jù)狀態(tài)都不一樣。如果這些差異硬編碼在用例里那換一個(gè)環(huán)境就要改一堆代碼維護(hù)成本極高。profile1 通常代表“第一套標(biāo)準(zhǔn)配置”它可能包含基礎(chǔ) URL、數(shù)據(jù)庫連接串、測試賬號、超時(shí)時(shí)間、重試次數(shù)、是否開啟截圖、是否清理數(shù)據(jù)等。有了 profile 機(jī)制同一套 e2e 用例可以在不同環(huán)境之間切換只需要換一個(gè) profile 文件。這聽起來簡單但實(shí)際落地時(shí)有很多細(xì)節(jié)要注意。比如超時(shí)時(shí)間這個(gè)參數(shù)。在本地環(huán)境接口響應(yīng)可能 200ms 就回來了超時(shí)設(shè) 5 秒足夠。但在預(yù)發(fā)環(huán)境因?yàn)榫W(wǎng)絡(luò)鏈路更長、依賴服務(wù)更多同樣的接口可能要 2 秒才返回。如果超時(shí)時(shí)間寫死本地能過、預(yù)發(fā)就掛。有了 profile你可以給預(yù)發(fā)環(huán)境單獨(dú)設(shè) 10 秒超時(shí)。再比如測試賬號本地環(huán)境可能用 mock 賬號預(yù)發(fā)環(huán)境必須用真實(shí)測試賬號這些差異都應(yīng)該在 profile 里體現(xiàn)。我見過很多團(tuán)隊(duì)一開始不做 profile等到環(huán)境多起來之后用例里全是 if-else 判斷當(dāng)前是什么環(huán)境代碼亂得沒法看。所以我的建議是e2e 項(xiàng)目啟動(dòng)的第一天就把 profile 機(jī)制建好。哪怕一開始只有一個(gè)環(huán)境也要留出這個(gè)擴(kuò)展點(diǎn)。3. 核心細(xì)節(jié)解析與實(shí)操要點(diǎn)3.1 用例設(shè)計(jì)從用戶故事到可執(zhí)行腳本e2e 用例的設(shè)計(jì)質(zhì)量直接決定整個(gè)項(xiàng)目的成敗。我見過太多團(tuán)隊(duì)把 e2e 寫成“接口調(diào)用大雜燴”一個(gè)用例里調(diào)了十幾個(gè)接口失敗了根本不知道是哪一步的問題。好的 e2e 用例應(yīng)該具備三個(gè)特征目標(biāo)單一、步驟清晰、斷言明確。目標(biāo)單一是指一個(gè)用例只驗(yàn)證一個(gè)用戶目標(biāo)。比如“用戶能成功下單”是一個(gè)目標(biāo)“用戶能成功下單并且能取消訂單”就是兩個(gè)目標(biāo)應(yīng)該拆成兩個(gè)用例。步驟清晰是指每一步都有明確的輸入和預(yù)期輸出而不是把一堆操作堆在一起。斷言明確是指每一步都要有校驗(yàn)不能只在最后校驗(yàn)一次。具體怎么寫我通常用 Given-When-Then 的結(jié)構(gòu)來組織。Given 描述前置條件比如“用戶已登錄且購物車有一件商品”When 描述用戶操作比如“用戶點(diǎn)擊提交訂單并完成支付”Then 描述預(yù)期結(jié)果比如“訂單狀態(tài)變?yōu)橐阎Ц稁齑婵蹨p 1用戶收到通知”。這個(gè)結(jié)構(gòu)的好處是它強(qiáng)迫你把前置條件和預(yù)期結(jié)果想清楚而不是上來就寫操作步驟。在代碼層面我建議把每個(gè)步驟封裝成獨(dú)立的函數(shù)或方法用例本身只負(fù)責(zé)編排。比如login(user)、addToCart(product)、submitOrder()、pay(orderId)、assertOrderStatus(orderId, PAID)。這樣用例讀起來就像自然語言維護(hù)起來也方便——某個(gè)步驟的實(shí)現(xiàn)變了只需要改那個(gè)函數(shù)不用動(dòng)所有用例。3.2 數(shù)據(jù)管理e2e 最容易被忽視的命門如果說用例設(shè)計(jì)是 e2e 的骨架那數(shù)據(jù)管理就是 e2e 的血液。數(shù)據(jù)沒管好e2e 要么跑不起來要么跑出來的結(jié)果不可信。我見過最典型的問題就是用例 A 創(chuàng)建了一條數(shù)據(jù)用例 B 依賴這條數(shù)據(jù)結(jié)果用例 A 先跑、用例 B 后跑沒問題一旦順序反過來就掛。這種用例之間的隱式依賴是 e2e 穩(wěn)定性的頭號殺手。解決這個(gè)問題的核心思路是每個(gè)用例自己準(zhǔn)備數(shù)據(jù)、自己清理數(shù)據(jù)不依賴其他用例的狀態(tài)。具體怎么做有三種常見策略。第一種是API 準(zhǔn)備法通過調(diào)用業(yè)務(wù)接口來創(chuàng)建測試數(shù)據(jù)。比如要測下單先調(diào)創(chuàng)建商品接口、再調(diào)加購物車接口。這種方式的優(yōu)點(diǎn)是數(shù)據(jù)真實(shí)、貼近生產(chǎn)缺點(diǎn)是準(zhǔn)備過程本身可能失敗增加了不確定性。第二種是數(shù)據(jù)庫直插法直接往數(shù)據(jù)庫里寫數(shù)據(jù)。優(yōu)點(diǎn)是快、可控缺點(diǎn)是繞過了業(yè)務(wù)邏輯可能造出業(yè)務(wù)上不合法的數(shù)據(jù)。第三種是快照恢復(fù)法在用例開始前把數(shù)據(jù)庫恢復(fù)到某個(gè)基準(zhǔn)快照。優(yōu)點(diǎn)是干凈徹底缺點(diǎn)是需要數(shù)據(jù)庫支持快照且恢復(fù)過程可能較慢。我的實(shí)踐經(jīng)驗(yàn)是核心鏈路用 API 準(zhǔn)備法邊緣場景用數(shù)據(jù)庫直插法整體環(huán)境用快照恢復(fù)法做兜底。比如下單支付這條黃金路徑一定要用 API 準(zhǔn)備數(shù)據(jù)因?yàn)檫@條路徑本身就是要驗(yàn)證的而像“查詢歷史訂單”這種只讀場景可以直接插數(shù)據(jù)快且穩(wěn)。還有一個(gè)細(xì)節(jié)容易被忽視測試數(shù)據(jù)的唯一性。如果多個(gè)用例并行跑都創(chuàng)建同一個(gè)用戶名的數(shù)據(jù)就會(huì)沖突。解決辦法是在數(shù)據(jù)里加唯一后綴比如時(shí)間戳或隨機(jī)字符串。我通常會(huì)在 profile 里配一個(gè)dataPrefix每個(gè)環(huán)境用不同的前綴這樣即使多個(gè)環(huán)境共用一個(gè)數(shù)據(jù)庫也不會(huì)互相干擾。3.3 等待與重試異步系統(tǒng)的必修課現(xiàn)代系統(tǒng)大量使用異步消息隊(duì)列、事件驅(qū)動(dòng)、最終一致性這些機(jī)制讓 e2e 變得極其棘手。你調(diào)完支付接口訂單狀態(tài)不會(huì)立刻變成已支付可能要等幾百毫秒甚至幾秒。如果你調(diào)完接口立刻斷言必然失敗。新手最常見的做法是sleep(5)睡 5 秒再斷言。這個(gè)做法的問題在于睡少了不夠睡多了浪費(fèi)時(shí)間而且不穩(wěn)定。正確的做法是輪詢等待每隔 200ms 查一次狀態(tài)直到狀態(tài)符合預(yù)期或超時(shí)。這樣既快又穩(wěn)。輪詢等待的實(shí)現(xiàn)要點(diǎn)有三個(gè)。第一是超時(shí)時(shí)間要合理太短容易誤判太長拖慢整體執(zhí)行。我一般設(shè) 10 到 30 秒具體看業(yè)務(wù)。第二是輪詢間隔要適中太密會(huì)給系統(tǒng)壓力太疏會(huì)浪費(fèi)時(shí)間。200ms 到 500ms 是比較好的區(qū)間。第三是失敗時(shí)要給出有用信息不能只說“超時(shí)了”要說明“等待訂單狀態(tài)變?yōu)?PAID當(dāng)前狀態(tài)是 PENDING已等待 15 秒”。這樣排查問題時(shí)能省很多時(shí)間。重試機(jī)制則是另一個(gè)維度。有些失敗是偶發(fā)的比如網(wǎng)絡(luò)抖動(dòng)、服務(wù)瞬時(shí)不可用重試一次就好了。但重試不能濫用否則會(huì)把真正的 bug 掩蓋掉。我的原則是只對明確的瞬時(shí)故障重試且重試次數(shù)不超過 2 次。比如 HTTP 502、連接超時(shí)這類可以重試斷言失敗、業(yè)務(wù)邏輯錯(cuò)誤這類不能重試必須暴露出來。3.4 環(huán)境隔離與 profile 配置實(shí)戰(zhàn)前面提到 profile 的重要性這里展開講一下具體怎么配。一個(gè)典型的 e2e profile 文件通常包含以下幾類配置配置項(xiàng)說明示例baseUrl被測系統(tǒng)的基礎(chǔ)地址https://test.example.comdbUrl數(shù)據(jù)庫連接串jdbc:mysql://test-db:3306/appaccount測試賬號e2e_user_01password測試密碼從環(huán)境變量讀取timeout默認(rèn)超時(shí)時(shí)間毫秒10000retryCount重試次數(shù)2dataPrefix測試數(shù)據(jù)前綴e2e_test_screenshot失敗時(shí)是否截圖trueprofile1 作為第一套標(biāo)準(zhǔn)配置通常對應(yīng)測試環(huán)境。它的特點(diǎn)是數(shù)據(jù)可以隨意造、服務(wù)可以隨意重啟、失敗可以隨意重試。而生產(chǎn)環(huán)境的 profile 則要保守得多只讀為主、不造數(shù)據(jù)、不重試、失敗立即告警。配置的加載方式也有講究。我推薦用環(huán)境變量加配置文件的組合敏感信息如密碼、密鑰走環(huán)境變量不落盤非敏感信息走配置文件方便版本管理。加載順序是先讀默認(rèn)配置再用 profile 文件覆蓋最后用環(huán)境變量覆蓋。這樣既靈活又安全。還有一個(gè)坑要提醒profile 文件不要提交敏感信息到代碼倉庫。我見過有團(tuán)隊(duì)把生產(chǎn)數(shù)據(jù)庫密碼寫在 profile 里提交了這是嚴(yán)重的安全隱患。正確的做法是配置文件里只寫占位符真實(shí)值通過 CI/CD 的密鑰管理功能注入。4. 實(shí)操過程與核心環(huán)節(jié)實(shí)現(xiàn)4.1 從零搭建一個(gè) e2e 測試項(xiàng)目假設(shè)你現(xiàn)在要為一個(gè) Web 應(yīng)用搭建 e2e 測試我會(huì)按下面的步驟來操作。這套流程我在多個(gè)項(xiàng)目中復(fù)用基本可以直接抄。第一步是選型。如果是 Web 應(yīng)用Playwright 和 Cypress 是兩個(gè)主流選擇。Playwright 的優(yōu)勢是支持多瀏覽器、多語言、并行執(zhí)行好Cypress 的優(yōu)勢是開發(fā)體驗(yàn)好、調(diào)試方便。如果是 API 級 e2e直接用 RestAssured、Supertest 或 HttpClient 就夠了不必上重型框架。我的建議是UI 級用 PlaywrightAPI 級用輕量庫不要為了統(tǒng)一而強(qiáng)行用一個(gè)框架做所有事。第二步是建目錄結(jié)構(gòu)。我通常這樣組織e2e/ profiles/ profile1.yaml profile2.yaml cases/ order/ payment/ steps/ login.ts cart.ts utils/ wait.ts data.ts reports/profiles 放配置cases 放用例steps 放步驟封裝utils 放工具函數(shù)reports 放測試報(bào)告。這個(gè)結(jié)構(gòu)清晰、易擴(kuò)展新人接手也能快速找到東西。第三步是寫第一個(gè)用例。不要一上來就寫復(fù)雜的先寫一個(gè)最簡單的“登錄成功”用例把整條鏈路跑通。這個(gè)用例的作用是驗(yàn)證框架、配置、報(bào)告、斷言都工作正常。等這個(gè)用例綠了再逐步加復(fù)雜度。第四步是接入 CI。e2e 如果不接入 CI基本等于白做。接入 CI 的要點(diǎn)是每次代碼合并前跑 API 級 e2e每天定時(shí)跑 UI 級 e2e發(fā)版前跑全量。CI 里要配好 profile通常用環(huán)境變量注入敏感信息。4.2 一個(gè)完整的下單 e2e 用例拆解下面用一個(gè)真實(shí)的下單用例來演示完整實(shí)現(xiàn)。這個(gè)用例的目標(biāo)是用戶登錄后把商品加入購物車提交訂單并完成支付最終訂單狀態(tài)為已支付。首先是前置準(zhǔn)備。通過 API 創(chuàng)建一個(gè)測試商品庫存設(shè)為 10價(jià)格設(shè)為 100。這里用 API 而不是直接插庫是為了確保商品數(shù)據(jù)符合業(yè)務(wù)規(guī)則。創(chuàng)建完成后拿到 productId。然后是登錄步驟。調(diào)用登錄接口拿到 token后續(xù)請求都帶上這個(gè) token。這里要注意token 可能有有效期如果用例執(zhí)行時(shí)間較長要在步驟里處理 token 刷新。接著是加購物車。調(diào)用加購接口傳入 productId 和數(shù)量 1。斷言返回成功并且購物車?yán)锏纳唐窋?shù)量為 1。然后是提交訂單。調(diào)用下單接口傳入購物車 ID。斷言返回訂單號并且訂單狀態(tài)為待支付。這里要注意下單可能會(huì)鎖庫存如果后續(xù)支付失敗要確保庫存能釋放否則會(huì)影響其他用例。接著是支付。調(diào)用支付接口傳入訂單號和支付金額。支付通常是異步的所以這里要用輪詢等待訂單狀態(tài)變?yōu)橐阎Ц丁]喸兊某瑫r(shí)時(shí)間設(shè)為 15 秒間隔 300ms。最后是斷言。查訂單詳情斷言狀態(tài)為已支付查庫存斷言從 10 變成 9查消息通知斷言用戶收到支付成功通知。這三個(gè)斷言分別驗(yàn)證了訂單、庫存、通知三個(gè)維度的正確性。整個(gè)用例跑下來大概 3 到 5 秒。如果失敗報(bào)告里會(huì)顯示是哪一步失敗、當(dāng)時(shí)的頁面截圖或接口響應(yīng)、以及等待了多久。這些信息對排查問題至關(guān)重要。4.3 參數(shù)計(jì)算與選擇超時(shí)和重試到底設(shè)多少超時(shí)和重試這兩個(gè)參數(shù)設(shè)大了浪費(fèi)時(shí)間設(shè)小了誤報(bào)頻繁。怎么定我的方法是基于歷史數(shù)據(jù)加安全邊際。先收集一段時(shí)間內(nèi)該接口的響應(yīng)時(shí)間分布算出 P95 和 P99。比如某接口 P95 是 800msP99 是 2 秒。那超時(shí)時(shí)間就設(shè)為 P99 的 3 到 5 倍也就是 6 到 10 秒。這樣既能覆蓋絕大多數(shù)正常情況又不會(huì)等太久。重試次數(shù)則要看失敗的性質(zhì)。如果是網(wǎng)絡(luò)類失敗重試 1 到 2 次通常能解決。如果是業(yè)務(wù)類失敗重試多少次都沒用反而掩蓋問題。所以我的配置是網(wǎng)絡(luò)超時(shí)重試 2 次斷言失敗不重試服務(wù) 5xx 重試 1 次。還有一個(gè)細(xì)節(jié)重試要有退避。第一次失敗后等 1 秒再重試第二次失敗后等 2 秒而不是立刻重試。因?yàn)樗矔r(shí)故障往往需要一點(diǎn)時(shí)間恢復(fù)立刻重試大概率還是失敗。4.4 報(bào)告與可觀測性失敗時(shí)能快速定位e2e 失敗不可怕可怕的是失敗了不知道哪里出了問題。所以報(bào)告和可觀測性必須做好。我的報(bào)告里通常包含這些信息用例名稱、執(zhí)行時(shí)間、耗時(shí)、每一步的狀態(tài)、失敗步驟的詳細(xì)日志、接口請求和響應(yīng)、頁面截圖UI 級、數(shù)據(jù)庫快照數(shù)據(jù)級。Playwright 自帶的 trace 功能非常好用它能把整個(gè)執(zhí)行過程錄下來包括每一步的 DOM 快照、網(wǎng)絡(luò)請求、控制臺日志。失敗時(shí)打開 trace 文件就像看錄像回放一樣能快速定位問題。我強(qiáng)烈建議開啟這個(gè)功能雖然會(huì)占用一些磁盤空間但排查問題時(shí)省下的時(shí)間遠(yuǎn)超這點(diǎn)成本。除了單次執(zhí)行的報(bào)告還要有趨勢分析。比如某個(gè)用例最近 7 天的失敗率、平均耗時(shí)變化。如果某個(gè)用例突然開始頻繁失敗或者耗時(shí)逐漸增加都是系統(tǒng)出現(xiàn)問題的信號。這些趨勢數(shù)據(jù)可以接入監(jiān)控面板讓團(tuán)隊(duì)隨時(shí)看到 e2e 的健康狀況。5. 常見問題與排查技巧實(shí)錄5.1 e2e 用例不穩(wěn)定時(shí)好時(shí)壞怎么辦這是 e2e 最經(jīng)典的問題業(yè)內(nèi)叫“flaky test”。表現(xiàn)是用例有時(shí)候過、有時(shí)候掛重跑一次又過了。這種問題最消耗團(tuán)隊(duì)信心因?yàn)榇蠹視?huì)逐漸不信任 e2e 結(jié)果。排查 flaky 問題的第一步是收集數(shù)據(jù)。不要憑感覺說“這個(gè)用例不穩(wěn)定”要統(tǒng)計(jì)最近 20 次執(zhí)行中失敗了幾次、失敗的是哪一步、失敗時(shí)的錯(cuò)誤信息是什么。有了數(shù)據(jù)才能定位。常見的 flaky 原因有這幾類。第一類是等待不足異步操作還沒完成就斷言了。解決辦法是把固定 sleep 改成輪詢等待。第二類是數(shù)據(jù)沖突多個(gè)用例用了相同的數(shù)據(jù)。解決辦法是加唯一前綴。第三類是環(huán)境不穩(wěn)定比如測試環(huán)境的服務(wù)本身在重啟。這種要推動(dòng)運(yùn)維解決e2e 層面只能加重試兜底。第四類是用例順序依賴用例 A 依賴用例 B 先跑。解決辦法是讓每個(gè)用例自給自足。我的經(jīng)驗(yàn)是flaky 用例必須當(dāng)天修不能拖。一旦拖久了大家就會(huì)習(xí)慣性忽略失敗e2e 就失去意義了。如果實(shí)在修不了就先把它從常規(guī)流水線里摘出來單獨(dú)跑避免影響整體信號。5.2 測試數(shù)據(jù)被污染用例互相影響數(shù)據(jù)污染是另一個(gè)高頻問題。表現(xiàn)是用例單獨(dú)跑能過一起跑就掛。原因通常是用例之間共享了數(shù)據(jù)或者前一個(gè)用例的殘留數(shù)據(jù)影響了后一個(gè)用例。解決思路前面提過每個(gè)用例自己準(zhǔn)備、自己清理。但實(shí)際落地時(shí)有兩個(gè)難點(diǎn)。一是清理不徹底比如用例創(chuàng)建了訂單但訂單關(guān)聯(lián)的消息、日志、緩存沒清理。二是清理失敗比如用例中途掛了清理代碼沒執(zhí)行到。針對第一個(gè)難點(diǎn)我的做法是按數(shù)據(jù)前綴批量清理。每個(gè)用例的數(shù)據(jù)都帶統(tǒng)一前綴用例結(jié)束后按前綴刪除所有相關(guān)數(shù)據(jù)不管是訂單、消息還是緩存。針對第二個(gè)難點(diǎn)我的做法是在用例開始前也做一次清理確保環(huán)境干凈。這樣即使上次清理失敗這次開始前也會(huì)補(bǔ)上。還有一個(gè)技巧用獨(dú)立的測試數(shù)據(jù)庫或 schema。如果條件允許給 e2e 單獨(dú)一個(gè)數(shù)據(jù)庫和生產(chǎn)、開發(fā)完全隔離。這樣即使數(shù)據(jù)亂了也不會(huì)影響其他人。清理的時(shí)候也可以更粗暴直接 truncate 表不用小心翼翼地按條件刪。5.3 執(zhí)行太慢CI 流水線等不起e2e 慢是天然屬性但慢到影響交付就不行了。優(yōu)化執(zhí)行速度有幾個(gè)方向。第一個(gè)方向是并行。把用例分成多個(gè)組同時(shí)跑。Playwright 和大多數(shù)測試框架都支持并行。并行的關(guān)鍵是用例之間不能有數(shù)據(jù)沖突所以前面說的數(shù)據(jù)隔離要做好。并行度不是越高越好要看測試環(huán)境的承載能力一般設(shè) 4 到 8 個(gè) worker 比較合適。第二個(gè)方向是分層執(zhí)行。前面提過的 API 級、UI 級、數(shù)據(jù)級分層日常只跑 API 級UI 級定時(shí)跑。這樣日常流水線幾分鐘就能出結(jié)果。第三個(gè)方向是復(fù)用登錄態(tài)。登錄往往是 e2e 里最耗時(shí)的步驟之一如果每個(gè)用例都重新登錄累積起來很可觀。解決辦法是登錄一次把 token 或 cookie 存下來后續(xù)用例復(fù)用。Playwright 的 storageState 功能就是干這個(gè)的。第四個(gè)方向是精簡用例。定期 review 用例刪掉重復(fù)的、過時(shí)的、價(jià)值低的。e2e 用例不是越多越好覆蓋核心路徑就夠了邊緣場景交給單元測試和集成測試。5.4 常見問題速查表問題現(xiàn)象可能原因排查方向解決辦法用例時(shí)好時(shí)壞等待不足、數(shù)據(jù)沖突、環(huán)境不穩(wěn)看失敗步驟和錯(cuò)誤信息輪詢等待、數(shù)據(jù)隔離、加重試單獨(dú)跑能過一起跑掛用例間數(shù)據(jù)依賴檢查數(shù)據(jù)是否共享每用例自備數(shù)據(jù)、加前綴斷言失敗但頁面正常斷言時(shí)機(jī)太早看斷言前的等待加輪詢等待接口 401token 過期或未傳檢查請求頭復(fù)用登錄態(tài)、刷新 token執(zhí)行越來越慢數(shù)據(jù)累積、環(huán)境退化看歷史耗時(shí)趨勢定期清理數(shù)據(jù)、重啟環(huán)境CI 上掛但本地能過環(huán)境差異對比 profile 配置統(tǒng)一配置、用環(huán)境變量5.5 幾個(gè)我踩過的坑和獨(dú)家技巧第一個(gè)坑不要用生產(chǎn)數(shù)據(jù)做 e2e。我見過有團(tuán)隊(duì)圖省事直接連生產(chǎn)庫跑 e2e結(jié)果造了一堆臟數(shù)據(jù)清理了半天。e2e 必須用獨(dú)立環(huán)境這是底線。第二個(gè)坑不要在用例里寫死等待時(shí)間。sleep(5)這種寫法遲早會(huì)出問題。要么用輪詢等待要么用框架提供的等待機(jī)制。第三個(gè)坑不要忽略清理步驟的失敗。清理失敗如果不報(bào)警數(shù)據(jù)會(huì)越積越多最終拖垮環(huán)境。清理步驟也要有斷言和告警。第一個(gè)技巧給用例打標(biāo)簽。比如smoke、regression、slow。CI 里按標(biāo)簽選擇執(zhí)行日常跑 smoke發(fā)版跑全量。這樣靈活又高效。第二個(gè)技巧失敗時(shí)自動(dòng)錄屏。Playwright 支持失敗時(shí)自動(dòng)錄視頻排查 UI 問題時(shí)非常有用。雖然占空間但值得。第三個(gè)技巧定期 review e2e 報(bào)告。不要只看通過率要看耗時(shí)趨勢、失敗分布。這些數(shù)據(jù)能幫你發(fā)現(xiàn)潛在問題比如某個(gè)接口越來越慢、某個(gè)用例越來越不穩(wěn)定。6. 關(guān)于 e2e 和 profile 的一些個(gè)人體會(huì)做 e2e 這些年我最大的體會(huì)是e2e 的價(jià)值不在于發(fā)現(xiàn)多少 bug而在于給團(tuán)隊(duì)信心。單元測試給的是“代碼邏輯沒問題”的信心e2e 給的是“用戶能用”的信心。這兩種信心缺一不可但后者往往更稀缺。profile 這類配置化思路表面上是技術(shù)細(xì)節(jié)實(shí)際上是工程成熟度的體現(xiàn)。一個(gè)團(tuán)隊(duì)如果能把 e2e 的配置管理得井井有條說明他們對環(huán)境、對流程、對協(xié)作都有清晰的認(rèn)知。反過來如果 e2e 配置一團(tuán)亂麻那大概率其他工程實(shí)踐也好不到哪去。最后分享一個(gè)小技巧把 e2e 當(dāng)成產(chǎn)品來做而不是當(dāng)成任務(wù)來完成。給它好的目錄結(jié)構(gòu)、清晰的文檔、穩(wěn)定的環(huán)境、及時(shí)的維護(hù)。你對它投入多少它就回報(bào)你多少。那些把 e2e 做成“擺設(shè)”的團(tuán)隊(duì)往往不是 e2e 沒用而是沒把它當(dāng)回事。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产精品爆乳懂色蜜乳| 欧美熟妇人体| 自拍偷拍第26| 另类欧美色| 四季AV综合网址| 大香蕉黄色一区| 热无码中文亚洲H一道本一区二区| 大香蕉宅男伊人| 久久性视频| 国产强奸91| JuliaAnnXXX888| 成人久久精品| 午夜久久一区二区无码中出| 97色碰| 大香蕉乱级| 青青草好吊色| 日日躁狠狠躁天天躁精品| 日日夜夜骚| 五月婷婷激情| 亚洲超碰在线| 色五月综合网| 天天色播亚洲综合网站| 乱伦图一区| 色黄污美女啪啪啪免费网站| 欧美老妇曰批的视频| 人妻少妇久久中文字幕一区二区 麻豆| 熟女久久| 日韩精品-原创伙伴| 一摸二插三插| 日韩精品人妻中文字幕不卡乱码| 日日玩天天干| 天天欧美| 国产精品久久久吖| 日韩欧美福利视频看看| 免费αV在线视频| 国产男女边吃边摸视频网站| 激情 欧美 亚洲 小说| 日韩av在线精品观看| 欧美少妇色图| 三级日韩一区二区三区| 激情 欧美 亚洲 小说| 亚洲欧美人妻| 亚洲性爱成人| 亚洲强奸乱伦影视网| 欧美性生活免费网| 欧美一区二区三区入口| www国产天美久久久| 日本在线视频导航| 防屏蔽在线视频| 国产av尤物| 天天摸,夜夜摸| 欧美九九爱| 天天综合,91综合永久| 久久9精品视频| 久久久影院| 免费农村成人少妇人妻Aa一区二区视频 | 国产精品久久久久久照片| 日本乱人伦片中文三区| 另类小说综合网| 国产精品欧美日韩久久| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 囯产精品强| chaopen97久久| 精品二区三四区五电影 | 97超碰护士| 国产无码精品成人| 国产精品久久久三级无码| 亚洲福利中文字幕在线| 亚洲欧美日韩电影网站一区| 99热销国产这里有精品| 性久久久| 大香蕉520| 久久久久一本一区二区青青蜜月| 夜夜爽夜夜摸夜夜操免费视频| 少妇精品久久久八区九区| 韩国三级色呦呦| 超碰色男人操熟女| 亚洲无码99| 歐美一級亂黃99在綫精品| 老熟妇一区二区三区啪啪| 日日骚av| 日韩综合成人免费视频| 香蕉综合网| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV| 欧美人妻制服| 日人妻视频91| 亚洲天堂人人妻| 亚洲综合在线第一页| 美国精品国产精品| 精品射1999| 亚洲AV色图一区| 亚洲第一页第二页激情| 男人天堂婷婷五月天校园春色| 丝袜性亚洲| 国产欧美另类久久久精品课程| 黄色片A级一区二区三区| 超碰成人国产| 韩国国产欧美情侣视频在线| 亚洲欧美日韩制服另类| 日韩av女优在线免费一区| 精人妻无码一区二区三区伊人直播| 精品99999| 99热这里是精品| 青草伊人网| 岛国黄色短视频| 2011国产精品| 啊啊啊啊好多水| 亚洲第一无码播放立川理惠| 久久久久78| a片久久久久久久久久久久| www色色色com| 欧美性色网| 久久久久婷婷| 老熟女阿 国产91| 国产精品麻豆视频网站| 天天天堂影视日韩亚洲91| 国产辣妈在线视频福利| 熟女天天干| 最新av中文字幕高清| 美女尤物福利视频| 97精| 久热伊人99re| 三级日本一区二区三区| 97超碰资源网| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 任你爽视频| 麻豆天美在线| 欧美日韩天堂| 五月婷婷激情网| 欧美草草高清日韩视频| 欧亚乱色熟一区二区三四区| 久久av一级av少妇av高潮| 亚洲揄拍网| 色网在线视频观看免费| 日本欧美不卡| 青青草精品| 日韩熟女乱伦中出| 午夜精品久久久99热蜜桃的功能特点| 亚洲激情在线| 欧美色图综合| 97资源免费视频| 福利视频一区二区微拍| 啊啊啊好大好深| 99热这里只有精| 国产精品高潮久久久无码| 综合久草| 浪人综合网| 综合久久2017| 中文字幕88av在线| 全球成人中文在线| 蜜乳视频网站| 欧美女同在线| yazhousetuoumei| 国产乱人伦AVA麻豆软件.| 欧美肥臀在线| 91成人在线| 国产理论视频在线播放| 2017天天拍大香蕉| 亚av顶级裸体一区二区三区四区五区 | 9九九九九视频在线观看| 国产极品精品美女视频| 偷拍视频青青草在线视频| a男人的天堂| 99日韩| 欧美日韩另类在线| 亚洲男人天堂网| 四虎在线观看网站| 熟妇熟女一区二三区| 99久久婷婷丁香| 久久69| 婷婷五月天色网| 九九久久久九九| 色色五月婷婷| 亚洲色图91欧美日韩| 一级黄色性爱A级片| 色爱亚洲| 女同性恋中文字幕| 国产白丝在线| 厕所偷拍在线| 97超碰碰碰| 日韩性爱电影一区| 欧美成人性爱视频免费观看| 亚洲无码精品AV久久久| 草莓精品视频在线免费观看| 又粗又长又大国产不卡| 久久久555| 97 九色| 久久综合日韩亚洲欧美| 丝袜美腿诱惑亚洲欧美视频在线观看| 狠狠操综合| 少妇人妻好深太紧了vr91| 欧美视频一| 国产精品视频在线观看| 亚洲成人在线资源| 久久久无码精品人妻二区| 91丝袜激情在线| 欧美欲色| 欧美色66| 91在线色| 伊人久久亚洲色欲综合网站| 九九九九九九九| 精品一区二区麻豆| 人妻超碰青青草98| 日日干夜夜欢| 一区二区三区四区五区久久久久久| 久久精品72| 久久国产视频专区一二三| 欧美日不卡| 玖玖综合.com| 高清不卡一二三区视频......| 99综合网| 欧美淫穴| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 色婷婷99| 日日干日日操五月天伦理视频| 91婷婷伊人狠人| 久久精品国产精品亚洲艾通辽熟妇| 国产又爽又黄| 成人影 天天操 亚洲| 日韩中文字幕熟妇人妻| 久久超碰97中文字幕| 国产丰满少妇久久久精品影院| 欧美精品第四五页中文字幕在线观看| 超碰在线97国产| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 一区二区三区 丝袜 高跟 美腿| 99re视频在线观看这里只有精品| 性站| 超碰人妻中文在线| 床戏久久久av一区二区麻豆| 欧美中文字幕精品人妻| 乱伦日本中文自拍| 亚洲蜜桃V妇女| 亚洲成人免费电影| 日韩少妇丰满亚洲| 国产精品色| 91在线欧美| 精品高清一区二区三区三州| 欧美很很操视频| 在线观看AV不卡| 大香蕉男人的天堂| 久肏视频字幕| 日韩中文字幕视频| 97人人射| 蜜桃狠狠色伊人亚洲综合| 超碰人人干天天射| 天天日天天搞天天干| 久久久精品成人国产| 久久香蕉国产传媒一区剧情天美| 色男人色天堂东京热| 久久久久国色αv免费观看| 国产亚洲色停停久久99精品91| 国产精品久久久久久久毛片1| 久99热| 91欧美另类| 蜜臀久久99精品久久久久久-DVD原版全| 91午夜无码| 91neishe| 日比av无码| 国产精品极品美女视频| 熟妇视频一区二区三区在线观看| 尤物AV免费网站| 成人影院永久免费观看网址| 欧洲中文字幕| 亚洲久久久| 国产精品免费美女视频| 亚洲天堂人人妻| 国产深夜福利| 99视频内射三四| 五月天加勒比啪| 亚洲高清视频在线免费观看| AV 少妇 人妻 偷拍| 国产地址二三| 欧美日韩国产高清在线一二三区 | 97在线资源| 99久久久无码国产精品性啊聊| 日本午夜精品理论片A级APP发布| 久久久111| 东北女人操逼| 色欧美天天| 熟女熟妇一区二区三区视频| 18禁的网站在线| 福利一级版子| 午夜激情成人在线观看| 蜜奶av| 秋霞怕怕片| 另类图片五月| 精品国产乱码久久| 蜜桃成人1区2区3区| 九九九网站| 先锋精品av色鲁| 97国产|免费| 99久久九九| 偷拍盗拍亚洲色图图片| 亚州精品丝袜-不卡成人免费| 国产精品点击进入在线影院高清| 久久久9品一区二区三区| 少妇无码999| 中文字暮97| 欧美精品三级黄片| www.99热在线只有精品| 国产超碰人人爽人人做| 情色大香蕉| 久久久九九网站| 无码91| 免费公开人人操| 日韩精品区二区三区不卡| 吊色| 性色av婷婷久久一区二区点复制| 人妻少妇无码 | 亚av顶级裸体一区二区三区四区五区 | 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 国产精品69久久久久孕妇欧美| www.99中文字幕| 亚洲色图 综合| 国产精品久久成人免费| 97超碰超| 精品亚洲俞拍视频一区| 亚洲免费成人精品电影| 色97欧美| 素颜老阿姨乱情色| 啊啊啊啊嗯嗯嗯用力好爽 | 好湿好紧视频| 热久久91婷婷| 大香蕉一区二区在线观看.| 使劲用力艹少妇视频一区二区| 精品人妻中文字幕4399| 亚洲,欧美,综合网| 亚洲中文制服诱惑| 熟女人妻一区二区三区| 97在线视频免费观看| 大香蕉十区| 国产亚洲精品农村妇女| 亚洲熟女人妻中文字幕一区二区| 英伦大奶子熟妇吊带| 精品中文字幕一区二区| 国产色产精品在线观看| 国产精品视频在线播放| 日韩三级久久久| 18禁免费视频| 91香蕉国产尤物视频| 亚洲精品国产av天美传媒| 色综合网1| 美国日韩黄片| 97这里有精品| 暴力av在线| 蜜臀AV成人精品蜜臀| 夜夜操狠狠操| 91天堂色男人的天堂| 97天天综合| 亚洲男人天堂视频| 久久久久久久国产| 国产精品一二三区福利| 亚洲 欧美 手机在线观看| 麻豆久久一区二区三区| 91丰满| 公司1区2区3区精产精| 99999精品成人| 亚洲综合另类| 亚洲成av人片色午夜乱码| 99久国产精品午夜性色福利| 国产毛片片精品天天看视频| 另类小说欧美激情校园春色| 啊啊啊水好多| 国产精品丝袜在线| 91精品丝袜久久久久久| 超碰97.com| 日韩精品人妻中文字有码在线| 一区二区久久天天干狠狠| 欧美综合区| 日本天天操| 日韩操p| 一中国女人毛片水真多| 亚洲图片激情小说| 五十路熟女人妻一区二区在线观看| 九九九九一区| 91天美免费| 午夜精品久久久久久久| 美女天天干| rivers-china.com| 五月天精品| 激情文学小说一区二区| 超碰97人人乐| 国产自偷| 一卡二卡在线播放| 揉揉揉夜夜| 欧美丝袜亚洲| 亚洲欧美骚| 蜜臀久久99精品久久久久| 2019天天干| 七月婷婷综合| 自拍偷拍国产欧美日韩韩| 亚洲av成人精品一区| 午夜精品久久一区二区| 国产av激情无码久久天堂| 日韩无码精品综合久久| 成人5码视频| 爱媛媛久久国产福利| 精品久久久亚洲AV成人网站| 丁香六月综合激情| 男人天堂婷婷五月天校园春色| 99亚亚热| 大香蕉综合久久| 色综合超碰超| 精品无码久久| 午夜性刺激视频免费观看| 亚洲国产成人7777| 久久精品国产亚洲AV无码电影| ?亚洲伊人伊成久久人综合网| 亚洲黄网在哪免费看| a网站免费观看| 中文字幕精品人妻丝袜| 色综合20p| 久久老熟女| 日本国产亚洲一区在线观看| 国产福利小视频高清在线观看| 六月激情婷婷| 久久一区,青青青青草视频在线播放| 亚洲男人的天堂AV| 亚洲色图日韩丝袜制服一区二区五月在线| TS人妖另类精品视频系列| 国内偷自视频区视频综合| 国产又大又硬又长又粗| 色91综合网| 俺也射| 日韩成人性日韩成人性爱视频在线免费观看 | 91天堂色男人的天堂| 婷婷丁香五月综合| 美性中文综合网| 亚洲a色| 高潮毛片无遮挡高清免费| 久操精品网| 日日干夜夜操视频h| 日本精品一区二区三| 91丨国产丨白浆秘 洗澡动漫| 午夜福利精品| 免费看污网站| 农村少妇久久久久久久| 亚洲色图日韩精品| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 国产精品久久久久久久毛片1| 色色热| 欧美日韩中国x| 日本东京热久久久电影| 九月丁香婷婷| 99最新日韩偷拍视频| 98人妻精品一区二区色欲| 在线播放成人网站| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 黄色二级片网站| 青青草依人大香蕉| 破苞ⅩXXX性无码动漫无码| 粉嫩AV一区夜夜嗨| 国产精品美女视频诱惑| 深夜操逼网| 丝袜加勒比| 美国一区二区免费视频| 亚洲天堂日本| 蜜乳AV一区| 蜜臀AV成人精品蜜臀| 九九九久久久| 大鸡吧尹人在线| 97网色| 九月丁香婷婷| 日韩三级av片| 婷婷激情啪啪| 成人久久久| 成人五月香网在线| 神马久久久久久| 国产欧美伊人| 在线a亚洲视频播放在线| 亚洲欧美精品一区天堂久久 | 国产精品粉嫩福利在线| 国产欧美日韩精品中文| 欧美精品,四区。五区| 综合操逼| 亚洲,欧美,综合网| 人妻熟女一区在| 特色a在线上| 好淫网一二三视区| 亚洲精品成人动漫在线| 曰韩香蕉97| 国产亚洲禁久一区二区| 亚洲丝袜二区在线| 日韩三级一区| 蜜乳AV.COM| 91女优在线观看| 免費黃色視頻觀看一| 亚洲情色 自拍| 天天爽天天操| 国产无码久久高清| 精品久久久不卡一区二区| 福利视频一区二区微拍| 久久黄黄黄| 久久香蕉国产传媒一区剧情天美| 欧美不卡五十路| 中文字幕人妻色偷偷久久皮| blacked精品一区国产| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 国产人人干| 人人考人人摸人人干| 先锋女优在线观看视频| 色九月综合| 国产精品蜜乳AV| 中文字幕视频二区| 国产偷仑| 91丨九色丨国产打屁股| 欧美性爱日韩高清| 新怡红院| 亚洲大色堂| 色五月综合| 精品人妻一区二区三区四区石在线| 在线观看A啊啊啊| 亚洲国产欧美中文永久| 精品久久无码午夜福利| 久久久久久人| 超碰在线97国产| 91操操| 中文字幕一区二区日韩网| 成人AV在线网站| 97这里都是精品| 自偷自拍的亚洲视频| 日本高清视频xxxx| 69一区二区| 亚洲偷拍欧美激情| 色婷婷婷五月天激情四射| 91精品久久久久久77777| 亚洲最新Av| 欧美亚洲天天| 久湿久久| 欧美韩日精品资源| 日日夜夜国产综合| 翘臀vidoes| 国内精品伊人久久久久影院会| 亚洲97成人在线观看| 欧美日韩狠狠爱| 校园春色中文字幕AV| 黄色乱论网站| 天天日日舔舔| 亚洲 综合 欧美| 婬女免费一二三区A片| 午夜操逼不卡| 日本欧美一区二区三区视频麻豆| 97欧美视频| 国产成人五月天丁香花| 啊啊啊啊无码| 亚洲九九视频| 1024精品在线| 麻豆视频一区二区| 亚洲丝袜少妇在线| 欧美性91| 蜜桃久久一区二区| 一区二区三区高清| 欧美日韩狠狠爱| 久久久性少妇| 九九九一二三| 日日摸天天爽夜夜欢| 成人一二三区| 夜色综合| 襙一襙| 日本精品中文字幕视频| 中文字幕日韩专区精品系列| 午夜国产综合视频在线观看| 影音先锋新男人| 中国一级特黄大片护士| 3028国产精品| 精品一区二区成人动漫| 操操碰| av天天在线观看| 天天干2区3区| 欧美91在线+|+欧美| 欧日韩在线观看| 久草线上视频免费看| 欧美色图片欧美色图| 九九热精品视频六| 免费a v| 精品人妻1区| 欧美经典一区二区三区| 亚洲天堂热| 看黑人AV不卡| 超碰久久综合| 亚洲人妻久久| 国产精品熟女九色九色蜜臀| 欧美极度丰满熟妇hd| 色99色| 久久97资源 网| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 操逼网站地址| 区一在线观看| 国产精品大屁股999| 男人的天堂1024| 亚洲中文字幕精品一区| 日韩一区二区高清在线观看的| 超碰免费人人| 久久久婷婷| 国产精品伦理| 欧美伊人久久综合网| 丁香五月激情综合国产| 国产婷婷一区| 四虎av在线| 日韩欧洲操屄视频| 99色热| 日韩无码AB| 天天看片青娱乐| 乱伦图av| 色月天AV导航| 欧美日韩不卡传媒| 乱伦a片视频| 亚洲欧美大香蕉| 操死我了啊啊啊| 蜜臀99久久精品久久久懂爱| 操比国产| 日日日骚女人精品| 国产精品人妻无码久久久老鸭窝| 亚洲精品日韩国产欧美| 亚洲日产专区婷婷| AV麻豆免费一区| 99热思思| 色99久草| 久久久国产亚洲精品系列| 天美传媒av 在线| 黑人精品欧美一区二区蜜桃| 精品国产人成在线| 青青操少妇| 凹凸视频在线一区二区| 丁香成人五月天| 日产成人久久| 欧美性爱1080p| 99操| 青青免费在线视频一区 | 欧色网址| 婷婷久草| 偷拍导航视频网站| 国产在线视视频有精品| 高清不卡 中文 人妻| 亚洲精品尤物yw在线影院| 日本不卡码黄色| 国产无码成人无码| 九九精品美女高溯喷水| 91亚洲综合| 日本一区三级韩国| 久久天堂| 亚洲精品国产AV天美传媒| yw尤物av无码点击进入麻豆| 99青草| 视频一区二区免费在线| 国产精品乱人伊人网| 毛片一区二区| 久久內射| 国产精品久久久久亚洲av| 青木玲在线不卡| 久久久久久久亚洲Av无码| 91性| 激情五月天社区| 999色欧美中文字幕| 久久精品99| 91老司机视频| 人妻精品综合中文字幕在线| 无码精品久久久久久亚洲| 大香蕉 222| 91东京热男人的天堂| 亚洲日产专区婷婷| 久久亚洲精品成人av| 91高清欧美| 成人综合色网| 亚洲?V无码专区在线电影| 97网址97| 久久久一区二区三区四曲免费听| 日韩欧无码一区二区三区免费不卡| 色哟哟-国产专区| 国产探花精品在线| 97在线视频免费看| 色诱中文字幕| 男男H黄动漫啪啪无遮挡网站| 精品人妻久久久久一区二区三区| 天天影视综合网欧美精品| 最新av中文字幕高清| 天天拍天| 精品夜夜澡人妻无码| 97在线精品观看视频| yazhououmeizongya| 暖暖精品二区三区观看| aaaa黄片| 天天看天天日| 97超色| 99999无码| 太久视频| 肏逼视频日本| 婷婷久久久精品| 日日夜夜骚| 国内三级自拍小视频在线观看| 97欧美| 99精品久久久久久| 综合网,亚洲,欧美| 凸凹视频在线观看| 国产婷婷综合在线观看| 日本久久久久久久久久| 久久999久| 激情99| 8050无码八戒| 2019精品国产无码成人| 在线天堂资源亚洲| 青青草玖玖爱| 亚洲综合另类欧美久久久| 亚洲日本韩国在线| 国产 日韩 欧美高清| 青青在线视频日韩欧美| 97人妻人人躁人人玩人人| 色综合加勒比四四季| 色色国产| 午夜福利视频在线一区| 国产一区二区三区免费视频在性观看| 欧美 亚洲精品首页| 中文一区二区| 狠综合网| 欧洲乱码一区二区| 国产精品一区人妻精品阁在线| 91丨熟女丨丰满熟女| 熟妇xxxxx性春色| 97香蕉网| 久久91| 极品肉射| 日韩内| 大香交| 亚洲熟女偷拍在线观看| 亚洲色图国产另类| 国产精品久久久久久久久久久久久久久久久久 | 闷骚老熟女15P| 国产一区二区三区中文字幕| 久久草大香蕉| 五月婷婷久久综合| 日本高清一区二区在线| 色综合av男人天堂| 国产成人手机视频激情| 成人麻豆av电影网站| 午夜视频久久久久一区| 台湾一区国产高清在线| 强奸乱伦 亚洲一区| 欧亚无码视频| 亚洲啪啪视频免费| 国产无码高清操逼视频| 亚洲春色欧美激情自拍| 操www| 国产一级不卡在线观看| 岛国艾薇凹凸视频天堂| 激情啪啪拍91| 欧美色五月| 蜜臀av在线播放一区二区三区| 骚逼高潮久久精品| 怡红院视频在线| 久热久一区二区三区| 中文字日本乱码| 少妇极品熟妇人妻无码| 久久久免费懂色| 精品久操| 亚洲精品人体| a片 xxxx受爽视频| av在线观看不卡网站| 色欲蜜臀AV| 久久性视频| 99超碰色| 熟女网站最新| 日本欧美中文字幕| 91中出| 欧美aa一级片| 黄色av一区二区在线| 免费观看欧美日韩操逼视频| 嗯嗯嗯,草死我| 九九国产| 久久这里只| 夜夜草天天| 太久视频| 神马精品视频| 日韩天天本| 另类小说欧美激情校园春色| 男人女人18禁片免费看网站| 国产偷拍自拍在线视频| 超碰人人妻| 伊人精品视频| 97这里有精品| 中文字幕久热视频在线| 狠狠色综合网| 久热精品色情| 大香蕉日韩| 小日子操bb在线看| 狠狠穞A片一區二區三區| 久偷拍| 亚洲人妻日日日| 精品国产91av一区二区三区 | 日本不卡免费二区| 美国日韩黄片| 神马久久久久久久久久久久| 天堂8在线新版官网| 中文字幕精品亚洲熟女| 国产版a级片直播在线| 国产精品久久久九九九| 性爱乱伦视频免费| 欧美青青视频| 草莓精品视频| 久日综合网| 日本高清加勒比| 超碰午夜| 久热婷婷| 人澡逼| 国产在线观看91精品一区| 思思99热| 久欲AV| 青娱乐欧美激情一区二区| 久久黄黄| 欧美天堂在线| av资源在线观看少妇| 欧美日动态视频| www熟女乱伦com| 国产女人高潮视频| 国产视频97| 精品偷拍13p欧美dodk视频| 日韩精品高清资源在线 | 日本性爱不卡视频| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 久久无码电影| 成人日韩中文字幕| 殴美性天天| AA特级绝黄| 中文字幕诱惑制服人妻丝袜美丝袜美| 乱伦一二三区| 97超碰天天爱天天爱| 欧美性xxxxx狂欢| 久久香蕉国产传媒一区剧情天美| 青女偷拍网| 婷婷五月天av| 日韩欧视频| 色99在线| 精品九九九九九九| 91欧美高清| 麻豆精品一区二区三区四区免费观看| 999久久久精品国产| 欧美亚洲手机在线| 婷婷色综合| 九九九九免费视频| 久久久久久电影| 亚洲91网站| 青青久久手机线视频| 日产成人久久| 九色婷婷| 男人的天堂网页| 暖暖精品二区三区观看| WWW.操逼.COM| 日han少妇无码| 91碰超| 欧美激情亚洲情色| 久久亚洲婷婷| 久久久亚洲| 麻豆福利视频导航| 黄片色区软件| 色区97| 久妇网| 国产特级毛片AAAAAA高潮流水 | 777AV电影| 夜夜嗨免费视频| 六月丁香五月婷婷| 国产性爱强奸乱伦大全| 天天看人人操屄犊摸阴| 一区二区三区四区免费视频| 人妻熟妇一区二区三区| 好湿好紧好爽 视频| 国产在线激情视频| 欧美成人贴图| 精品人妻夜夜草| 丁香五月综合| 欧美性第一页| 久久同城AV| 婷婷五月天在线观看| 久久精品人人做人人看| 久久亚洲天堂| 啊啊啊com| 亚洲欧综合另类无码一区| 最新AV在线| 亚州中文字幕超碰97| 超碰人人在线| 91精品亚洲内射孕妇| 国产AV线| 欧美超碰96| 国产亚洲精品美女久久久m| 国产精品69久久久久孕妇欧美| 91碰碰碰| av在线不卡一区二区三区| 唯美清纯 妖精视频| 大香蕉啪啪啪啪在线| 激情AV| 狼狼色丁香久久婷婷综合五月| 亚洲图片欧美偷拍| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 嫩草在线视频| 超碰在线一区二区| 国产精品一级二级在线| av在线人气| 97人人射| 免费啪啪一级视频| 欧美亚洲国产91在线| 日日日日做夜夜夜夜做无码97| 久久婷婷精品| 91精品女厕偷拍视频| 干超碰碰熟女| 四季av一区二区凹凸精品小说| 亚洲自拍另类丝袜综合| 国产人妻精品久久久一区二区三区| 国产操逼逼网| 亚洲日本激情| 日韩在线观看三级电影| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产尤物AV尤物在线观看不卡| 91肉片| 夜色综合| 国产路线专区| 一二三区精品视频| 久久激情四射婷婷丁香五月天| 操亚州| 樱花草社区www中国| 欧美制服网站美腿丝袜| 99热在线观看| 婷婷亚洲综合| 免费中文在线| 亚洲天堂中文字| 操逼A∨| 一本色道熟妇| 久久精品无码一区二区三区| 色99久草| 久久精品成人| 可乐操亚洲蜜911| 色九色久| 亚洲狠狠入| 国产91 丝袜在线播放 | 亚洲无码久久久久久久| 中文字幕91页| 极品尤物自安慰| 青娱乐国产精品| 亚洲一欧洲中文字幕在线| 乱伦a片视频| 国产亚洲精品久久久久小| 韩国三级色呦呦| 91制服丝袜中文字幕| 青草一区二区| 国产精品电影大全| 国产毛片毛片4p懂色| 富女玩鸭子一级毛片| 综合av社区| 国产亚洲日韩在线三区黑人| 亚洲情色中文字幕一区| 国产乱伦性爱AV| 9 9精品一区二区三区| 综合色图区| 国产午夜福利视频在线| 欧美日韩亚洲五月天婷婷| 久久久久无码一妻区| 一区超碰一区| 美女性91| 人人妻人人爱人人玩| 蜜臀久久99精品久久久| 日本韩高清无砖码22o| 午夜a成v人电影| 国产精品无码在线| 天天天天干| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 亚洲伊人a线观看视频| 精品黑人一区二区| 偷拍欧美综合| 久日91在线| 91中文字幕在线观看| 97超碰久久| 亚洲导航深夜福利| 可以看的av| 青久操| 亚洲国产97在线精品一区| 99热在线观看| 欧美性爱中文字幕无线码| 九九综合久久| 91在线色| 久久精品电影在线| 亚洲无线码欧洲精品区别| 国产精品亚洲美女久久久久| 日韩伦理久 久久 清纯| 嗯~啊~快点 死我视频免费看网站| 清纯唯美激情| 亚洲好看强奸乱伦| 久久精品国产精品亚洲艾通辽熟妇 | 青青青青草av在线观看| 婷婷国产精品一区二区| 九九综合久久中文字幕| 天天干少妇| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 五月天丁香欧洲日韩| 欧美激色| 亚洲国产成人精品久久久国产成人一区二区| 亚洲小电影免费涩涩成人在线高清 | 爱爱动态试试看6 0秒| 校园春色 亚洲| 成人av影院在线观看| 床上啊啊啊一区二区三区| 热久日综合| 男人天堂东京热| 曰本人妻人人澡人人夹| 九一屌逼| 国产精品视频在线观看| 大香蕉免费乱伦视频| 精品176精品2| 日本操逼视频在线| 在线只有精品| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 职场同事知名国产国产精品久久欧美日韩| 久久久久97| 婷婷丁香五月综合| 色香网| 在线一道啪| 天天综合网在线| 另类图片天天影视| 免费毛片在线播放| 日日妻色网| 日本操逼视频不卡直接放| 欧美三级不卡| 国产97视频| 久久久久人妻| 国产成人精品网站| www激情| 亚洲日精品| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 亚洲熟女偷拍在线观看| 中文色综合| 精品176精品2| 91精品久久久| 日本欧美色| 影视综合无码少妇| 日本大香蕉| 人人艹亚洲| 久久同城AV| 午夜爽爽爽在线观看永久入口姬片| 亚州人妻| 国产精品美女在线一区| 久久人妇| 日韩乱伦影音先锋| 亚洲日韩东京热一区| 黄色一区二区秘书性感| 无码操逼天堂| 国产无套粉嫩白浆在| 99精品无码| 激情婷婷| 中文字幕欧美日韩三级| 观看免费区二区三区二| 欧美大香蕉久| 亚洲精品 欧美精品| 8050无码八戒| 亚洲男人天堂网站| 99热97| 中文字幕日韩电影人妻| 国产和美国毛片| 天天干人妇| 美女网站91| 动漫片子网站3黄| 日韩精品在线观看观看| 亚洲 欧美 综合 91| 欧美日综合| 男人的天堂 在线一区| 99啪啪| 午夜福利视频在线一区| 91欧美色| 亚洲色图加勒比| 操逼逼中文字幕| 3P丝袜熟女 色综合| 天天摸天天插天天日| 色就色综合| 亚洲 欧美 日韩另类 麻豆| 玖玖97综合| 亚洲成人性| 91亚洲网站| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 黄色网址久久精品欧美喷水| 亚洲伊人久久综合97| 亚洲天堂美臀在线| 亚洲1区| a片偷拍视频| 亚洲天堂少妇| 综合久欧洲| 国产激情片在线观看| 麻豆国产精品午夜视频| 少妇久久久免费| 国产精品一区二区在钱播放| 97精品熟女少妇一区| 伊人九九九| 人妻黑丝袜电影| 99国内精品| 久久精品色欧美aⅴ一区二区| 激情综合网亚洲| 99re在线视频这里只有精品| 精品人妻一区二区三区-国产| 性做久久久久久久| 91内射| 密臀国产在线| 欧美中文狠| 欧美.亚洲.另类.丝袜.制服.诱惑| 国产99精品一区二区三区免费| 欧美精品黑人猛交高潮| 天堂综合| 国产精品 午夜福利| 91蜜桃婷婷狠狠久久综合9色| 欧美老妇曰批的视频| 超碰97护士| 清纯唯美综合亚洲| 老女人老91妇女老热女| 久久亚洲骚逼综合| 啊操爽品善一区二区三区| 自拍欧美| 99热色精品| 户外裸露刺激视频第一区| 亚洲综合影院| 特污精品女优骚货黄色视频在线免费观看| 久操在97| 午夜天堂精品久久| 欧美性爱97超碰| 丁香五月天堂| JIZZJIZZ国产精品喷水| 很黄很色的视频在线观看| 2024年最新色情网站在线观看| 亚洲天在线| 欧美亚洲韩国视频十五区| 97视频www| 国产精品视频| 免费9 1久久| 大香蕉伊人网WWWn0n| 91色综| 国产精品色色| 99热伊人| 色婷婷电影| 91精品丝袜久久久久久| 无码抄逼网| 图片区小说区| 久久99午夜精品一区人妻| 日韩久久.一级黄色片| 6080YYY午夜理论片在线观看| 国产主播福利| 三男一女不戴套的A片| 狠狠婷婷亚洲中文综合久久| 日少妇视频| 男人天堂2017| 张柏芝国产一区在线观看| 91w欧美| 91免费看一区二区三区| 亚洲婷婷丁香在线| A级在线视频| 黄色成人网久久久久久| 国产精品麻豆成人av| 色哟哟AⅤ| 精品国产91av一区二区三区| 午夜福利av电影在线| 狠狠色狠狠色狠狠五月| 欧美顶级黄色大片免费| 乱伦系列一区二区| 色婷婷综合视频| 人妻激情偷乱视频一区二区三区 | 青草伊人久久| 中国91AV| 超碰成人人人爽人人爽|