色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

e2e測(cè)試穩(wěn)定性實(shí)戰(zhàn):工具選型與profile環(huán)境隔離方案

e2e測(cè)試穩(wěn)定性實(shí)戰(zhàn):工具選型與profile環(huán)境隔離方案 1. 從一次“能跑但不敢上線”的尷尬說(shuō)起不知道你團(tuán)隊(duì)有沒(méi)有過(guò)這種時(shí)刻單元測(cè)試覆蓋率做到80%以上接口測(cè)試也在流水線里跑著但每次發(fā)版前測(cè)試同學(xué)依然要花整整一個(gè)下午手工把注冊(cè)、登錄、下單、支付、退款這條鏈路從頭點(diǎn)一遍。點(diǎn)完以后大家長(zhǎng)舒一口氣感覺(jué)“心里有底了”——但第二天線上還是出事故了而且往往出在“單個(gè)模塊都沒(méi)問(wèn)題、連起來(lái)就崩了”的地方。這就是典型的“測(cè)試斷層”。單測(cè)管的是函數(shù)級(jí)行為接口測(cè)管的是協(xié)議級(jí)數(shù)據(jù)交換而真正用戶面對(duì)的是“完整走一遍業(yè)務(wù)流程”這件事。串聯(lián)起前端頁(yè)面、瀏覽器事件、網(wǎng)絡(luò)請(qǐng)求、后端邏輯、數(shù)據(jù)庫(kù)狀態(tài)的測(cè)試業(yè)界給它取了名字叫e2e全稱End-to-End端到端測(cè)試。這篇文章不談概念定義我想直接聊聊e2e測(cè)試在真實(shí)項(xiàng)目里怎么落地、怎么選型、怎么穩(wěn)定運(yùn)行以及那些文檔上不會(huì)告訴你的坑。如果你正在搭測(cè)試團(tuán)隊(duì)、或者一個(gè)人扛著項(xiàng)目的質(zhì)量底線這篇文章就是給你準(zhǔn)備的。核心關(guān)鍵詞是e2e、e2e測(cè)試穩(wěn)定性、e2e工具選型以及一個(gè)容易踩坑的細(xì)節(jié)——測(cè)試環(huán)境的多profile配置比如我們常說(shuō)的profile1、profile2這類環(huán)境隔離方案。下面所有內(nèi)容都來(lái)自我實(shí)際項(xiàng)目里的踩坑和復(fù)盤(pán)可以直接拿來(lái)參考。2. 在動(dòng)手寫(xiě)e2e之前想清楚這三件事2.1 e2e不是“自動(dòng)化點(diǎn)鼠標(biāo)”而是業(yè)務(wù)價(jià)值的守護(hù)線我見(jiàn)過(guò)太多團(tuán)隊(duì)把e2e理解成“用腳本代替手工重復(fù)操作”這個(gè)定位沒(méi)問(wèn)題但格局太小。手工回歸測(cè)試是“用時(shí)間換保障”e2e自動(dòng)化是“用代碼換時(shí)間”而真正有價(jià)值的e2e體系應(yīng)該是“用業(yè)務(wù)路徑的完整性換線上自信”。舉個(gè)特別直白的例子電商網(wǎng)站的下單流程。單測(cè)階段你驗(yàn)證的是“價(jià)格計(jì)算函數(shù)輸入兩個(gè)數(shù)字返回正確結(jié)果”接口測(cè)試階段你驗(yàn)證的是“下單接口拿到合法參數(shù)后返回訂單號(hào)”。但用戶實(shí)際的操作路徑是打開(kāi)首頁(yè) → 搜索商品 → 查看詳情 → 加入購(gòu)物車 → 進(jìn)入結(jié)算頁(yè) → 填收貨地址 → 選擇優(yōu)惠券 → 提交訂單 → 收銀臺(tái)支付 → 支付成功回調(diào) → 查看訂單狀態(tài)。這個(gè)完整鏈路里任何一個(gè)環(huán)節(jié)的DOM結(jié)構(gòu)變化、任何一個(gè)接口字段調(diào)整、任何一條緩存策略改動(dòng)都可能導(dǎo)致流程中斷。而單測(cè)和接口測(cè)試都是“站在模塊內(nèi)部看局部”只有e2e是“站在用戶角度走完整條路”。所以在設(shè)計(jì)e2e用例時(shí)第一個(gè)原則就是“以業(yè)務(wù)價(jià)值為綱”。不要為了覆蓋率去寫(xiě)一堆流程片段你要找的是核心業(yè)務(wù)主路徑。比如一個(gè)SaaS系統(tǒng)用戶注冊(cè)、創(chuàng)建工作空間、邀請(qǐng)成員、創(chuàng)建項(xiàng)目、發(fā)布上線這五條主路徑比一百條細(xì)枝末節(jié)的交互路徑都重要。優(yōu)先保證這些路徑永遠(yuǎn)可走通比“什么都測(cè)一點(diǎn)”實(shí)際得多。2.2 e2e應(yīng)該“精而少”不是“多而全”這可能和很多人的直覺(jué)相反。我遇到過(guò)不少團(tuán)隊(duì)立志要做全量e2e覆蓋把頁(yè)面上的每個(gè)按鈕、每個(gè)表單都自動(dòng)化最后維護(hù)成本高到團(tuán)隊(duì)崩潰腳本脆得像薯片跑一次紅一片最后只能放棄治理。真實(shí)世界里的e2e測(cè)試金字塔應(yīng)該是這樣的底層是大量的單測(cè)中層是較多接口測(cè)試上層是精挑細(xì)選的e2e用例。e2e用例的數(shù)量不應(yīng)該追求幾十幾百而應(yīng)該控制在“核心業(yè)務(wù)路徑×關(guān)鍵分支”這個(gè)規(guī)模上。比如我用Cypress或Playwright搭建過(guò)好幾個(gè)項(xiàng)目的e2e套件主路徑用例一般保持在20到40個(gè)之間。這些用例覆蓋了用戶最常走的幾大流程外加登錄態(tài)過(guò)期、網(wǎng)絡(luò)重試、數(shù)據(jù)為空這類高影響分支。為什么控制數(shù)量因?yàn)槊總€(gè)e2e用例的維護(hù)成本遠(yuǎn)比單元測(cè)試高——它依賴的頁(yè)面結(jié)構(gòu)、接口數(shù)據(jù)、環(huán)境配置任何一個(gè)變化都可能讓腳本失效。與其寫(xiě)100個(gè)脆弱用例不如打磨好30個(gè)穩(wěn)定用例這其實(shí)是性價(jià)比最優(yōu)的方案。2.3 環(huán)境穩(wěn)定性決定了e2e的“生死”說(shuō)到e2e測(cè)試?yán)镒钊菀追嚨囊蛩丨h(huán)境穩(wěn)定性排第一。一個(gè)脆弱的測(cè)試環(huán)境會(huì)讓你每天都在和“偶發(fā)失敗”搏斗昨天跑得好好的用例今天因?yàn)槟硞€(gè)定時(shí)任務(wù)改了一條數(shù)據(jù)就掛了。你不是在排查代碼bug而是在和環(huán)境污染賽跑。解決思路也明確e2e測(cè)試的數(shù)據(jù)必須可隔離、可重置、可預(yù)期。常見(jiàn)的做法是為e2e準(zhǔn)備獨(dú)立的環(huán)境和獨(dú)立的測(cè)試庫(kù)每次跑完做數(shù)據(jù)重置。更進(jìn)一步的做法是用profile這種多環(huán)境染影方案把測(cè)試環(huán)境細(xì)分成profile1、profile2等多個(gè)互不干擾的配置集。這個(gè)話題后面我會(huì)專門(mén)展開(kāi)說(shuō)但請(qǐng)先記住這個(gè)判斷——環(huán)境隔離做得好的團(tuán)隊(duì)e2e測(cè)試成功率能穩(wěn)定在95%以上做得不好的團(tuán)隊(duì)連50%都達(dá)不到。3. e2e工具選型我為什么最終棄用了Selenium3.1 主流工具橫向?qū)Ρ裙ぞ哌x型決定了你未來(lái)一年甚至兩年的體驗(yàn)。這一節(jié)我把主流方案放在一起做一個(gè)不吹不黑的對(duì)比基于我實(shí)際項(xiàng)目中的體驗(yàn)僅供參考。對(duì)比維度SeleniumCypressPlaywright安裝復(fù)雜度需要WebDriver管理不同瀏覽器要單獨(dú)配置npm安裝即可自帶瀏覽器管理npm安裝即可同樣自帶瀏覽器管理API風(fēng)格偏底層面向“瀏覽器操作”面向業(yè)務(wù)場(chǎng)景鏈?zhǔn)秸{(diào)用非常直觀面向業(yè)務(wù)場(chǎng)景Fill、Click等API更現(xiàn)代等待機(jī)制靠自己寫(xiě)sleep和ExplicitWait內(nèi)置自動(dòng)等待機(jī)制內(nèi)置自動(dòng)等待機(jī)制體驗(yàn)比Cypress更順手多標(biāo)簽頁(yè)/多窗口基本能力但處理起來(lái)繁瑣天然不支持多標(biāo)簽頁(yè)早期版本限制大原生支持控制權(quán)清晰網(wǎng)絡(luò)攔截/Mock用第三方庫(kù)才能實(shí)現(xiàn)cy.intercept非常好用page.route功能極其協(xié)同跨域和iframe支持但代碼寫(xiě)起來(lái)痛苦跨域限制多iframe支持做得一般跨域和iframe都支持得很好調(diào)試體驗(yàn)停留在“看日志級(jí)別”截圖信息量有限時(shí)間旅行調(diào)試太爽了每一步可以hover觀察Trace Viewer更強(qiáng)大能看到網(wǎng)絡(luò)請(qǐng)求、快照、行為縮略圖并行執(zhí)行需額外接入Grid或Selenium Hub配置復(fù)雜Cypress Dashboard或商業(yè)方案才支持并行原生支持Sharding并行或者用自帶的Modes并行跑3.2 為什么最終選擇了Playwright這個(gè)對(duì)比做完結(jié)論很明顯Selenium是“老牌王者”適合需要兼容老舊測(cè)試框架和超復(fù)雜瀏覽器生態(tài)的場(chǎng)景但對(duì)新項(xiàng)目來(lái)說(shuō)太重了Cypress把e2e體驗(yàn)做得極佳短板在于多標(biāo)簽頁(yè)和iframe這些“高級(jí)操作”P(pán)laywright在API設(shè)計(jì)、多瀏覽器支持、并行能力上幾乎沒(méi)有短板所以近些年社區(qū)增長(zhǎng)極快。我自己在幾個(gè)項(xiàng)目里的路線是先Selenium后來(lái)遷到Cypress再后來(lái)主力切換到Playwright。不是Cypress不好而是Playwright對(duì)多標(biāo)簽頁(yè)、網(wǎng)絡(luò)攔截、移動(dòng)端模擬的支持做得太順手。舉個(gè)例子我需要在測(cè)試?yán)锬M一個(gè)三方支付回調(diào)打開(kāi)一個(gè)包含特定URL的新標(biāo)簽頁(yè)然后關(guān)閉它回到原頁(yè)面繼續(xù)斷言。Cypress對(duì)多標(biāo)簽頁(yè)天然限制很大我用了一堆workaround才勉強(qiáng)跑通。Playwright直接有page.waitForEvent(popup)零額外成本。如果你是一個(gè)新項(xiàng)目、新團(tuán)隊(duì)沒(méi)有任何歷史包袱我建議直接上Playwright。它既省心又現(xiàn)代化API設(shè)計(jì)對(duì)業(yè)務(wù)測(cè)試人員非常友好上手成本比Selenium低一大截。當(dāng)然如果你是ts體系的老項(xiàng)目團(tuán)隊(duì)已經(jīng)磨合很久了Selenium的寫(xiě)法強(qiáng)行遷到Playwright也有代價(jià)這個(gè)要權(quán)衡團(tuán)隊(duì)時(shí)間和收益。3.3 補(bǔ)充一個(gè)判斷標(biāo)準(zhǔn)調(diào)試體驗(yàn)的權(quán)重其實(shí)很高選型時(shí)還有一個(gè)容易忽略的指標(biāo)——調(diào)試體驗(yàn)。我見(jiàn)過(guò)不少人選工具時(shí)只看功能列表面忽略了“用例掛了以后怎么定位”這件事。等真正用了才知道調(diào)試體驗(yàn)直接影響團(tuán)隊(duì)效率。Playwright的Trace Viewer能回放整個(gè)測(cè)試會(huì)話每一步都有DOM快照、網(wǎng)絡(luò)請(qǐng)求明細(xì)、瀏覽器控制臺(tái)日志我經(jīng)??恐恍写a不寫(xiě)就定位到問(wèn)題根源。這點(diǎn)強(qiáng)烈建議你選型時(shí)納入評(píng)估維度不是“能跑就行”而是“掛了以后能不能快速找出原因”。4. 搭建一套可維護(hù)的e2e測(cè)試工程我從空目錄到落地的完整過(guò)程4.1 工程初始化和目錄設(shè)計(jì)拿Playwright為例初始化一個(gè)項(xiàng)目非常簡(jiǎn)單npm init -y npm install -D playwright/test npx playwright install安裝完后npx playwright install會(huì)幫你拉好Chromium、Firefox和WebKit三個(gè)瀏覽器內(nèi)核這個(gè)動(dòng)作對(duì)后面跑不同瀏覽器兼容性測(cè)試特別有用。不過(guò)我建議你第一次只先安裝Chromium其他瀏覽器內(nèi)核等你真的需要做跨瀏覽器兼容時(shí)再裝省得浪費(fèi)時(shí)間。初始化完整后的目錄結(jié)構(gòu)一般長(zhǎng)這樣e2e/ ├── tests/ │ ├── auth.spec.ts │ ├── purchase.spec.ts │ └── workspace.spec.ts ├── fixtures/ │ └── auth.setup.ts ├── config/ │ ├── playwright.config.ts │ └── profiles/ │ ├── profile1.ts │ └── profile2.ts ├── utils/ │ ├── apiHelper.ts │ └── selectorUtils.ts ├── playwright.config.ts └── package.json目錄設(shè)計(jì)的原則是“測(cè)試文件按業(yè)務(wù)域組織配置工具和環(huán)境分離”。我見(jiàn)過(guò)不少項(xiàng)目的e2e目錄是“test1.spec.ts、test2.spec.ts”這種毫無(wú)規(guī)律的命名維護(hù)起來(lái)非常痛苦。按業(yè)務(wù)域auth、purchase、workspace組織用例文件找用例、歸因、排除干擾都方便得多。4.2 一份能跑起來(lái)的Playwright配置文件核心配置文件是playwright.config.ts這里我給出一個(gè)實(shí)際在生產(chǎn)項(xiàng)目里飛起來(lái)的配置模板import { defineConfig } from playwright/test; export default defineConfig({ testDir: ./tests, timeout: 30000, fullyParallel: true, retries: 1, workers: 4, reporter: [ [list], [html, { open: never }], [json, { outputFile: test-results/results.json }] ], use: { baseURL: process.env.E2E_BASE_URL || http://localhost:3000, trace: retain-on-failure, screenshot: only-on-failure, video: retain-on-failure, viewport: { width: 1440, height: 900 }, locale: zh-CN, }, projects: [ { name: profile1-chromium, use: { browserName: chromium, config: config/profiles/profile1.ts, }, }, { name: profile2-chromium, use: { browserName: chromium, config: config/profiles/profile2.ts, }, }, ], });幾個(gè)關(guān)鍵點(diǎn)解釋一下fullyParallel: true表示用例之間完全并行執(zhí)行。但請(qǐng)注意并行執(zhí)行要求用例之間數(shù)據(jù)隔離做得好否則就是自己挖坑。我后面專門(mén)講數(shù)據(jù)隔離。retries: 1只設(shè)置1次重試不推薦大數(shù)字。重試是“環(huán)境抖動(dòng)”的兜底但如果你發(fā)現(xiàn)大量用例需要重試才能過(guò)那不是重試配置問(wèn)題而是環(huán)境穩(wěn)定性問(wèn)題要回到根因去修。trace: retain-on-failure是調(diào)試?yán)?。用例失敗時(shí)自動(dòng)保留完整追蹤記錄用Playwright的Trace Viewer可以打開(kāi)查看每一步的DOM快照、網(wǎng)絡(luò)請(qǐng)求和瀏覽器日志。這是省心干活的關(guān)鍵。projects里配置profile1/profile2就是前面提到的環(huán)境隔離方案。每個(gè)profile獨(dú)立配置一套環(huán)境參數(shù)、測(cè)試數(shù)據(jù)、賬號(hào)體系相當(dāng)于把測(cè)試環(huán)境“分成多個(gè)互不干擾的沙盒”。4.3 多profile配置的細(xì)節(jié)展開(kāi)為什么要用profile因?yàn)閑2e測(cè)試最怕“環(huán)境串味”。比如你有兩個(gè)測(cè)試環(huán)境A環(huán)境跑的是CI正在驗(yàn)證的新代碼B環(huán)境是QA同學(xué)手工探索用的老版本如果都用同一個(gè)數(shù)據(jù)庫(kù)你跑用例改掉了一條數(shù)據(jù)QA那邊同時(shí)也在手工測(cè)試兩邊互相踩腳問(wèn)題都分不清是代碼引起的還是數(shù)據(jù)污染引起的。profile就是解決這個(gè)問(wèn)題的每個(gè)profile對(duì)應(yīng)一套獨(dú)立的配置組合包括環(huán)境地址、測(cè)試數(shù)據(jù)集合、賬號(hào)憑證、常見(jiàn)狀態(tài)數(shù)據(jù)。比如profile1可以是“全新數(shù)據(jù)集的穩(wěn)定環(huán)境”profile2可以是“帶一批歷史埋點(diǎn)數(shù)據(jù)的回歸環(huán)境”。具體配置項(xiàng)可以是一個(gè)單獨(dú)TS文件導(dǎo)出一個(gè)配置對(duì)象// config/profiles/profile1.ts export const profileConfig { envName: profile1, baseURL: https://e2e1.example.internal, apiBaseURL: https://api-e2e1.example.internal, database: e2e_sandbox_1, adminAccount: { username: e2e-admin-1, password: e2e-pass-1, }, regularUser: { username: e2e-user-1, password: e2e-pass-1, }, seededData: { productIds: [prod-1001, prod-1002], couponIds: [coupon-2001], }, };然后在測(cè)試?yán)锿ㄟ^(guò)fixture注入這個(gè)配置不同profile的用例跑各自的獨(dú)立環(huán)境互不干擾。提示profile不是越細(xì)越好通常2到3個(gè)profile足夠滿足絕大多數(shù)團(tuán)隊(duì)需求。profile太多會(huì)帶來(lái)配置維護(hù)負(fù)擔(dān)。4.4 寫(xiě)第一個(gè)真正可用的e2e用例這里我拿最常見(jiàn)的登錄流程舉例。別小看這個(gè)場(chǎng)景很多團(tuán)隊(duì)連登錄流程都寫(xiě)不好原因在于等待邏輯處理不健壯import { test, expect } from playwright/test; test.describe(用戶登錄, () { test(使用正確憑證登錄成功并跳轉(zhuǎn)首頁(yè), async ({ page }) { // 使用頁(yè)面對(duì)象模式封裝這里直接展示核心邏輯 await page.goto(/login); await page.getByLabel(用戶名).fill(e2e-user-1); await page.getByLabel(密碼).fill(e2e-pass-1); await page.getByRole(button, { name: 登錄 }).click(); // 斷言成功進(jìn)入首頁(yè)且導(dǎo)航欄出現(xiàn)用戶頭像 await expect(page).toHaveURL(/\/dashboard/); await expect(page.getByRole(img, { name: 用戶頭像 })).toBeVisible(); }); });Playwright的自動(dòng)等待機(jī)制讓我不用手工寫(xiě)sleep或顯式等待。getByLabel、getByRole這類查詢方式基于可訪問(wèn)性語(yǔ)義比CSS選擇器穩(wěn)定得多。盡量避免使用#app div div.content button這個(gè)層級(jí)的CSS選擇器頁(yè)面重構(gòu)一次全掛。優(yōu)先用用戶可感知的文本、角色、標(biāo)簽。4.5 “Web first斷言”這個(gè)細(xì)節(jié)值多少錢寫(xiě)e2e用例時(shí)最容易犯的錯(cuò)就是“先查詢后斷言”的老思路。Playwright核心推薦的是Web-first斷言也就是斷言本身自帶自動(dòng)重試機(jī)制// 不推薦的寫(xiě)法手動(dòng)等待某個(gè)元素出現(xiàn)然后斷言 await page.waitForSelector(.order-status-text, { state: visible }); const text await page.textContent(.order-status-text); expect(text).toBe(已支付); // 推薦的寫(xiě)法Web-first斷言自帶重試等待 await expect(page.locator(.order-status-text)).toHaveText(已支付);toHaveText這種方式會(huì)在斷言失敗時(shí)自動(dòng)重試等待元素渲染完成不需要手工等待。這個(gè)細(xì)節(jié)讓用例穩(wěn)定性提升一個(gè)數(shù)量級(jí)。5. 提升e2e測(cè)試穩(wěn)定性的四個(gè)核心要點(diǎn)5.1 選擇器策略別跟DOM結(jié)構(gòu)藕斷絲連前面提過(guò)選擇器策略直接決定用例的“壽命”。我把穩(wěn)定性優(yōu)先級(jí)排成這樣用戶可見(jiàn)文本getByText、getByRole可訪問(wèn)性標(biāo)簽getByLabel、getByPlaceholder穩(wěn)定的測(cè)試專屬屬性data-testid最后才是CSS選擇器或XPath我見(jiàn)過(guò)太多團(tuán)隊(duì)在寫(xiě)用例時(shí)隨手從F12復(fù)制一個(gè)CSS路徑結(jié)果前端一個(gè)重構(gòu)就讓幾十條用例全紅。為了根治這個(gè)問(wèn)題我們團(tuán)隊(duì)形成了一條鐵律所有業(yè)務(wù)組件必須帶data-testid屬性且由前端開(kāi)發(fā)在開(kāi)發(fā)時(shí)就讓測(cè)試同學(xué)參與命名。這樣前端改樣式、改DOM結(jié)構(gòu)都不影響用例。5.2 測(cè)試數(shù)據(jù)隔離種好你自己的“一畝三分地”數(shù)據(jù)隔離是e2e穩(wěn)定的重中之重。具體做法分三層第一層每個(gè)profile運(yùn)行前執(zhí)行數(shù)據(jù)初始化腳本把數(shù)據(jù)庫(kù)恢復(fù)到基線狀態(tài)。用API調(diào)用種子接口比直接用SQL操作庫(kù)更貼近真實(shí)鏈路。第二層測(cè)試中創(chuàng)建的數(shù)據(jù)必須帶獨(dú)特的標(biāo)識(shí)前綴比如用戶名帶時(shí)間戳。避免兩個(gè)并行用例創(chuàng)建同名的用戶沖突。第三層測(cè)試結(jié)束并不強(qiáng)制要求“清理現(xiàn)場(chǎng)”。如果每個(gè)用例依賴的數(shù)據(jù)不沖突留著也問(wèn)題不大反而“清理現(xiàn)場(chǎng)”的操作本身容易引入不穩(wěn)定。比如等待某個(gè)刪除接口的返回如果刪除接口本身有問(wèn)題清理操作就會(huì)拖垮整個(gè)用例。注意并行執(zhí)行前提是用例之間“零共享數(shù)據(jù)”。如果做不到完全隔離建議先降級(jí)為順序執(zhí)行一步步排查穩(wěn)定問(wèn)題而不是一上來(lái)就硬并行。5.3 網(wǎng)絡(luò)Mock的使用分寸e2e測(cè)試到底要不要攔截真實(shí)網(wǎng)絡(luò)請(qǐng)求業(yè)界一直有爭(zhēng)議。我的經(jīng)驗(yàn)是主路徑用真實(shí)請(qǐng)求異常分支用Mock。主路徑的真實(shí)性高于一切因?yàn)閑2e價(jià)值就在于鏈路完整性把網(wǎng)絡(luò)全Mock了等于測(cè)試了個(gè)寂寞但異常的、慢速的、第三方依賴多的場(chǎng)景Mock是穩(wěn)定性的救星。比如第三方支付回調(diào)這種場(chǎng)景測(cè)試環(huán)境根本連不到真實(shí)支付網(wǎng)關(guān)那就必須Mock。用Playwright的page.route攔截支付回調(diào)請(qǐng)求返回固定報(bào)文這一步能讓整條支付鏈路在測(cè)試環(huán)境跑通。別花時(shí)間搭一套完整的模擬支付網(wǎng)關(guān)那屬于另一項(xiàng)工程不是e2e該干的事。5.4 等待與超時(shí)的正確姿勢(shì)新手寫(xiě)e2e最常見(jiàn)的bug是全篇setTimeout等待。在Playwright里Automatic waiting已經(jīng)做得很好了你只需要用locator的action方法它自動(dòng)等元素可操作用expect的Web-first斷言它自動(dòng)等斷言通過(guò)只有極少數(shù)需要“觀察直到消失”的場(chǎng)景才需要顯式處理。全局超時(shí)配置也不要搞得過(guò)短或過(guò)長(zhǎng)。30秒到60秒是常態(tài)區(qū)間超過(guò)90秒的用例大概率是設(shè)計(jì)有問(wèn)題。如果單條用例跑5分鐘它就不是“穩(wěn)定快速反饋”的e2e而是“慢速難受的定時(shí)炸彈”。6. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄6.1 偶發(fā)失敗明明剛才過(guò)了再跑一遍又紅了這是e2e團(tuán)隊(duì)最常見(jiàn)的問(wèn)題俗稱“flaky test”。排查思路分四步第一步看失敗時(shí)瀏覽器截圖和視頻判斷是頁(yè)面卡住、加載慢還是斷言本身有問(wèn)題。第二步看Trace Viewer的請(qǐng)求瀑布圖如果是某個(gè)接口響應(yīng)非常慢導(dǎo)致超時(shí)那是性能問(wèn)題但不算用例寫(xiě)錯(cuò)如果是斷言時(shí)機(jī)太早那是寫(xiě)用例時(shí)對(duì)等待機(jī)制理解不到位。第三步檢查是不是并行執(zhí)行時(shí)的數(shù)據(jù)串?dāng)_。兩個(gè)用例同時(shí)操作了同一個(gè)用戶賬號(hào)、同一條數(shù)據(jù)就會(huì)偶發(fā)沖突。解決辦法是給數(shù)據(jù)帶上唯一標(biāo)識(shí)。第四步如果以上都查不到那大概率是環(huán)境鏈路某環(huán)節(jié)不穩(wěn)定比如CDN緩存、SSL握手延遲。這時(shí)在重試策略上做兜底比較合理。6.2 元素選擇器今天能用明天就廢前端代碼迭代是常態(tài)今天還能定位到的DOM結(jié)構(gòu)明天可能就被重構(gòu)掉了。避免這種問(wèn)題最有效的做法要求前端給業(yè)務(wù)關(guān)鍵組件加上data-testid定義“測(cè)試選擇器規(guī)范”約定所有新組件必須暴露測(cè)試標(biāo)識(shí)每周固定跑一次e2e套件發(fā)現(xiàn)選擇器過(guò)期盡快修復(fù)別拖到發(fā)版前。6.3 登錄態(tài)如何跨用例復(fù)用很多用例需要登錄態(tài)但每次都走一次登錄流程既慢又不安全。Playwright支持全局setup在測(cè)試開(kāi)始前先完成一次登錄把存儲(chǔ)的cookie和localStorage寫(xiě)入文件后續(xù)用例直接加載這個(gè)已認(rèn)證狀態(tài)。配置方式// playwright.config.ts 里增加這個(gè)配置 globalSetup: ./config/global-setup.ts,global-setup里用API請(qǐng)求或UI登錄拿token然后通過(guò)storageState保存下來(lái)之后就再也不用每次用例重新登錄了。這個(gè)做法能讓用例執(zhí)行時(shí)間大幅縮短。7. 一次真實(shí)的e2e故障排查復(fù)盤(pán)我拿一次實(shí)際事故復(fù)盤(pán)做這篇內(nèi)容的收尾。某個(gè)項(xiàng)目的e2e套件連續(xù)一周每天早上在CI上跑總有3到5條用例隨機(jī)失敗本地跑永遠(yuǎn)是綠的。團(tuán)隊(duì)排查了兩天最后發(fā)現(xiàn)根因是profile1環(huán)境上一套夜間定時(shí)任務(wù)會(huì)在凌晨3點(diǎn)到5點(diǎn)之間重刷一批測(cè)試數(shù)據(jù)而CI在早上6點(diǎn)執(zhí)行e2e時(shí)部分?jǐn)?shù)據(jù)正好處于“剛被清理還未重建”的窗口期。這個(gè)問(wèn)題的解決方式是徹底放棄定時(shí)清理改為“每次執(zhí)行e2e前使用獨(dú)立profile的API完成定向數(shù)據(jù)準(zhǔn)備”也就是每次跑都在自己的profile數(shù)據(jù)域上自建自拆只在最外層做一次整體重置。從那以后用例穩(wěn)定性從62%上升到97%。我自己的體會(huì)是e2e測(cè)試最大的敵人不是代碼而是環(huán)境的不確定性?;〞r(shí)間把環(huán)境隔離和數(shù)據(jù)管理做扎實(shí)比絞盡腦汁寫(xiě)復(fù)雜的用例邏輯有意義得多。最后再分享一個(gè)小技巧e2e里跑用例前可以用一個(gè)健康檢查腳本快速探測(cè)目標(biāo)環(huán)境的關(guān)鍵API是否可用、首頁(yè)是否返回200、登錄接口是否正常。先確認(rèn)環(huán)境健康再開(kāi)始跑用例集能把無(wú)效失敗率降低一半以上。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲AV无码翔田千里网站| 免费夜夜爱黄色视频毛片| 色吧91| 热无码中文亚洲H一道本一区二区| 一区二区免费电影久久| 五月丁香激情综合网| 91大胆欧美| www.四虎在线| 久污| 嫩草影院在线观看精品| 亚洲精品天天影视综合网 | 五月婷婷基地| 女上位精品在线| 中日韓欧美高清| 亚洲欧美天堂在线| 天天操天天日天天干| 风韵犹存大大大大香蕉| 欧美人人AAA| 日少妇亚洲版| 97色冈| 国产一二三福利视频网| 丁香激情五月天| 91精品91久久久中77777| 99在线观看| 热的中文 热的有码 热的国产| 日欧操屄| 97操B| 无码日韩网站| 欧美综合综合| 无码9区| 91久久国产精品| 日韩精品操少妇| 人妻人久久精品中文字幕| 7777奇米影视久久| 99re69| 国产专区第一页| 欧美激情色婷婷花野真衣一区二区| 亚洲精品国语在线播放| 色偷综合| 日欧美色| 九九热精品在线| 国产乱伦亚洲色图高清无码| 日韩无码久久熟女一级片| 少妇3P性爱自拍| 久久激情四射婷婷丁香五月天| 色妹子A V| 国产一区在线观看无码AV| 中文字幕日韩专区精品系列| 夜夜综合| 欧洲Au麻豆| 青娱乐国产精品| 精品国产乱码久久| 精久久久| 啊啊啊啊啊啊好湿好爽视频| 日韩性爱高清免费视频| 欧洲色综合| 啊啊啊快操我视频| 久操B网| 色婷婷99| 男人天堂2019亚洲| 日本道久久综合色色| 97超碰色色| 91少妇香蕉久久精品| 亚洲国产第一页综合视频| 亚洲国产综合久久久性感熟妇| 国产大陆天天艹| 97精| 粉嫩av平台| 97爱爱官网| 久热久| 午夜福利在线合集| 99re这里| 精品人妻一区二区三区视频在线| 骚货 中文字幕 av| 亚洲,欧美,综合网| 天美麻豆一区二区三区| 精…码一二三区| 三级三级三级a级全黄三| 国产高清视频无码在线| 天天操夜夜嗨| 五月丁香网站| 97国产亚洲中文在线| av中亚| 久久97视频| 国产精品一区二区密臀| 国产视频第二页| 深夜激情| 国产亚洲日韩欧| 被窝影院午夜看片无码| 国产熟女乱论| 亚洲有码 欧美精品| 99久久综合| 久久熟女嫩草成人片免费| 国产精品另类| 日韩三级在线观看网站| 亚洲欧美国产成人综合不卡| 热热色色综合| 国产精品99999| 免费人成在线观看网站品爱网| 欧美日韩中文字幕人妻| 啊啊啊水好多| 日本操逼视频免费| 日韩一级二级在线| 97视频在线观看免费高清| V A在线| 淫荡少妇免费| 精品久久久不卡一区二区| 丝袜足交视频| www.91久久| 91中文精品日韩欧美在线| 不卡中文字幕aⅴ在线| 小少妇| 97在线日韩中文字幕| 又大又大又大又粗爽高潮观看| 亚洲成人福利电影免费| 足交视频老司机| 免费AV中文网在线观看| 国产夜夜艹| 女人 A一级| 91精品大奶人妻| 天天干1区2区在线| 欧美日韩国产高清在线一二三区 | 超碰这里有精品| 另类小说综合网| 美女露胸露奶头| 久操精品| 日韩人妻网站| 久操网视频| 久久人爽| A片 AV一级在线播放观看免费| 免费亚洲国产精品久久一区| 伊人女女资源在线观看| 少妇精品久久| 97在线观视频免费观看| 婷婷久久五月| 久草精品热视| 特级特黄一级毛片免费| 久久久96精品| 91网18| 自拍偷拍 日韩无码| 伊人91| 99亚洲精品| 精品人妻一区二区三区四区石在线| 欧美中字二区| 久久久久99999| 涩爱AV在线| 人人妻人人狠人人| 国产亚洲精品激情| dy888午夜老子影视达达兔| 蜜臀久久在线视频| 97AV爱| 老司机深夜影院18未满| 亚欧免费观看视频| 东京热男人的天堂| 农村妇女精品一区二区| 中文有码第五页| 91free福利| 国产精品一区av在线| 久久久久久久97| 一二区在线观看视频| 亚洲自拍欧美国产首页网曝| 999久久久久久久精| 男人的天堂不卡一区二区 | 超碰综合色| 妇女视频网站| 91网站视频在线观看| 亚洲婷婷丁香在线| 国产精品久久久久久久久久久久久久| 色偷偷超碰亚洲| 国产在线精品电影观看| 蜜桃久久综合视频| 久久久性| 无码99| 人妻中文字幕精品无码| 人人人干干人人干| 17c在线成人免费A片观看| 国产精品一区二区久久精品| 男女啪啪网站免费视频| 一区不卡在线观看av| 国产亚洲欧美每日在线| 99久久综合网| 伊人影院在线理论播放| 欧美天天综合站| 啊啊啊爽爽| 青青草一区二区高清无码视频| 天堂精品一区| 五月丁香激情四射| 国产精品呦一区二区三区| 国产欧美一级在线观看| 亚洲五月婷婷| 亚洲少妇激情视频| 91美女精品| 国产亚洲色停停久久99精品91| 亚洲精品乱码线路中文字幕| 老司机深夜影院18未满| 91精品人妻一品二品三品| 国产一级137片内射麻豆| 能在线播放的国产三级| 五月香婷婷| 蜜臀AV成人精品蜜臀| 91高清日| 国产精选三级在线观看| 91精品久久久久久77777| 久久精品国产亚洲5555| 五月丁香综合网| 夜夜综合| 88xx成人精品视频| 青草视频在线看看看看看看看看看| 日本精品九九九| AV一区观看| 国产亚洲人妻综合日韩 久久| 久久精品电影| 亚洲国产成人精品久久久国产成人一区二区三.| 屌色在线97视频| 福利天天都操| 国产区性爱在线视频秋霞豆| 性色中出| 日韩性爱1级片视频| 日韩三四五区| 国产日韩精品一区二区三区| 懂色aV一区二区天美传媒| 搡老女人老妇女老妇老熟女怎么读| 亚洲欧洲无码一区夜| 草草影院最新网址| 欧美国产视频| A V视频日本| 人妻爽爽啪视频| 国产亚洲精品玖玖玖在线观看| AV天黑人| 色爽爽文学| 亚洲日本天堂| 青青操狠狠撩| 96久久久久久久| 九九热免费国产视频婷婷伊人| 欧美亚洲天堂| 嗯嗯啊啊用力视频免费| 国产精品一区av在线| 亚洲91网站| 中文字幕人成乱码熟女香港| 国产精品3| 日韩欧美综合激情| 少妇精品| 久久手机视直播| 一线黄色免费性爱片| 色九九九综合| 无码操逼网| 5252色欧美在线男人的天堂| 免费观看的av| 亚洲欧洲日韩天堂av| www.av不卡中文字幕| 国语av最新自产拍在线观看| 中文操逼字幕| 国产偷人伦激情在线观看| 走光一区92下载| 99爱久久视频频| 99精品成人免费看| 日韩av影片在线观看| 久久精品 六十路 熟女 欧美| 91bbbbbb| 久久国产熟女影院| 久久人人爽av亚洲精品天堂桃色| 日本啊啊啊啊啊视频| 狼天天狼天天大香蕉| 国产高清成人传媒影视| 成人性爱高清视频免费看| 肉嘟嘟www视频在线观看高清| av一区二区三区四区| 亚洲做性| 校园春色宗合网| 欧日韩不卡视.频| 强奸a片网| 欧美日日操| 欧美成人A√在线一区二区| 九久久精| 国产白丝精品在线观看| 91爱网| 亚拍在线| 疯操AV| 2017大香蕉国产精品久久| 爽爽淫人网| 中文字幕在线日亚州9| 婷婷伊人綜合中文字幕小说| 超碰97在线 欧美 国产| 丝袜熟女2P| 蜜臀亚洲中文| 日本三级日本三级三级人妇四虎| 久jiu久神马影院| 熟妇熟女一区二三区| 操一区| 日产国产精品中文久久婷婷| 96久久科窝| 夜夜综合| 探花视频免费观看国产专区| 欧美A片中文字幕| 青草青草久热| 大鸡吧尹人在线| 夜夜嗨一区二区三区三州加勒比| 屁股久久久久久| 青青草导航在线视频| 岛国免费视频在线| 超碰99在线观看| 色呦呦、国产精品| 加勒比av网| 欧美一区二区三区不卡高清视频| 人妻AV 中文字幕的| 99精品人人爽| 亚洲春色一区二区三区| 9997se| 国产精品白领在线观看| 近亲乱伦一区二区| 2026国产精品视频| 日韩强奸av| 日本福利二区视频| 麻豆 美女 丝袜 人妻 中文| 黄片www.| 少妇高潮九九九九| 69精品少妇一区二区三区蜜桃| 亚洲欧洲第二视频在线观看色图| 韩国嫰模上门援交视频| 亚洲成人性爱在线观看| 亚洲AV乱码专区国产噜噜亚洲 | 国产白丝精品在线观看| 国产精品一区二区黄片| 超碰97最新人妻| 最近二区三区视频大全 | 97国产成人精品免费视频| 亚洲情色一区三区| 精品国产91内射久久| 国产精品午夜福利视频| 日本东京热加勒比久久| 午夜精品久久久久久久99| 黄色电影观看久久9| 熟女久久| 一区二区三区视频在线观看免费| 欧美成人精品一区二区男人蜜臀| 色嘟嘟人妻天堂网| 麻豆三极片| 日韩国产品视频中文字| 少妇人妻太紧太深av| 中文久久一区| 性综合网| 亚洲系列欧美| 午夜丁香| 高清无码在线播放网站| 欧美 亚洲精品首页| 色情综合| 91综合在线| 国产丰满少妇久久久精品影院| 99精品视频在线观看免费| 亚洲综合网91| 亚州Av天美传媒| 美女人妻色网站| 婷婷丁香熟妇综合网| 国产激情视频一区区三区| 国产毛片片精品天天看视频| 蜜桃视频精品一区二区三区| 777奇米影视777四色| 中文字幕欧美日韩三级| 九九热午夜欧亚国产视频| 日韩天堂av电影在线观看| 午夜高清成人在线视频| 亚洲男人综合| 亚洲欧美人妻| 精品人妻高清麻豆av| 日本有码影片下载 | 黄页18禁| 动漫片子网站3黄| 9 9精品一区二区三区| 黄色激情电影在线观看| 97国产|免费| 视频二区美腿丝袜制服人妻欧美| 日韩精品亚洲专区在线影视| 久久久久亚洲?V片无码V| 久久五月婷| 亚洲风情综合网| 激情婷婷丁香网| 夜夜免费视频| 97视频一区| 欧美视频一区二区三区| 美骚妇av高清在线| 日本二区不卡| 久久69| 亚洲欧美黄| 免费AV中文网在线观看| 日韩精品一区二区高清| 精品亚洲国产成人av网站| 亚洲超碰AV| 99热这里是精品| 亚洲骚女一区二区三区| 亚洲综合113页| 天美传媒av一区二区| 亚洲素人综合| 亚洲国产一级黄色视频| 日韩Va亚洲va欧美Ⅴa久久| 亚洲制服欧美另类内射| 日本人体九九九九九九| 亚洲AV资源| 98福利在线视频| 国产99999| av午夜影院在线播放| 717影院理论午夜伦八戒| 欧美日韩m| 天操老女人| 久久久久久日韩| 91久热| 91丝袜熟女| 国产福利合集| 婷婷丁香熟妇综合网| 97色诱| 夜夜欢天天干| 精品久久久亚洲AV成人网站| av情色影音| 欧美不在线| 女同性恋久久| 大色网久久| 超碰97在线色男人??| 思思热国产高清| 国产精品亚洲美女久久久久| 欧美78| 中文字幕AV乱伦| 9久综合网| 黑人精品欧美一区二区蜜桃| 成人三一级一片aaa| 超碰国产情侣自拍网| 俞拍久久国应视频| 韩国黄色片精品久久久| 熟妇一区,二区,三区。| 亚洲操逼无码| 欧美瑟综合| 国产第二页| 精品人妻一二三| 国产人妻精品久久久一区二区三区 | 欧美韩国你懂得在线| 成人av性爱电影在线观看| 亚洲情色电影网| 青青青青青手机视频| 久久婷婷视频| 91国模| 欧美亚洲激情小说| 无码动漫av中文字幕| 亚洲淫乱骚妇AV| 国产熟女完整版中字| 91n免费处女| 99精品无码| 人人操人人色网| 亚洲精品1区| 成年无码动漫av片无尽在线| 成熟熟女国产精品一区二区| 国内精品伊人久久久久影院会| 亚洲双插| 啊啊啊啊啊在线视频| 做爱A级亚欧| 96久久久久久久| 亚洲影院小综合| 亚洲性爱无码乱伦av| 亚洲毛片基地专区| 久9re热视频这里只有精品| 欧美少妇性乱| 夜夜操二区| 亚洲精品人妻在线| 啊啊啊不要嗯嗯在线观看| 久久久久成人蜜桃精品| Sekablack无码一区| 天天操天天插| 97资源久久| 99操| 精品国产乱码久久久| 人人天天干干| 国产日韩无码一区二区三区久久区| 91九色丰满高潮| 久久精品男人的天堂| 亚洲在线91| 久久直播国产| 不卡在线一区,精品一区二区三区中| 国产无遮挡| 综合熟妇一区二区三区| 中英熟女操女| 久色网| 日韩操呦呦影院在线观看| 999岛国大片| 久久精品国产亚洲AV嘿嘿| 欧美性爱在线无码| 日本五十路在线| 91久久| 五月激情视频| 很很很很操| 国产精品久久久三级无码| 日本欧美一区二区三区视频麻豆| 亚洲美女精品| 欧美 传媒 麻豆 日韩 偷拍| 中日韩欧美精品无码AⅤ一区二区| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 精品亚洲天堂| 日韩欧美性吧婷婷乱伦大香蕉| 一区二区三区免费视频入口| 亚洲情色一区二区三区| 偷拍99| 国产伦精品免编号公布| 欧美欧美啪啪视频| 亚洲第一二区另类图| 超碰午夜在线| 久久久久久无码人妻中文字幕| 美女91色黄18| 亚欧美色| 十八禁的黄污污免费网站| 综合欧美日韩在线观看| 日本免费中文字幕在线| 日本网色| 操逼精品视频| 亚洲情色综合网| 综合网亚洲| 亚州免费啪啪视频| 亚洲 欧美 中文 日韩超碰| 美女主播色欲91抠b在线播放| 97就爱干| 成人五级久久| 五月丁香色综合| 欧美大战久久久伊人| 97天堂| 亚洲欧美日韩精品久久久一区二区| 国产又粗又又黄又猛| 加勒比AV天堂| 福利社区午夜一区二区| 5278欧美一区二区三区| 久久婷婷在线观看视频| 日韩精品午夜操呦呦不卡影院| 在线人成亚洲视频免费观看| 欧美色图天堂在线| 丝袜美腿91| 国产精品探花视频| 欧美在线 亚洲| 精品日韩中文在线| 东北女人的毛片| 亚洲国产成人7777| 日韩 人妻 精品| 操逼网站网站| 99热超碰在线| 神马久久久久久| 91是天天| 老司机深夜18禁污污网站| 久久精品亚洲婷婷| 无遮挡又黄又刺激的视频| 射 色综合| 在线日韩精品一区二区三区| 超碰激情808| 久久透逼视频| 青青伊人这里只有精品| 亚州免费啪啪视频| 亭亭丁香激情| 黄色AAAAA欧美| 丝袜色综合| 天天躁日日躁AAAAXXXX国产| 国产亚洲日本| 开心五月天激情网| 青草精品视频一日本久久久久网站| 99热99色| 青娱乐福利99| 欧美色吧综合| 性色乱AV一区二区| 激情无码日韩| 色图综合网| 天美传媒av一区二区| 日本狠狠干| 日韩乱伦AⅤ| 欧美少妇高潮| 亚洲天堂人人妻| 久久9视频| 约操熟妇| 一级二级在线观看| 99热在线只有精品| 欧美日韩电影一区二区| 色五月综合| 国产福利在线视频网站| 日本操逼视频在线| 婷婷8月天青娱乐| 麻豆美女丝袜人妻中文| 夜夜操91744565| 丁香九月激情| 亚洲欧美国产其他二区| 操操操五月天婷婷丁香影院| 97久久超碰日韩精品| 日本高清加勒比| 九九黄色网| 一区在线观看中文字幕| 久操网无码在线| 操操逼视频| TS人妖另类精品视频系列| 日韩欧视频| 亚洲国产97在线精品一区| 97公开久久| 四虎免费看黄| 天天超级碰碰碰| 99热精品国产| 日本大香蕉| 97日视频| 久久97超碰香蕉| 999九九九九国产动| 欧美九一精品久久久熟妇| 伊人991| 亚洲一二三精品久久网| 久久超碰免费的| 绑缚麻绳人妻寝取完整版| 日韩久久艹| 日韩精品高清资源在线| 青青操在线亚洲视频观看欧美在线 | 国产精品电| 一区二区三区精品黑丝白丝酒店对鸡 | 99热色这里只有精品| av东京热男人的天堂| 亚洲国产一级黄色视频| 美女诱惑在线一区| 0755午夜福利视频| 操国产逼| 一区二区 日韩 欧美 国产 传媒| 伦理第一页| 99热综合| 夜夜爽夜夜操| 欧美图片偷拍| 亚洲人久久久久日| 色婷婷六月| 欧姜老司机| 九九热精品在线| 伊人热综合| A 天堂| 26uuu国产亚洲综合| 翔田千里A片一区二区| 色欲久久99精品久久| 欧美色图片欧美色图| 国产精品伦理| 最新av中文字幕高清| 亚洲图片欧洲图片aⅴ| 精品久久人妻成人网| 久久综合激情| 久久久久久久久久久久久久久性生活视频 | 日产欧美电影一区二区三区| 午夜理论片在线观看免费| 五月丁香啪啪| 久艹伊人精品综合在线| 夜夜国自区| 黄色大片视频在线免费看| A 在线网址| 啪啪综合网| 婷婷色网| 日韩色| 亚洲 欧美 手机在线观看| 国产亚洲99久久精品| 亚洲成人一二三区| 久久精品区| 激情综合网五月婷婷五月天| 欧美亚洲日韩人妻在线观看| 亚洲男人久久综合天堂| 最近的最新的中文字幕视频| 国产免费内射视频| 蜜桃久久久久久久| 日韩欧美tv一区二区在线观看| 欧美另类自拍 | 日韩成人大片一区二区| 日韩欧美女求操每天更新| 日本久久久久久久久| 五码视频在线观看| 黑丝制服中文字幕| 狠狠躁AV| 国产精品视频一区二区三区八戒| 9丨久久九九九 | 欧美色图片色哟哟| 中文字幕在线观看第二页| 国产成人免费观看在线视频| 欧美天天综合网| 91欧美性| 国模限制级电影| 综合欧美激情网| 久久久久九九九| 制服丝袜第二页| 大香蕉伊人亚洲| 亚洲高清无码免费观看视频| 最新av中文字幕高清| 97看操| 久久久一级| 无码乱人伦中文视频| 日本孕妇一区二区视频操逼免费看| 台湾佬中文娱乐网久久久久久久久久com| 亚洲夜色在线| 激情五月天网| AV污污污污| 人人贴人人摸| 欧美日韩另类在线| 成人免费视瓶| 九九九热| 日韩中文字墓| 少妇综合| 97av在线观看| 国产成人五月天丁香花| 久久老女人| 另类小说综合网| 尤物一级在线免费观看| 91大学精品激情戏| 超碰综合色| 试看60秒| 丰满人妻被猛烈进入中| 中国东北熟女老太婆内谢| 欧美在线永久天堂| 欧美综合娱乐久久| 18禁超污无遮挡无码免费网| 全球成人中文在线| 综合网色| 久久手机视直播| 91精品成人| 久久久三区二区一区| 免费视频观看60秒| 国产乱伦搜索结果91P| 日韩草久视频| 一区操逼| 中文字幕丝袜国产第一页不卡| 999久久久九九九九| 亚洲电影91| 亚洲日韩久久精品一区| 南澳成人一级片在线播放| 欧美亚洲今日在线| 国产乱伦性爱区| 国产精品久久久久中文字幕| 五月天大香蕉| 按摩中文字幕| 日本五区不卡| 久久系列| 国产精品内射婷婷一级二| 亚洲一区日韩精品中文字幕| 2020中文在线一区二区三区| 校园激情狠狠四射| 精品国产乱码久久久久久久久1 | 51一区二区三区| 少妇贴图| 中文字幕 国产区| 色婷婷一区二区三区久久午夜成人不| 人妻中文字幕精品无码| 久久↗↗| 国产污视频麻豆传媒一区二区| 日韩精品电影| 中国少妇啪啪视频| а√天堂资源官网在线资源| 国产精品制服丝袜清纯唯美 | 9999九九九久久久| 欧洲Au麻豆| 国产精品免费1区2区视频| 91动漫操逼视频| 99青草| 欧洲在线性爱视频| 一区二区三区国产精产| 13小男生GAY自慰脱裤子| 91欧美美女日韩国产婷婷| 色欲无码人妻日韩欧美精品| 97精品在线| 久久精品99| 3PAV乱伦视频| 天天激色| 人妻丝袜无 码视频专区| av黄图片在线观看| 久久久99999久网站| 成视频在线观看免费看| 好吊色综合| 五月天九九日国产精品一区二区三区| 国产精品播放| 欧美92| 超碰色美女| 国产视频一区二区在线观看| 九九热re99re6在线精品| 老鸭窝亚洲毛片| 欧美狠狠弄| 91欧美网| 中文字幕一区av| www欧美91| 人妻激情偷乱视频一区二区三区| 精品国产乱码久久久A| 激情五月婷| 亚洲se91| 好湿好紧好爽 视频| 亚洲精品天堂久久A∨51成人漫| 精品无码一区二区| 91人妻做a观看视频| 一区二区亚州激情久婷婷欧美| 国语国产操逼伊人AV网| 久久一区二区蜜桃| 久久五月份| 欧美伦乱爱| 亚洲国产福利视频| 高清孕妇孕交 交| 日韩国产十八禁| 亚洲少妇在线影音| 大乔未久88一区| 综合久久2017| 91色色色| 玖玖大干人妻| 国产18精品亚洲精品| 91在线免费观看处女| 天堂成人网| 婷婷色中文字幕| 加勒比性爱成人在线| 国产欧美精选自拍一区| 欧美性暴力猛交XXXX| 国内亚洲高清无码| 哈哈操电影AV| 国产91精品在线免费| 精品视频日日夜夜| 日韩欧美加勒比| 国产视频三区四区| 欧美资源| 国产suv精品一区二区四区999| 97免费在线观看| 人妻少妇蜜桃视频欧美一区| 男人天堂网站| 熟妇熟女一区二三区| 中国操逼无码| 青青国产在线拍揄自揄拍| 国产精品亚洲无码| 一二三四视频在线社区中文字幕| 国模不卡| 91色欧美| 小草精彩毛片| 日韩在线欧美精品一区二区| 五十路熟女工口 | 欧美亚州综合网图片| 激情视频网址| 亚洲综合91| 国产SV一线| 日韩乱中文 | 蜜臀亚洲中文| 亚洲精品国语在线播放| 国产熟妇一区二区| 久久精品国产72国产精品福利| 97在线视频免费看| 中文字幕一区二区三区视频播放| 亚洲熟妇A V黑人| 亚洲情色1区| 伊人网综合在线视频| 久久超碰天天| 亚洲AV乱码专区国产噜噜亚洲| 成人26uuu| 十八禁电影伊人网| 五月天激情网站| 日韩欧亚太美不卡| 黄色片一区二区三区四区五区| 亚洲精品人伦一区二区| 伊人久久婷婷| 舔足天天操天天射| 97色97好| 亚洲操逼网| 三级日韩一区二区三区| 男人天堂网手机版婷婷| 玖玖人人爱| 激情综合二| 久久久久久久性爱| 日本999精品| 久久久婷| 一起草欧美| 无码人妻一区二区三区四区老鸭窝| 成人熟女视频一区二区三区| 插欧洲美女欧美精品| 天天影视色香欲综合网小说| 小草av不卡亚洲二区 | 日韩人妻丝袜中文字幕| 一直超碰| 综合色图亚洲欧美| 97欧美性爱| 亚洲 暴爽 AV人人爽日日碰| 蜜臀va69| 日日干男人的天堂| 日韩av不卡在线观看| 放黄片放3级黄片没穿衣服| 97热视频在线观看| 中文字幕丝袜美腿| 操逼日韩无码| 黄骗免费| 一个色导综合| 91性片| 97欧美色| 国产熟女精品区| 91精品电影18| 婷婷中文字幕| 亚州操逼网| 韩国黄片aaaa| 欧美性生活男人的天堂| 青青久久艹| 大香蕉2017| 欧亚揄拍偷拍精品视频| 成人色女网| 大胆91| 五月丁香啪| 五月婷婷爱六月丁香色| 亚洲AV无码黄色强奸| 国产乱色国产精品免费视| 91丝袜在线观看| 天天久久| 超碰美国| 97免费视频在线| 欧日韩一二三f区| 蜜桃视频啊啊啊啊| 91色堂| 日本一久是| 天天综合网~91综合网| 一直超碰| 人妻熟女一区二区三区在线| 欧美综合第一| 九月AV| 国产欧美伊人| 性欧美另类高清| 少妇二级| 蜜臀99精品国产高清在线观看| 99热国产| 五月天人妻综合| 60秒免费视频| 日日干夜夜骑| 天堂精品| 欧美情色贴图| 色偷综合| 久久婷婷一区| 99热一区二区三区四区| 91 偷| 日韩免费中文字幕视频| www.91逼逼.com| a在线视频免费观看| 国产精品老熟女一区二区| 欧美日韩黄色片一区二区三区四区人与兽做爱| 殴洲老熟女| 亚洲综人网| 久久午夜色播影院免费高清| 国产无码精品高清| 被体育老师抱着c到高潮| 丁香六月婷婷久久综合| 78久久久| 智利AV在线网| 天天色综合影视网| 天天综合网91| 欧美日韩欧美| 绯色一区二区三区不卡少妇| 国产v片在线免费观看| 国产Aα| 黄aaaaaaaaaaaaaaaaaa色网站| 最新日韩黄片| 骚逼高潮久久精品| 伊人国产av| 中文一区在线日| 亚洲综合69| 国内精品99999| 国产精品内射婷婷一级二| 中国大陆国产高清AⅤ毛片| 国产激情在线| 久草精品热视| 东北女人操比视频| 嗯嗯不要 视频| 91丝袜| 人人操人人摸人人看人人插| 久久久久久AV无码免费网站| 色5月婷婷| 操香逼| 综合情欲网| 9I1性色影院| www.亚洲黄色| 国产热RE99久久6国产精品首| 超碰日本97美女人妻人人玩人人爱| 蜜臀99999| 欧美丝袜美女电影一二三四区| 日本女人久久久| 精品国产一区二区三区香蕉欧美| 18禁美女裸体无遮挡啪啪| 亚洲免费人妻在| 日本午夜福利视频| 91久热| 大香蕉黄色一级片免费看| 午夜男女爽爽爽在线视频| 深夜啪啪啪视频免费| 操淫穴亚洲五月丁香| 丝袜美腿av女优在线| 岛国大片在线观看网站入口| 97人肏| 秘书高跟黑色丝袜国产91在线| 日韩av电影成人在线| 97久久视频| 91强在线播放| www久久国产精品| 91天堂色男人的天堂| 中文字幕加勒比海高清无码免费视频| 久久天堂网| 中国一级操逼视频| 美女露胸露尿口| 后入精品| 婷婷激情五月天小说网| 熟妇熟女一区二三区| 男女国产精品| www.av在线观看| 69视频福利导航| 九九九九热| 九九性视频| 亚洲丰满很很操| 日韩精品一区二区日韩| 色女综合| 超碰碰97资源站| 亚洲精品亚洲人成人网| 91 国产丝袜在线播放-百度| 亚洲欧美在线观看无码| 三级片大波波| 女性91网站| 熟妇熟女亚洲天堂网| 91亚洲欧美| 丝袜性亚洲| 欧美日韩性爱电影在线| 91激情网| 国产亚洲色婷婷久久99精品91葵花宝典| 欧美人妻久久精品二区三区| 婷婷美人网| 免费作爱一级视频| 精品制服美女中文一区二区三区| 日韩性爱小视频在线观看| 无码人妻毛片丰满熟妇精品区| 激情五月天丁香社区| 小电影欧美91| 日本人体九九九九九九| 秋霞Av理论一级在线| 97 视频在线| 日韩人妻播放| 91久热| 加勒比无码一区二区三区| 日韩性爱小视频| 亚洲在高跟鞋自慰久久在色线| www.久久最新地址| 亚洲欧美天| 日本一区三级韩国| 欧美的性爱网站免费| 操少妞在线视频| 天天插天天射| 国产精品白丝在线播放| 男人的天堂在线| 激情看片网站| 久久精品国产亚洲AV先锋| 亚洲少妇色图自慰直播| 亚洲色图欧美视频| 92一区二区| 日日夜夜噜| 久久久国产三级黄色片| 农村女一级毛卡片| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 黄色操人| 国产精品久久久午夜夜伦鲁鲁| 偷拍 亚洲| 天天干夜夜一操| 色欲av国内精品久久久久久| 国产成人主播| 日本99热| 秋霞成人做爱| 欧美性爱超碰97| 加勒比日本在线| 97五月天| 色官网色综合| 男人的天堂2018| 中文日韩欧美熟| 蜜桃久久久久久久| 欧美丰满熟妇XXXX性ppX人交| 亚洲中文字幕熟女| 男人天堂最新手机版在线青青草| 欧美在线伊人色| av在线资源| 久久黄色视频一区二区三区| 人人妻人人澡人人爽久久av| 日韩电影天堂视频一区二区| 六九九九| ?亚洲伊人伊成久久人综合网| 中文AV制服乱伦| 熟女熟妇一区二区三四区| 麻豆成人av| 久久伊人在线五区| 日本福利二区视频| A 在线网址| 丁香婷婷五月| 欧美偷拍| 丝袜视频网国产90| 日韩欧美偷拍美女视频| 91肏屄网| 激情第四色| 免费看久久久性性| 亚洲免费成人在线高清无码视频 | 免费草草草草草视频| 国产白嫩精品久久| 天天爽爽爽爽| 免费人成?大片在线播放| 国产日韩在线播放av| 国产精品又黄又猛又粗| 精品天堂| 老熟女综合网| 久久精品综合| 人妻熟女一区二区| 国产白领连续中出在线播放| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 久久久九九| 欧美影音在线| 先锋音影AV| 色欲人妻一区二区在线| 用力操死我| 91美腿丝袜在线观看| 日韩天美| 狠狠欧美| 亚洲 图片 综合91| 久久乐| 91校园春色长篇| 激情深爱五月天| 精品国产精品一区二区| 在线国产一区二区av| 婷婷丁香五月天亚洲天堂网| 日本天天操| 久久性爱网站| 亚洲女毛多水多21P| 精品黑人一区二区| 天天操天天舔| 成人电影一区| 久久精品小视频| 国产一区96在线| 色嘟嘟人妻天堂网| 欧美78p| 麻豆区99999| 精品十三区| 日韩欧美水蜜桃人妻| 国产免费一区| av日韩中文字幕| 婷婷丁香人妻 | 中文字幕丝袜| 啊啊啊啊啊啊好多水| 欧美一区二区三区不卡高清视频| 十八禁啪啪视频| 国产日韩手机视频在线| 亚洲免费成人在线高清无码视频| 免费一级黄色录像影片| AV网站高清无码在线观看| 秋霞免费AV| 久热99| 日韩欧美成人大香蕉| 熟妇高潮一区二| 色哟哟AV| 友优传媒精品在线一区二区| 久久久久9999| 日韩精品在线观看观看| aaaa黄片| 男人的天堂亚洲| 天天碰操中国年青熟妇| 亚洲熟女乱综合一区二区三区| 欧美日韩精品青青| 亚洲天天更新| 欧美不卡在线一区二区| 99精品欧美一区二区三区桃色| 国产精品无码AV网站| 懂色AV一区二区三区| 无码视频一区二区| 久久这里只精品99re66图| 美女91色黄18| 久久东京热久久| 一级二级三级黑人无码| 在线观看综合精品亚洲| 欧美午夜精品久久久久久超碰| 久久超碰免费的| 五月天人妻综合| 中文字幕天堂在线| 玖玖爱免费观看视频| 亚洲天堂综合AV| 是还免费视频1727我|