久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

端到端測(cè)試實(shí)戰(zhàn):從環(huán)境搭建到CI流水線的完整指南

端到端測(cè)試實(shí)戰(zhàn):從環(huán)境搭建到CI流水線的完整指南 1. 端到端測(cè)試到底在測(cè)什么先說(shuō)結(jié)論e2eend-to-end這個(gè)縮寫(xiě)在我這個(gè)崗位每天都會(huì)出現(xiàn)它不是某個(gè)工具的名字而是一整套測(cè)試思路——把整個(gè)系統(tǒng)當(dāng)成一個(gè)黑盒從用戶視角走完一條完整的業(yè)務(wù)鏈路驗(yàn)證用戶能做的事情系統(tǒng)真的能讓他做成。舉個(gè)最直白的例子。你做一個(gè)電商網(wǎng)站單元測(cè)試只驗(yàn)證購(gòu)物車(chē)加一件商品后數(shù)量從0變成1接口測(cè)試只驗(yàn)證POST /cart 返回200。但用戶不會(huì)關(guān)心這些用戶關(guān)心的是打開(kāi)首頁(yè)、搜商品、點(diǎn)加入購(gòu)物車(chē)、去結(jié)算、填地址、付款——這一串動(dòng)作能不能流暢走通。這個(gè)過(guò)程里任何一個(gè)環(huán)節(jié)出問(wèn)題哪怕中間十個(gè)接口都返回正常用戶層面最終就是買(mǎi)不了東西。e2e測(cè)的就是這條完整鏈路。我剛工作那兩年也不太理解為什么要單獨(dú)搞e2e總覺(jué)得單元測(cè)試和接口測(cè)試覆蓋率夠了就萬(wàn)事大吉。后來(lái)線上出過(guò)一次事故下單接口返回成功但前端跳轉(zhuǎn)支付頁(yè)的時(shí)候因?yàn)橐粋€(gè)字段名對(duì)不上頁(yè)面白屏。接口測(cè)試和單測(cè)全綠用戶就是付不了錢(qián)。那次之后我徹底想明白了測(cè)試金字塔再漂亮缺了e2e這層你永遠(yuǎn)不知道拼起來(lái)之后系統(tǒng)到底能不能用。這篇文章我用實(shí)際項(xiàng)目里的經(jīng)驗(yàn)把e2e從環(huán)境搭建、用例設(shè)計(jì)、執(zhí)行策略到問(wèn)題排查完整拆一遍。適合剛接觸e2e的測(cè)試開(kāi)發(fā)也適合寫(xiě)了幾年e2e但總覺(jué)得用例跑不穩(wěn)的同學(xué)對(duì)照參考。2. 環(huán)境準(zhǔn)備工具選型和profile1配置的來(lái)龍去脈2.1 測(cè)試框架選型別盲目追新e2e的工具生態(tài)這幾年變化很快。老牌的Selenium還在但它走的是WebDriver協(xié)議啟動(dòng)瀏覽器、執(zhí)行命令的鏈路很長(zhǎng)跑起來(lái)慢而且對(duì)現(xiàn)代前端框架里那種動(dòng)態(tài)DOM的兼容性越來(lái)越吃力。Cypress當(dāng)年很火把執(zhí)行環(huán)境從瀏覽器外面挪到瀏覽器內(nèi)部速度確實(shí)快了一個(gè)量級(jí)但它有個(gè)天然的短板只能在Chromium系跑多瀏覽器覆蓋不方便而且它對(duì)多標(biāo)簽頁(yè)、跨域場(chǎng)景支持得很別扭。目前我主推Playwright。它是微軟開(kāi)源的項(xiàng)目底層走的是CDPChrome DevTools Protocol啟動(dòng)速度和執(zhí)行穩(wěn)定性比Selenium強(qiáng)太多API設(shè)計(jì)上對(duì)等待策略做了內(nèi)置處理能自動(dòng)等元素可見(jiàn)、可點(diǎn)、可操作一個(gè)腳本能同時(shí)控Chromium、Firefox、WebKit三種內(nèi)核對(duì)用戶可能用不同瀏覽器訪問(wèn)這個(gè)場(chǎng)景覆蓋得最省力。工具選型這件事我不建議糾結(jié)太久記住一個(gè)原則有長(zhǎng)期維護(hù)、社區(qū)活躍、API設(shè)計(jì)符合直覺(jué)、能覆蓋你的目標(biāo)瀏覽器。目前Playwright在這幾個(gè)維度上都是最優(yōu)解。2.2 e2e profile1是什么意思很多項(xiàng)目中你都會(huì)看到測(cè)試配置文件帶profile字樣的命名比如profile1其實(shí)就是一套端到端測(cè)試的崗位職責(zé)配置文件。不同項(xiàng)目叫法不太一樣有的叫env有的叫config有的叫profile。核心作用只有一個(gè)把跑哪套環(huán)境、連哪個(gè)服務(wù)、用哪組賬號(hào)、跑哪些用例這些決定測(cè)試行為的參數(shù)從代碼里抽離出來(lái)單獨(dú)管理。我習(xí)慣這樣組織profile1對(duì)應(yīng)默認(rèn)的本地開(kāi)發(fā)和測(cè)試環(huán)境localhost 測(cè)試庫(kù) 測(cè)試賬號(hào)組profile2對(duì)應(yīng)預(yù)發(fā)布環(huán)境staging 預(yù)發(fā)布庫(kù) 隔離賬號(hào)組profile3對(duì)應(yīng)生產(chǎn)驗(yàn)證環(huán)境灰度域名 只讀賬號(hào) 核心鏈路用例這樣做的原因很樸素一套測(cè)試腳本如果能同時(shí)適配多套環(huán)境那它就是可復(fù)用的資產(chǎn)而不是一次性腳本。你想想開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境、預(yù)發(fā)布環(huán)境、生產(chǎn)環(huán)境本質(zhì)上是同一套業(yè)務(wù)代碼跑在不同配置下沒(méi)理由每次換環(huán)境就重寫(xiě)一遍測(cè)試。2.3 項(xiàng)目目錄結(jié)構(gòu)和基礎(chǔ)配置先看一個(gè)我常用的項(xiàng)目初始化結(jié)構(gòu)e2e-project/ ├── package.json ├── playwright.config.ts ├── profiles/ │ ├── profile1.json │ ├── profile2.json └── tests/ ├── auth.spec.ts ├── order.spec.ts └── payment.spec.tspackage.json里需要裝的東西很少核心就一個(gè)npm init -y npm install -D playwright/test npx playwright installnpx playwright install這條命令會(huì)把三個(gè)內(nèi)核的瀏覽器二進(jìn)制下載到本地這一步在國(guó)內(nèi)網(wǎng)絡(luò)環(huán)境下有時(shí)候比較慢建議提前配好鏡像源或者手動(dòng)下載瀏覽器包放到緩存目錄能省不少時(shí)間。然后是配置文件核心部分// playwright.config.ts import { defineConfig, devices } from playwright/test; import profile1 from ./profiles/profile1.json; export default defineConfig({ testDir: ./tests, timeout: 60000, retries: 1, use: { baseURL: profile1.baseURL, trace: retain-on-failure, video: on-first-retry, }, projects: [ { name: chromium, use: { ...devices[Desktop Chrome] }, }, ], });這里最關(guān)鍵的是讀取了profile1.json里的baseURL整個(gè)測(cè)試套件跑哪套環(huán)境完全由profile文件決定改測(cè)試代碼的頻次大大降低。3. 用例設(shè)計(jì)思路從業(yè)務(wù)鏈路反推測(cè)試步驟3.1 用戶旅程優(yōu)先e2e用例設(shè)計(jì)的最大誤區(qū)是照著接口文檔一個(gè)個(gè)點(diǎn)頁(yè)面。真正有效的做法是先從業(yè)務(wù)價(jià)值出發(fā)把用戶最常走的路徑列出來(lái)然后逐個(gè)覆蓋。以電商系統(tǒng)為例最高優(yōu)先級(jí)的用戶旅程有幾條登錄 - 搜索商品 - 加購(gòu)物車(chē) - 結(jié)算 - 下單成功登錄 - 領(lǐng)取優(yōu)惠券 - 結(jié)算時(shí)校驗(yàn)價(jià)格 - 支付 - 訂單狀態(tài)更新未登錄 - 瀏覽商品 - 加購(gòu)物車(chē) - 結(jié)算時(shí)引導(dǎo)登錄 - 登錄后訂單鏈路繼續(xù)這三條鏈路的共同點(diǎn)是每一步都依賴上一步成功任一處斷裂用戶行為就終止了。e2e的價(jià)值恰恰在于驗(yàn)證這種連續(xù)依賴。設(shè)計(jì)用例的時(shí)候我習(xí)慣先畫(huà)一條業(yè)務(wù)時(shí)序然后確認(rèn)每一步的頁(yè)面入口和斷言點(diǎn)。比如登錄后用戶名出現(xiàn)在頁(yè)面右上角是斷言點(diǎn)搜索結(jié)果的第一個(gè)商品標(biāo)題包含關(guān)鍵詞也是斷言點(diǎn)。斷言點(diǎn)不一定要多但必須要能證明這一步真的成功。3.2 用例數(shù)量控制不是越多越好很多人一上來(lái)就寫(xiě)幾百條e2e用例跑一遍一兩個(gè)小時(shí)結(jié)果每天光排查flaky就花掉半天。e2e用例的定位是核心鏈路守門(mén)員不是全功能覆蓋者。全功能覆蓋應(yīng)該由單元測(cè)試和接口測(cè)試去完成。我個(gè)人的經(jīng)驗(yàn)是一個(gè)中等復(fù)雜度的后端系統(tǒng)e2e用例控制在30到50條比較合理。每條用例對(duì)應(yīng)一條關(guān)鍵用戶旅程或者一個(gè)核心業(yè)務(wù)規(guī)則。如果用例數(shù)量超過(guò)100條先看看是不是把本該在接口層測(cè)的東西寫(xiě)到了e2e里。3.3 數(shù)據(jù)準(zhǔn)備與清理策略e2e測(cè)試最頭疼的問(wèn)題是數(shù)據(jù)。測(cè)試環(huán)境的數(shù)據(jù)總量、污染程度、并發(fā)隔離方式直接決定了用例的穩(wěn)定性。我的做法是優(yōu)先用測(cè)試框架的API造數(shù)據(jù)不要通過(guò)UI一步步創(chuàng)建。比如注冊(cè)用戶這個(gè)前置條件直接調(diào)后端的注冊(cè)接口生成賬號(hào)比用UI跑一遍注冊(cè)流程快得多也省去UI注冊(cè)時(shí)的驗(yàn)證碼、短信等干擾。用例之間隔離每個(gè)用例盡量使用獨(dú)立數(shù)據(jù)。比如下單用例每次生成一個(gè)新的隨機(jī)手機(jī)號(hào)作為登錄賬號(hào)避免上一個(gè)用例殘留的訂單數(shù)據(jù)影響下一個(gè)用例。測(cè)試數(shù)據(jù)清理跑完用例后把創(chuàng)建的數(shù)據(jù)在teardown里清理掉。如果清理成本高至少保證測(cè)試數(shù)據(jù)有統(tǒng)一前綴便于定期批量清理。4. 從零寫(xiě)一條完整的e2e用例4.1 登錄注冊(cè)模塊的e2e實(shí)戰(zhàn)我拿注冊(cè) 登錄這條鏈路來(lái)演示完整寫(xiě)法。注冊(cè)登錄是幾乎所有系統(tǒng)的入口也是e2e里最容易出現(xiàn)理解偏差的模塊——很多人把它當(dāng)兩個(gè)用例寫(xiě)其實(shí)從用戶視角來(lái)看注冊(cè)完之后自動(dòng)登錄這是一條連續(xù)旅程。import { test, expect } from playwright/test; test(新用戶注冊(cè)后自動(dòng)登錄并進(jìn)入首頁(yè), async ({ page }) { // 生成唯一手機(jī)號(hào)保證每次運(yùn)行不會(huì)撞庫(kù) const timestamp Date.now(); const phone 138${String(timestamp).slice(-8)}; const password Test12345; // 打開(kāi)注冊(cè)頁(yè)面 await page.goto(/register); // 填寫(xiě)注冊(cè)表單 await page.getByLabel(手機(jī)號(hào)).fill(phone); await page.getByLabel(設(shè)置密碼).fill(password); await page.getByLabel(確認(rèn)密碼).fill(password); // 提交注冊(cè) await page.getByRole(button, { name: 注冊(cè) }).click(); // 關(guān)鍵斷言注冊(cè)成功后應(yīng)自動(dòng)登錄并跳轉(zhuǎn)首頁(yè) await expect(page).toHaveURL(/\/home/); // 斷言登錄態(tài)右上角出現(xiàn)用戶昵稱(chēng)或手機(jī)號(hào)掩碼 const userMenu page.getByTestId(user-menu); await expect(userMenu).toBeVisible(); await expect(userMenu).toContainText(phone.slice(0, 3) ****); });這里有幾個(gè)細(xì)節(jié)值得展開(kāi)說(shuō)。手機(jī)號(hào)用時(shí)間戳生成是為了防止測(cè)試環(huán)境里出現(xiàn)重復(fù)賬號(hào)如果不用時(shí)間戳第二次跑同一個(gè)用例就會(huì)遇到手機(jī)號(hào)已注冊(cè)的異常用例直接失敗但這不是被測(cè)系統(tǒng)的bug是測(cè)試代碼自己的問(wèn)題。這類(lèi)問(wèn)題統(tǒng)稱(chēng)為測(cè)試自身不穩(wěn)定因素要在設(shè)計(jì)階段就規(guī)避掉。getByLabel、getByRole、getByTestId這些是Playwright推薦的定位API優(yōu)先于className和id選擇器。原因在于className和id是前端代碼的實(shí)現(xiàn)細(xì)節(jié)重構(gòu)時(shí)很容易變而label、role、testid這些相對(duì)更接近用戶可見(jiàn)的語(yǔ)義穩(wěn)定性要好很多。我見(jiàn)過(guò)太多項(xiàng)目因?yàn)榍岸税杨?lèi)名從btn-login改成了login-button結(jié)果整個(gè)e2e套件紅一片。用語(yǔ)義化定位器之后這種情況基本絕跡。4.2 電商下單全流程用例下單鏈路是e2e中最能體現(xiàn)端到端價(jià)值的場(chǎng)景。這里要覆蓋搜索、加購(gòu)、購(gòu)物車(chē)校驗(yàn)、結(jié)算、支付回調(diào)、訂單生成一整串流程。test(用戶購(gòu)買(mǎi)商品后訂單狀態(tài)為待支付, async ({ page }) { // 登錄這里直接調(diào)用接口造數(shù)據(jù)不走UI const phone 13800000001; await page.request.post(/api/auth/login, { data: { phone, password: Test12345 }, }); // 進(jìn)入首頁(yè)搜索商品 await page.goto(/); await page.getByPlaceholder(搜索商品).fill(無(wú)線耳機(jī)); await page.keyboard.press(Enter); // 第一個(gè)搜索結(jié)果點(diǎn)擊進(jìn)入詳情 const firstItem page.locator(.product-list-item).first(); await firstItem.click(); // 詳情頁(yè)加購(gòu) await page.getByRole(button, { name: 加入購(gòu)物車(chē) }).click(); // 去購(gòu)物車(chē)頁(yè)結(jié)算 await page.goto(/cart); await expect(page.getByText(無(wú)線耳機(jī))).toBeVisible(); await page.getByRole(button, { name: 去結(jié)算 }).click(); // 結(jié)算頁(yè)確認(rèn)訂單 await page.getByRole(button, { name: 提交訂單 }).click(); // 跳轉(zhuǎn)支付頁(yè)驗(yàn)證訂單號(hào)存在 await expect(page).toHaveURL(/\/payment/); const orderNo await page.locator(.order-no).innerText(); expect(orderNo.length).toBeGreaterThan(0); });這條用例我特意把登錄前置到api層理由很簡(jiǎn)單登錄本身不是這條用例的測(cè)試目標(biāo)下單才是。如果讓每條下單用例都先走一遍UI登錄不但拖慢執(zhí)行時(shí)間還會(huì)因?yàn)榈卿浤K的偶發(fā)問(wèn)題污染其他模塊的測(cè)試結(jié)果。e2e的粒度要遵循只測(cè)這條鏈路應(yīng)該測(cè)的東西這個(gè)原則。4.3 踩過(guò)的坑選擇器、等待和斷言時(shí)機(jī)寫(xiě)e2e必然會(huì)遇到三個(gè)經(jīng)典問(wèn)題。第一個(gè)是選擇器不穩(wěn)定。我剛才一直強(qiáng)調(diào)語(yǔ)義化定位器但這還不夠。很多現(xiàn)代前端框架比如Vue、React渲染是異步的數(shù)據(jù)加載中頁(yè)面先顯示骨架屏數(shù)據(jù)到了之后才渲染真實(shí)內(nèi)容。如果在骨架屏階段就去定位元素大概率會(huì)失敗。Playwright的自動(dòng)等待機(jī)制解決了一部分問(wèn)題但仍要養(yǎng)成習(xí)慣關(guān)鍵交互前先斷言前置條件比如等加載完成標(biāo)識(shí)出現(xiàn)再點(diǎn)擊按鈕。第二個(gè)是等待策略。不要用硬編碼的sleep比如page.waitForTimeout(3000)。這類(lèi)寫(xiě)法是flaky用例的最大源頭——這3秒在網(wǎng)絡(luò)快的時(shí)候是浪費(fèi)在網(wǎng)絡(luò)慢的時(shí)候還不夠。正確做法是等待某個(gè)期望狀態(tài)出現(xiàn)Playwright里就是await expect(locator).toBeVisible()這類(lèi)斷言式等待它會(huì)在元素滿足條件時(shí)立刻返回不滿足時(shí)一直重試直到超時(shí)。這套機(jī)制比固定等待穩(wěn)得多。第三個(gè)是斷言時(shí)機(jī)。很多新手在頁(yè)面跳轉(zhuǎn)后立刻斷言URL但跳轉(zhuǎn)過(guò)程可能還在路由切換中斷言太早就會(huì)失敗。正確做法是先斷言一個(gè)目標(biāo)頁(yè)面特有的元素再斷言URL。比如跳轉(zhuǎn)支付頁(yè)后先等支付金額這個(gè)元素可見(jiàn)再校驗(yàn)URL里有沒(méi)有payment字段順序別反過(guò)來(lái)。5. 執(zhí)行策略從本地調(diào)試到CI流水線5.1 本地運(yùn)行 Debug 模式不直接跑全量我在本地開(kāi)發(fā)時(shí)很少一上來(lái)就跑全量測(cè)試那樣效率極低。Playwright提供了headed模式和調(diào)試模式我會(huì)先用--headed跑一條單用例肉眼確認(rèn)頁(yè)面行為對(duì)得上預(yù)期。如果中途出問(wèn)題可以打開(kāi)trace viewer回放每一步操作和頁(yè)面截圖定位是選擇器寫(xiě)錯(cuò)還是頁(yè)面邏輯有變化。調(diào)試完之后再切回headless模式跑全量回歸。實(shí)際使用中trace這項(xiàng)功能特別值得開(kāi)。它會(huì)在測(cè)試失敗時(shí)自動(dòng)記錄一段執(zhí)行軌跡包含網(wǎng)絡(luò)請(qǐng)求、DOM快照、控制臺(tái)日志、鼠標(biāo)鍵盤(pán)事件。排查線上環(huán)境復(fù)現(xiàn)不了的問(wèn)題靠它基本能一次定位。5.2 CI里怎么跑e2e持續(xù)集成中跑e2e最怕兩件事環(huán)境不一致和并發(fā)沖突。我見(jiàn)過(guò)太多項(xiàng)目在本地跑得干干凈凈一上CI就各種失敗十有八九是環(huán)境差異導(dǎo)致的。我的做法是在CI里用容器來(lái)跑測(cè)試保證每次跑的瀏覽器版本、Node版本、依賴版本完全一致。GitHub Actions里可以這樣配置name: e2e-tests on: push: branches: [main] pull_request: jobs: e2e: runs-on: ubuntu-latest services: mysql: image: mysql:8.0 env: MYSQL_ROOT_PASSWORD: root ports: [3306:3306] steps: - uses: actions/checkoutv3 - uses: actions/setup-nodev3 with: node-version: 18 - run: npm ci - run: npx playwright install --with-deps - run: npx playwright test這個(gè)配置里把數(shù)據(jù)庫(kù)也作為服務(wù)一起起在CI里測(cè)試環(huán)境就能完整自包含不需要依賴外部環(huán)境。并發(fā)執(zhí)行方面Playwright默認(rèn)是跑在多個(gè)worker里的可以同時(shí)跑多個(gè)用例文件。但要特別注意多個(gè)worker同時(shí)操作同一個(gè)測(cè)試環(huán)境如果環(huán)境有共享數(shù)據(jù)就會(huì)產(chǎn)生互相干擾。比如兩個(gè)用例同時(shí)下單庫(kù)存數(shù)可能被兩個(gè)用例同時(shí)扣減最后斷言的口徑就亂了。我的方案是盡量讓每個(gè)用例的數(shù)據(jù)互相獨(dú)立如果實(shí)在沒(méi)辦法獨(dú)立就在playwright.config里把用例串行執(zhí)行export default defineConfig({ workers: process.env.CI ? 2 : 1, fullyParallel: false, });5.3 報(bào)告和失敗通知測(cè)試跑完報(bào)告必須讓人一眼看出哪破了、破在哪。Playwright默認(rèn)生成HTML報(bào)告包含每個(gè)用例的耗時(shí)、狀態(tài)、失敗截圖、trace回放入口。我會(huì)在CI里把報(bào)告上傳為artifact每次構(gòu)建完都能直接查看。失敗通知我用的是定時(shí)任務(wù)方式CI跑完如果非零退出就把結(jié)果推到團(tuán)隊(duì)的IM群里。這一步的核心價(jià)值在于快速響應(yīng)e2e掛了往往意味著主干鏈路有問(wèn)題早一分鐘知道就少一批受影響的用戶。6. 常見(jiàn)問(wèn)題與排查技巧實(shí)錄6.1 flaky測(cè)試的三大來(lái)源和解決思路flaky測(cè)試就是那種這次跑過(guò)、下次跑掛、重跑又過(guò)了的用例。它比穩(wěn)定的失敗更讓人頭疼因?yàn)槟悴淮_定是自己代碼的問(wèn)題、測(cè)試的問(wèn)題還是環(huán)境的問(wèn)題。歸納下來(lái)98%的flaky來(lái)自下面三個(gè)地方來(lái)源典型表現(xiàn)解決方向異步渲染競(jìng)態(tài)頁(yè)面還沒(méi)渲染完就去點(diǎn)按鈕用斷言式等待替代固定sleep數(shù)據(jù)污染上一個(gè)用例殘留數(shù)據(jù)影響下一個(gè)每個(gè)用例獨(dú)立數(shù)據(jù)teardown清理環(huán)境抖動(dòng)網(wǎng)絡(luò)慢、第三方接口超時(shí)增加重試機(jī)制關(guān)鍵接口mock重試機(jī)制我建議謹(jǐn)慎使用。在CI里配置retries: 1是合理的超過(guò)3次重試就有問(wèn)題了——它不是幫你解決問(wèn)題而是幫你掩蓋問(wèn)題。重試通過(guò)之后沒(méi)有人為這個(gè)flaky根因負(fù)責(zé)它就會(huì)一直潛伏下去。6.2 定位失敗用例的標(biāo)準(zhǔn)排查流程遇到用例失敗了我現(xiàn)在的排查流程基本固定分享出來(lái)給大家參考。第一步看失敗截圖不要急著猜。Playwright失敗時(shí)會(huì)自動(dòng)截圖先看截圖里頁(yè)面是什么狀態(tài)——是空白頁(yè)、是彈了報(bào)錯(cuò)、還是停留在上一步?jīng)]跳轉(zhuǎn)。這一眼能過(guò)濾掉一半的問(wèn)題。第二步看trace。如果截圖看不出原因打開(kāi)trace看操作回放重點(diǎn)看失敗前最后幾步的DOM狀態(tài)和網(wǎng)絡(luò)請(qǐng)求。如果某個(gè)接口返回了500那就是后端問(wèn)題如果接口正常但斷言失敗那就是前端渲染問(wèn)題。第三步看執(zhí)行日志??刂婆_(tái)的報(bào)錯(cuò)信息有時(shí)候會(huì)直接給出線索比如Failed to fetch說(shuō)明網(wǎng)絡(luò)層有問(wèn)題Cannot read properties of undefined說(shuō)明前端JS異常。這三步走完90%以上的問(wèn)題都能定位到具體層級(jí)。我強(qiáng)烈建議大家養(yǎng)成這個(gè)習(xí)慣而不是一看到失敗就重跑一遍——重跑一百遍也只能碰到運(yùn)氣好的時(shí)候通過(guò)真正的問(wèn)題始終沒(méi)有暴露。6.3 前端點(diǎn)擊無(wú)效的經(jīng)典案例復(fù)盤(pán)有一個(gè)問(wèn)題我想單獨(dú)拿出來(lái)說(shuō)因?yàn)閹缀趺總€(gè)團(tuán)隊(duì)都會(huì)遇到按鈕明明存在點(diǎn)擊了卻沒(méi)有反應(yīng)。這個(gè)問(wèn)題的根源往往是元素被某個(gè)透明遮罩層擋著或者元素看起來(lái)在頁(yè)面上、但被判定為不可點(diǎn)擊。Playwright的click會(huì)自動(dòng)檢查元素是否接收事件如果檢測(cè)到遮罩會(huì)把click攔截就會(huì)報(bào)element is not receiving events。我踩過(guò)最深的一次坑是在一個(gè)彈窗組件里彈窗關(guān)閉按鈕點(diǎn)擊之后關(guān)閉動(dòng)畫(huà)還在執(zhí)行此時(shí)頁(yè)面上殘留一層透明的遮罩層再點(diǎn)其他按鈕就會(huì)被攔截。排查了很久才發(fā)現(xiàn)是動(dòng)畫(huà)時(shí)長(zhǎng)的問(wèn)題。解決方案很土但很有效點(diǎn)擊之前先斷言遮罩層已經(jīng)消失。await page.locator(.modal-mask).waitFor({ state: hidden });這一行加下去問(wèn)題沒(méi)有再出現(xiàn)過(guò)。這類(lèi)問(wèn)題提醒我一點(diǎn)e2e測(cè)試不只驗(yàn)證業(yè)務(wù)功能它還在驗(yàn)證用戶體驗(yàn)的真實(shí)反饋。動(dòng)畫(huà)未結(jié)束、按鈕變灰、加載中狀態(tài)這些在真實(shí)用戶眼里都是點(diǎn)不了的現(xiàn)象。測(cè)試把這些問(wèn)題暴露出來(lái)對(duì)業(yè)務(wù)是好事。7. 一些經(jīng)驗(yàn)之外的個(gè)人體會(huì)做了幾年e2e之后我越來(lái)越覺(jué)得它不是一個(gè)純技術(shù)工作。寫(xiě)用例的時(shí)候要想業(yè)務(wù)是怎樣的買(mǎi)商品要走多少步用戶什么時(shí)候會(huì)退出系統(tǒng)提示應(yīng)該出現(xiàn)在哪里排查問(wèn)題的時(shí)候要判斷是自己代碼還是前端邏輯還是后端服務(wù)。它逼著人從代碼能不能跑往系統(tǒng)能不能用的方向思考。所以如果你問(wèn)我e2e測(cè)試框架里哪個(gè)功能最值得投入時(shí)間學(xué)習(xí)我的答案不是選擇器、不是斷言API、不是并行執(zhí)行而是讀懂一條業(yè)務(wù)鏈路的能力。工具只是實(shí)現(xiàn)手段真正決定e2e項(xiàng)目?jī)r(jià)值的是你對(duì)業(yè)務(wù)的拆解能力。把一條業(yè)務(wù)鏈路拆清楚哪里是核心、哪里是分支、哪里可以妥協(xié)比掌握任何框架的細(xì)節(jié)都重要。最后分享一個(gè)實(shí)用小技巧e2e用例命名不要用模塊名要用用戶故事。比如用戶可以用優(yōu)惠券抵扣訂單金額就比coupon_order_test更容易讓人理解這條用例為什么存在。多人協(xié)作的時(shí)候其他同事看到用例名就知道這個(gè)測(cè)試在整個(gè)系統(tǒng)里保護(hù)的是什么。這個(gè)習(xí)慣的成本幾乎為零收益卻能持續(xù)很久。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧洲色| 国产97色在线| 人妻久久久久久久久久久久久久久| 超碰免费人人| 久久久久久9999| 欧美久久人体| 人妻 丝袜美腿 中文字幕| 九九精品热| 先锋音影AV| 亚洲丝袜少妇在线| 日韩精品亚洲专区在线影视| 亚洲AV免费在线观看| 粉嫩AV输入| 欧美色图电影| 中亚黄色三级大片| 91n欧美| 午夜寂寞欧美| 激情文学小说一区二区| 日韩精品国产一区二区| 天天色香欲综合网| 久久亚洲一区女同性恋中文字幕| 亚洲中文字母在线播放| 国产乱弄免费在线视频。| 中国特猛少妇色xxx| 国产AV精久久| 天天操美美| 日日操免费视频| 久草成人福利导航| 精品综合久久久久久五月天| 91狠| 国产h小视频在线观看免费| 久久久免费一级黄片| 在线视频一区二区传媒| 亚洲AV无线| 东北操逼| 开心五月婷婷| 国产精品懂色tv影视免费观看| 婷婷久久网| 亚洲文学偷乱拍啪啪啪啪| A 在线网址| 日韩中文字幕宗合在线| 国产小黄片在线免费观看| 日韩欧美中文字| 无码聚合| 欧洲精品一二三在线| 国产白丝网站| 乱伦图一区| 麻豆伊人网| 免费观看性欧美一级| 亚洲丝袜B诱惑| 久久国产AⅤ| 一个人在线看的黄色电影网站| 日韩十八禁| 性欧美91| 欧美内射少妇| 日本色色色视频| 后入合集| 久久国产对白激情浪潮| 国产一级αv免费看片| 亚洲色性| 蜜臀无码一区二区| 精品v1区| 99久热| 免费国产电影一区二区| 嗯阿好爽好紧| 精品婷婷| 国产亚洲日本精品在线| 麻豆成人AV| 男插女青青影院| KK色在线影院| 日韩av电影网站| 色老汉色| 久久久久久久久久久久久9999| 亚洲国产麻豆一区二区三区| 日韩在线电影| 亚洲人妻色图| 亚州色图欧美色图| 另类图片五月天| 97视频7| 又黄又爽在线观看视频| 熟女乱伦二区| 丰满的三级少妇欧美久久久| 丝袜剧情| 激情综合二| 大黄片做爱的大的| 精品成人无码| 国产毛片在线| 操逼网免费无码视频| 操逼不卡中文字幕| 操b网站亚洲无码| 成人日韩欧美| 91久青| 暖暖精品二区三区观看| 91美女中出| 大香蕉520| 热九九精品| 色伊人91| 无码高清专| 8050无码八戒| 欧亚免费视频| 亚洲少妇色| 操九九九九九九| 伊人久久青青草| 狠狠热这里都是精品| 精品小视频在线| 免费成人在线熟妇网| 国产精品丝袜久久亚洲不卡| 尤物视频网 刘玥| 日韩资源网| 大屁股熟女一区二区三区| 很狠操| 天天舔日美女视频| 青娱乐福利99| 国产精品欧美日韩久久| 天天日少妇逼AV| 超碰久久中文| 2017超碰| 3PAV乱伦视频| 久久免费99精品久久久久久| 色欲av一区二区三区蜜芽| 成·人免费午夜在线观看| 97综合在线| 国产多人在线观看视频| 99性爱视频| 老熟女熟妇| 欧美72网页| 国产精品另类一区大香蕉| 亚洲天堂男人天堂网| 26uuu久久| 殴美大黄片| 中文字幕91综合| 男人天堂毛片| 久久精品中文| 无码人妻一区二区三区四区老鸭窝| 天堂а√在线最新版在线| 五月天色图| 国产成人天堂| 99无码狠狠久久| 亚洲欧美精品福利在线| 婷婷九月丁香| 午夜福利免费福利视频| 91色图片| 国产成人在线观看网址| 欧美日韩91| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 91老熟女逼| 欧美日韩人妻婷婷一区| 成人av福利在线观看| 日韩精品视频在线观看一卡二卡| 五月天伊人| 无码九九| 日韩无码a片| 久久国产精品91| 色欧美在线| 免费在线观看AV无码网站| 极品AV网站在线观看| 日日噜噜夜夜狠狠视频无| 夜夜高潮夜夜爽高清视频一| 无码精品人妻一区二区三区妖精| 狠狠操一区二区| 加勒比综合| 操死我干死我| 人人艹亚洲| 91超碰碰在线| 欧美91网站| 欧美一区二区三区互相| 亚洲揄拍网| 人妻丰满熟妇一区二区三| 欧美情色贴图| 婷婷五月综合激情| 美女裸体无遮挡永久免费观看网站| 懂色AV一区二区三区| 色99999| 成人在线视频一区| 日本大片日本一区二区免费高清| 久久久久少妇| 国产精品视频播放| 伊人五月天| 成年人黄色视频免费| 夜夜嗷嗷一区二区| 亚洲经典啪啪| 成人无码在线视频网站| 中文字幕av片| 色穴精品| 久操视频资源站公开| 变态综合色| a人欧美综合天堂麻豆| 亚乱色| 东京热综合久久一区二区| 天天操女人| 精品偷拍13p欧美dodk视频| 亚洲风情在线观看| 午夜福利在线合集| 色噜噜婷婷| 欧美日韩性爱电影在线| 日本不卡在线二区三区| 精人妻无码一区二区三区伊人直播| 99色色网| 午夜无码精品免费看性色| 麻豆天美国美国产AV| 99亚洲精品| 亚洲精品熟妇1区2区3区。| 欧美制服网站美腿丝袜| 91露脸熟女专区| 91熟女视频| 亚洲在线综合| 夜夜骑日日| 亚洲精品蜜桃久久久久久久| 九九九九九九九九九九九免费国产| 中国一区二区亚洲人妻| 免费公开人人操| 少妇一级婬片免费放一级a性色. | 欧美性色综合网| 国模限制级电影| 国产成人+综合亚洲+天堂| 伊人久久综合精品欧美| 国产精品视频自拍在线| 久草精品国产99| A级毛片在线看免费| 久久国产在线一区二区| 在线人成亚洲视频免费观看| 日韩色香| 天天射日日干| 超碰免费97| 97国产精品视频| 人人搞人人插人人操| 东京热男人天堂| 国产精品ww久久| 永久电影三级在线观看| 美女天天干| 色图综合网| 欧美的性爱网站免费| 人爽不卡视频| 夜嗨影院| 婷婷五月成人| 91AV入口| 国产精品毛片?v一区二区三区| 一个国产在线综合网站| 97人人干| 97欧美精品综合| 丝袜性亚洲| 伊人久久蜜月| 久久久久96| 久久色精品视频在线| 亚洲高清91| 2024黄色视频| 日本污ww视频网站| 超碰97网址| 国产尤物在线三区| 久久久精品中文字幕爱豆| 国产精品内射婷婷一级二| 亚洲精品国产专区在线观看| 91欧美| 丰满搜索结果 -第18页- 久久高清无码| 中文字幕诱惑制服人妻丝袜美丝袜美 | 美女丝袜激情小说| 啪啪视频免费在线观看| 亚洲天堂一区二区久久| 国产精品69人妻无码久久久| 亚洲国产精品久久久久婷婷青年| 91劲爆| 久久久新亚洲AV| www.av在线视频| 国产精品一二三免费网站| 欧美亚洲宗合色性图| 1240青青草一区二区三区视频天爱| 日韩美女操b| 综合亚洲欧美| 2019久久久久久久久福利| 浪人综合网| 熟妇亚洲一区二区三区| 成年无码动漫av片无尽在线| 亚洲 日本 一 二 三| 中文字幕伊人| 亚洲 自拍偷拍 欧美| 色综合中文字幕不卡| 上床啊啊啊| 欧美成人性爱视频在线播放| 久久久久久久少妇| 国产精品久久久 | 久久久久久久人妻| 午夜美女诱惑电源网| 日本一级黄色电影| 国产精品另类| 丝袜美腿诱惑亚洲欧美视频在线观看 | 色婷婷A V一二三四区麻豆综合| 国产精品 久久久精品一牛| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 婷婷操逼| 人人操人人摸avav| 久久久久人| 免费看一级a性色生活片久久无| 东京热毛片调教| 搡老熟女免费视频 | 91成人无码| 欧美另类自拍 | 久久本道| 日韩 欧美 另类 人妻| 男人天堂资源| 亚洲清纯唯美| 91 在线亚洲| 国产成人久久精品蜜臀| 日夜尻逼网| a人欧美综合天堂麻豆| 国产女人91精品嗷嗷嗷嗷| 国产色图乱伦| 一二三四区操操Av| 欧美精品双插| 精品国产一区二区久久| www九九热| 天天懆天天日| 在线97视频| 亚洲综合色在线| 加勒比AV网| 综合熟女| 五月丁香色情| 影音先锋中文字幕日本好一区二区| 色欲天天婬色婬香WWW夜色| 久超碰这里只有精品| 久超超碰| 亚洲欧洲小说图片视频| 久99久视频| 琪琪精品免费一区二区三区| 国产精品高潮久久久无码| 欧美日韩久久精品爱爱| 美女的肌被草喷水视频| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 高清无码国产亚洲| 国产一区在线观看无码AV| 国产欧美另类久久久精品课程| 91AV天堂| AV色五月| chaopen97久久| 亚av顶级裸体一区二区三区四区五区| 97精品综合久久网| 青青欧美| 9997se| 中 文字幕一区二区三四 五 区日 日 骚| 欧美性猛交美女自慰91| 亚洲AV无码天美传媒一区| 欧美视频在线第3页| 国产剧情一区在线观看| 亚洲性爱高潮影院| 97操97色| 亚洲欧洲色情高清| 色男人色天堂东京热| 免费亚洲国产精品久久一区| 97超碰总站| 亚洲黄色网址| 97国产精品久久久久| 啊啊啊慢点| 亚洲一区二区AV| 亚洲国产精品无码AV久久久| 亚洲成人性| 免费操逼视频下载| 韩国一级做a久久久久| 色呦呦国产精品免费看| 亚洲精品免费中文字幕| 欧美性爱三区二区| 亚洲不卡不卡中文字幕不卡 | 欧美色女人| 无码高清操逼| 97干在线视频| 性性久久| 国产激情视频一区区三区| 国产又黄又粗的视频| 717影院理论午夜伦八戒| 色爱综合网欧美| 91+欧美| 无码操逼天堂| 男人的天堂com| 377p欧洲日本亚洲大胆| 最新啪啪视频| 欧美性爱一内片一区二区三区| 亚洲精品一二三四区| 亚洲视频二区| 久久一区二区三区四区五区| 亚洲国产一区二区入口| 色婷婷激情| 嗯嗯啊好大| 蜜臀久久久99久久久久| 国模少妇一区二区三区| 欧洲Au麻豆| 亚州精品人妻一二三区| 男女激烈网站最新| 熟妇人妻一区二区三区| 久久内射| av资源在线观看少妇| 日韩资源网| 污色区网站| 丁香婷婷色五月| 青草影院内射高潮| 99国产在线 精品 视频| 欧美91在线+|+欧美| 亚洲电影中字一区二区| 大香蕉 222| 91在线视频国产网站| 在线啊v一区| 天综合网欧美| 久草老司机| 久久人人爽爽人人爽人人片αV| 熟女一区二区| 91东京热男人的天堂| 亚洲 图片 欧美 色图| 亚洲男人天堂2017| 99亚亚热| 人人看黄色视频| 蜜奶av| 放黄片放3级黄片没穿衣服| 激情丁香五月| 精品久| av午夜玫瑰| 一区二区三区亚洲| 久久超碰免费的| 成年人网站在线免费观看| 六月丁香五月婷婷| 国产精品乱码久久久久| 午夜久久一区二区无码中出| 国产成人99久久亚洲综合| 色九九九综合| 婷婷丁香五月综合| 人妻精品视频一区二区三区| 使劲用力艹少妇视频一区二区| 免费又黄又裸乳的视频| 婷婷色网| 亚洲第一无码播放立川理惠| 午夜综合在线| 欧美后进式| 天天草夜夜草高潮片| 传媒在线观看一区二区三区| 超碰爽人妻熟女Av| 精品九九国产无码| 少妇人妻在线| 可以免费观看的AV| 日少妇亚洲版| 国产成人无码高清| 国产老女人久久毛| 91天堂视频| 亚洲成A∨人影院在线欢看| 中文字幕1区2区| 97国产亚洲中文在线| 这里只有精品视频在线| 殴美大黄片| 免费观看国产不卡av| 亚洲欧美另类图片| 福利天天都操| 日韩欧美丝袜诱惑| 欧美制服另类丝袜| 天堂种子在线www网资源| 亚洲欧美国产中文视频| 91久久伊人婷婷青青草| 国产AV中文| 中文字幕版| 人人插人人搞人人操| 亚洲资源一区| 国产精品乱码久久久久久| 五月天色五月| 视频黄色国产一级| 久久黄片国产一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲图片色图欧美另类| 国产一级内射高清视频| 91久热| 丝袜视频网国产90| 超碰是碰在线观看| 欧洲小说色图视频另类| 熟女高潮合集-永久久久-成人AV| 97超碰色屌| 亚洲色图大香| 精品国产乱码久久久久久久久1| 亚欧性爱在线无码| 天天操天天射天天日| wwwxxx日本爽| 自拍偷拍草一草| av亚欧| JIZZJIZZ亚洲女人被躁| 天天综合网91入口| 女一区二区| 色五月第四色| 熟女熟妇伦久久影院毛片一区二区| 97精品视频免费| 懂色AV中文| 日韩情色AV| 91精品无码人妻系列| 五月丁香综合| 国产女上位好爽在线| 高清不卡视频| 欧美亚洲丝袜美女电影| 美女露胸露屁股| 97干com| 91九色丨国产丨爆乳| 天天综合网91入口| 三级片大波波| 夜夜免费视频| 男人天堂新在线| 免费?级毛片无码?∨蜜芽试看| 国产女人和拘做爰视频 | 91女日逼| 色视频蜜乳| 国产51色综合久久免费| 99久视频| 夜夜久久| 人妻天天爽| 天天干夜夜鈤| 亚洲AV无码黄色强奸| 国模一区二区三区| 柠檬AV导航| 日韩精品亚洲专区在线影视| 国产中文大片资源中文字幕| 久热大香蕉| 97se综合网| 四虎精品永久在线播放| 天天躁日日躁成人字幕aⅴ| 91丝袜美女| 妇女性内射冈站HDWWWCOM| 97免费视频网| 久久久久久日韩| 91情色| 清纯唯美亚洲综合| 日日夜夜精品| 超碰三级秋霞| 欧美翘臀视频网站一区二区三区| 久久婷婷亚洲欧| 91久久国产精品| 日韩欧美中文| 欧美在线官网| 欧美 亚洲 在线| 91小视频| 淫乱图区| av在线观看不卡网站| 二色av| 深夜激情| 熟女六十路| 久久9精品网站| 国产精品欧美日韩久久| 久久久久网站-538在线视频-欧美永久乱码 | 95精品在线| 尤物视频新赏网鲜网色诱网| 日本操BAV| 天欧美在线| 一线黄色免费性爱片| 在线观看午夜婷婷久久久久清性观看| a片在线播放| 成人影 天天操 亚洲| 亚洲欧美日韩激情不卡| 日韩av乱伦| 男人天堂新在线| av天堂影视中文在字幕在线中文| 国产精品不卡少妇白| 色婷婷99| 日韩性爱小视频| 欧美白嫩在线放| 综合 欧美 亚洲 日本| 色综合加勒比四四季| AV天堂国产| 日本精品九九九| 99久久婷婷国产综合| 亚洲欧美色图片| 天天α片| 色婷视频| ji熟女.com| 粉嫩久久久极品| 香蕉在线一区二区三区| 五月丁香六月综合缴清无码| 欧美大香蕉97| 日本在线视频导航| 嫩草 人人网精品| 很很干很很操| 一级二级三级黑人无码| 精品性爱久久视频| 日产狠狠干| 欧美人人曰人人操人人射射| 青青青草原| 天堂麻豆天美| 操一区| 国产又色又粗又黄又爽| 偷拍欧美亚洲| 四季AV一区二区凹凸精品小说| 欧美日韩另类在线| 夜夜夜夜久久久久| 色综和网| 亚洲情色五月天| 操逼逼无码| 懂色中文一区二区三区| juliaann欧美丝袜办公室| 1区2区3区在线视频| 久久久久国产精品喷潮免费观看臀| 97操碰| 啊啊啊啊啊啊啊啊啊啊在线观看| 亚洲精品 大香蕉| 亞洲久久直播| 黄色AAAAAAAAAAA大片| 性生活性生大爱77AV国产| 中文字幕88av在线| 久久综合18p| 东京热免费视频| 中文一区在线视频| 久久久精品电影| 少妇久久久久久| 天天操狠狠日夜夜干超碰撸com视频在线观看| 免费a v| 精品久| 91中文字幕| 我爱操| 天天性射网| 国产AV人人夜夜澡人人爽麻豆| 动漫片子网站3黄| www四虎| 日本一区三级韩国| 极品色社| 熟女啪啪视频| 天天日日日射| 亚洲中文电影| 久色99999| 日韩电影天堂视频二区三区| 夜夜操一区二区| 久久超碰亚洲人| 97色色色综合网站| 欧美激情久| 新视频sss国产| 韩国女主播青草在线| 久久免费看高潮毛片韩国| 麻豆婷婷成人一二三| 天天看特黄的免费网站| 一区二区视频你懂的| 学生妹天天看| 啊啊啊啊操死我| 99热免费| 色情婷婷| 丰满人妻一区二区三区| 蜜桃午夜视频一区二区| 男人的天堂网页| 日韩精品系列| 麻豆福利视频导航| 欧美色图 色综合图| 九九探花视频在线观看| 久久有碼| 人妻性爱一区二区| 97人妻色| 婷色五月| 亚洲天堂日本| 伊人一区二区在线播放| 五月婷婷性爱| 9997se| 免费A片三p视频| 神马精品视频| 色97综合中文字幕| 国产色呦呦| 日韩人妻操B| 射丝袜大香蕉| 日韩高潮一区| 国产操偷| 精品免费视频国产一区| 免费99精品国产自在在线| 日本 欧美 亚中文字幕| 欧美日韩一区二区三区四区蜜桃| 精品黄色电影| 色爱欲亚洲| 综合色久| 人人玩人人添人人澡免费| 91挑色欧美| 亚洲有薄码区日本系列中文字幕| 免费啪啪av| 亚洲丝袜诱惑| 久久久九| 美日韩在线不卡人妻| 国产少妇肉丝在线观看| 看一级特黄a大一片| 91天天看| 精品国产乱码久久久久久日本公司| 亚洲中文字幕乱码无码一区二区| 中文字幕在线观看视频www| 综合五月婷婷亚洲一区| 精品人妻一二三| 欧洲亚洲人妻无码久久三区四区| 亚洲精品国产AV天美传媒| 国产精品高清2021在线| 干少妇视频| 久久久久久99999国产精品| 熟妇精品juliaannAV| 精品国产乱码久久久久久久久1| 91人妻尻屄视频| 国产成人99久久亚洲综合| 亚洲久久久久| 自拍二页| 欧美一区二区日韩传媒搭讪精品| 玖玖色综合| 亚洲码专区| 欧美人与性动交a美精品| 久草精品视频| 亚洲最新中文字幕免费| 首页中文字幕中文字幕免费| 国产刺激视频| 嗯嗯啊啊用力视频免费| 一区二区 韩日AV| 九一综合精品视品av| WWW4虎| 中文字幕三四五区| 啊啊啊啊啊在线视频| 人人弄人人摸| 亚洲春色激情小说| 国产v片在线免费观看| 人妻少妇一区二区| 久久这里只精品免费福利| 安徽熟妇视频| 蜜臀久久在线视频| 超碰1024久久| 亚洲网站一区二区在线| 亚洲高清色综合| 久久99人妖视频国产| 岛国精品视频在线观看| 久草资源在线| 欧美后入式| 97频视在线| 91精品人妻一区二区三区蜜桃臀| 成人精品久久久午夜福利| 一个色导综合| 韩日精品福利视频一区不卡在线免| 国产av白丝| 久九干| 韩日男人的天堂| 欧美天堂日韩三级国产传媒| 打av高清| 久久久久久9999| 日本精品性生活久久久| 经典丝袜一区| 亚洲综人| 天天综合有色网| 人妻在线中出视频| 啊啊啊啊啊啊啊好爽不要| 日韩美一区| 嗯阿好爽好紧| 99国产精品久久久在线播放| 日韩一级二级在线| 成人五月天色网| 91九九九吃| 97伊人超碰| 色97欧美| 亚州综合色| 国产操逼网站亚洲一级黄色| 国产日韩色综合| 久久性爱网站| www.zbzhongsen.com| 狠狠中文字幕| 99RE在线视频精品,这里只有精品| 亚洲欧美日韩国产丝袜自拍中文| 97久久久久久久久久| 精品人妻一区二区三区四区| 91美女视频| 久久精品国产99精品亚洲蜜...| 色成人Www精品永久观看| 99视频自拍| 亚洲欧美校园另类春色| sss视频华人在线| 午夜福利在线视频1000| 天操天操夜操夜月操月年年操操| 无卡一区=区| 91成人久久| 超碰在线91| 一个国产在线综合网站| 中文字幕精品一区二区精| 丁香成人五月天| 一道本久久棕合爱| 91l欧美在线| 97爱爱官网| 成人一二| 国产一区二区视频在线播放| 亚洲精品无码久久AV| 牛黄色久午久| 好爽,再快点啊哈嗯嗯嗯嗯| AV色图| 色噜噜国产精品视频一区二区| 极品欧美一区二区三区| 一区在线国产播放| 在线啊啊啊啊| 亚洲人综合| 国产在线播放成人免费| 色yeye成人免费视频| 99热在线观看| 青青伊人这里只有精品| 精品黄色电影| 亚洲国产婷婷在线播放| 黄色AAAAAAAAAAA大片| 亚洲欧美日韩综合在线尤物 | 97干色| 91社区拍啪人妻| 在线女人91| 亚洲激情深爱文学小说网站| 久久国产在线一区二区| 久久老子无码午夜伦不卡| 91亚洲黑人| 天天在线91| 亚洲啪啪视频免费| 九九热精品在线| 青春草A| 亚洲国产中文字幕| 日本精品五区| www.超碰在线| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 狠狠操综合| 三上制服丝AV| 97爱亚洲| 强歼乱伦资源网| 99精品久久久久久久婷婷蜜桃| 97久精品| 1024精品在线| 色婷婷九月天天综合| 日韩精品人妻系列无码天堂| 99视频自拍区| 99热99在线播放激情| 国产女人高潮视频| 中文字幕欧美精品亚洲日韩蜜臀| 秋霞网—男女啪啪亚洲免费体验区| 98色网| 亚洲精品黄码久久久久| 日本综合色图| 综合一区中亚洲国产成人综合精品| 青青草国产盗摄一二三区| 亚洲欧美日韩偷拍色图| 婷婷性爱| 天堂av最新电影网| 欧美顶级黄色大片免费| 午夜福利在线视频1000| 日韩啊V| 色丁香五月婷婷| 美女黑人91神马| 91内射| 蜜臀久久一区二区| juliaann欧美丝袜办公室| 午夜国产成人福利视频 | 国产第11页| 精品国产无码中文| 伊人伊人LD| 97亚洲综合影院| 亚洲av夫妻操穴网| 97干在线视频| 激情婷婷| 天天日天天看| 激情五月天色播| 欧美九九九| 日韩精品在线观看网站| 91九九九吃| 亚洲一区二区三区播放在线| 亚洲综合春色| 蜜桃狠狠色伊人亚洲综合网站| 亚州伊人色综台| 热天堂一区二区| 熟妇乱伦一区二区| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 无遮挡又黄又刺激的视频| 丰满人妻一区二区三区| 91女色| 成人精品在线观看| 成人小电影网站tex| 一色网男人的天堂| 男人天堂电影院| 一区二区偷拍拍视频| 国产精品天堂| 久操B网| 肏逼视频日本| 亚洲第一二区另类图| 狠狠操夜夜| 日日嗷| 六月色婷婷| 精品国产Av无码久久久伦古装| 800zy一区二区| 波多野42部激情无码喷潮| 少妇极品熟妇人妻无码| 国产尤物AV尤物在线观看不卡| 久久人妻一区二区三区高清| 操美女高潮抽搐白浆| 97在线视频网站| 97超碰热线| 天堂无码精品国产久| a啊啊啊啊啊啊啊啊一区二区| 人人人人人人少妇| 久久精品国产亚洲5555| 啊啊啊啊操死我了| 大香蕉乱伦视频网| 欧美色图电影| 乱码熟妇人妻久久久| 国产熟女完整版中字| 天天搞欧美| 人人爱操| 人人妻人人爽 97人人看碰人免费公开视频| 色天堂综合| 欧美日韩第一页| 在线综合网| 九九国产| 人人射人人操人人摸| 亚洲天天天| 爆乳免费黄网站| 亚洲91在线播放影院| 亚洲黄色| 精品一区二区三区四区女| 久久久久亚洲Aⅴ无码| 97chaopengongkai| 久久大线蕉一区| 强奸a片网| 久久这里只精品免费福利| 日产成人久久| 欧美精品在线观看| 亚洲一欧洲中文字幕在线| 日韩91网站| 噜噜噜久久亚洲精品色情| 国产第25页在线观看| 丰满人妻一区二区三区免费| 91人妻丝袜无码| 国产综合操逼高清| 国产亚洲福利第一页丝袜| 后入式五六区| 超碰在线974| 思思热久久成人| 欧美日韩另类激情图片| 亚洲综合97中文网| 国产色精品午夜大片| 91亚洲综合| 熟女91网| 色97| 中国国国产一级特黄毛片| 人妻丝袜日本| 欧美中文字幕一区 | 91丨九色丨43老版熟女| 日本成人在线不卡一区二区三区 | 老熟女天天操| 色 亚洲 91| 国产精品免费视频不卡| 国产成人精品必看| 国产400孕妇孕交群| 日韩三级性| 色 婷97| 五月天大香蕉| 国产av波波国产精品| 久久久久久久人妻丝袜| 日韩78m视频| 亚洲精品男人的天堂| 18禁网站在线播放| 久久中文字幕不卡人妻| 加勒比99999| 韩国女主播青草在线| 欧美日韩丝袜| 国产精品亚洲一级av第二区| 日韩欧美性吧婷婷乱伦大香蕉 | 白嫩嫩一区| 日本韩欧美在线播放a| 无码久久亚洲高清,| 大香蕉淫人| 少妇色综合| 18岁禁 茉莉成人久久| 又黄又爽在线观看视频| 影音先锋中文字幕日本好一区二区| 大香蕉免费3| 久久在肏| 俞拍自拍| 夜夜操中文字幕| 超碰碰97| 色色色综合网| 思思热免费视频观看| 欧美性爱日韩高清| 97在线视频观看| 丝袜视频网国产90| 99色日| 亚洲官网在线| 澳门人妻久久| 婷婷香蕉欧美在线一区二区三区 | 欧美探花网| 午夜舔阴达高潮视频免费看| 九久精品| 久久久久久人体| 蜜桃AV天堂| 亚洲欧美日韩国产丝袜自拍中文| 色婷婷综合久久久久中文一区二区 | 肥臀熟女福利视频一区二区| 欧美性爱中文字幕无线码| 秋霞一级A片黄色视频| 台湾一区国产高清在线| 国产精品久久久久久久无码AV| 日韩欧美加勒比| 懂色aV一区二区天美传媒| 欧美翘臀视频网站一区二区三区| 91高清欧美| 国内一级精品| 91欧美综合| 99热在线播放| 精品久久久久久中文字幕视频免费| 丰满少妇一区二区三区免费看| 亚洲人妻精品一区二区| 亚洲成人ab| 大肥女高潮bbwbbwhd视频| 91狠狠| 欧美成年人性爱视频免费观看| 天啪| 人人么人人操| 激情熟女12P| 日韩乱伦AⅤ| 国产91福利小视频在线观看| 亚洲无码精品AV久久久| 日韩免费中文字幕视频| 翔田千里一区二区三区奶水| 亚洲熟女人妻中文字幕一区二区| 欧美性暴力猛交| 91n处女在线观看| 日韩天天综合| 熟女精品日韩一区二区三区| 欧美亚洲激情| 免费观看性欧美一级| 国产午夜福利电影免费在线观看 | 亚洲精品自拍| 亚洲男人综合| 日韩人妻 中文字幕| 亚洲欧洲中文日韩女优乱码| 日韩卡一卡二卡三在线| 午夜国产成人福利视频| 久久XX| 激情五月婷| 日韩精品人妻系列无码天堂| 青青草色插素人| 很狠操| 亚洲欧美清纯| 777琪琪午夜免费A片| 亚洲五码一区二区三区| 国产99 中文字幕日韩小视频| 五月激情影院| 夜夜一区二区| 有码色中文字幕在线观看| 日本一级真人黄色性爱视频| 污啪啪啪视频| 亚洲最大成人a毛毛片| 91视频成人福利网站在线一区| 九久9精品| 免费人成毛片乱码| 极品AV网站在线观看| aaa一级黄片| 女性喷水高潮在线观看| 国产乱子伦一区二区三区免看| 丰满人妻-区二区三区免费| 眼镜人妻101.com| 日韩中文字幕宗合在线| 精品伊人久久久大香线蕉小说| 美女91网| 蜜桃网熟妇| 久久久91福利姬| 欧州色图区| 久久久免费一级黄片| 91性情| 亚州久久9| 国产67194| 欧美日韩99| 4141514逼喷水三级片| 大香蕉2017| 蜜臀av网址| 欧成人在线| 伊人网青青| www.黄色在线| 操逼网免费无码视频| 激情五月天色播| 国产精品久久久久久夜夜夜| 婷婷久草| 蜜臀久久久99久久久久| 2024黄色视频| 成人网址在线观看| 91骚妇| 久久精品国产亚洲粉嫩| 日本1区2区不卡视频| 一区二区三区四区免费视频| 视频在线观看一二三区| 美女爽爽爽刺痛洞洞| 91美女在线观看| 欧美日韩在线国产在线| 曰韩欧美国产传媒麻豆第一区| AV中文字幕剧情1区2区3| 97日韩| 亚洲操逼无码| 日韩精品操少妇| 蜜臀99久久精品久久久久| 久久成人国产| 玖玖爱综合| 久久国产精品m码| 欧美黑人精品一区二区| 九九香蕉网| 无码久| 友优传媒精品在线一区二区| 亚洲第一无码播放立川理惠| 2025亚洲男人天堂| 久久精品28| 欧美黄片欧美黄片xxx| 亚码激情| 久久久久久免费电影| 看大黄色大片原件| 狼人综合婷婷激情四射 | 亚洲伊人久久精品狠狠在线| 国产精品另类一区大香蕉| 亚洲精品影视老司机| 精品人妻夜夜草| 97超碰超| 手机看片1025| 日韩丝袜高跟制服在线观看| av三级电影在线播放| 激情开心五月天| 欧美色道啊| 91视频综合网| 丁香五月综合| 日韩无码服务区| 逼逼逼逼操操操操操操操操操午夜剧场 | 成人一区二区三区四区| 欧美97| 99精品在线观看| 亚洲日韩狠狠撸视频| 日韩AV无码中文一区二区| 欧美日韩婷婷中文| 午夜精品久久久| 欧美亚性天堂| 99色热| 成人三级片无码| 亚洲日本天堂| 性开放中文AV高清无码免费看| 色偷偷色偷偷欧美日韩| 色吧5亚洲| 天操天操夜操夜月操月年年操| 香蕉视频欧美一卡二卡| 很很干很很操| 国产精品一二三| 成人福利视频网| 久久久久久裸体| 中文字幕一区二区在线日韩精品| 啊好大好舒服| 国产精品99999| 中文字幕日韩国产传媒欧美精品| 欧美97色| 91Chinese在线| 久久精品操| 久久激情网| 欧美性色欧美| Blackedraw视频一区二区| 欧美性后入| 亚洲熟女乱色一区二区三区| 在线 亚洲 网爆 自拍| 一区二区三区美女超清| 后入人妻一区| 亚洲精品性爱片| 操一区| 嫩草影院在线观看精品| 久久久久久亚洲精品不卡人乳 | 中国一级特黄大片护士| 亚洲免费97免费| 超碰在线香蕉| 一级黄碟| 国产成人自拍视频在线| 91亚洲最新在线| 天天射影院| 国内毛片欧美香蕉精品| 中文字幕88av在线| 在线色导航| 天美欧美国产| 免费看久久久性性| 一区二区影视| 亚洲日韩美女丝袜美腿人妻视频| 色色色综合| 97在线观看| 超碰97在线 欧美 国产|