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

ARTICLE DETAIL

資訊詳情

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

OpenHuman 桌面端 E2E 測(cè)試實(shí)戰(zhàn)指南:WDIO + Appium Chromium 驅(qū)動(dòng) Tauri 應(yīng)用的完整方案

OpenHuman 桌面端 E2E 測(cè)試實(shí)戰(zhàn)指南:WDIO + Appium Chromium 驅(qū)動(dòng) Tauri 應(yīng)用的完整方案 OpenHuman 桌面端 E2E 測(cè)試實(shí)戰(zhàn)指南WDIO Appium Chromium 驅(qū)動(dòng) Tauri 應(yīng)用的完整方案【免費(fèi)下載鏈接】openhumanOpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep research.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/op/openhuman本篇指南系統(tǒng)講解 OpenHuman 桌面應(yīng)用端到端E2E測(cè)試的完整技術(shù)方案從 WebDriverIOWDIO驅(qū)動(dòng) Tauri 應(yīng)用的基礎(chǔ)架構(gòu)、跨平臺(tái)元素定位策略、穩(wěn)定data-testid規(guī)范、深度鏈接deep link注入到環(huán)境變量矩陣、CI 工作流、Mock 后端隔離與故障排查并延伸至 Agent 可觀測(cè)的產(chǎn)物捕獲層與 Rust 推理 Provider 的 wiremock E2E。讀者讀完可掌握在 Linux/macOS/Windows 三平臺(tái)搭建并維護(hù)一套可復(fù)現(xiàn)、可調(diào)試的桌面 E2E 測(cè)試體系且能直接對(duì)照倉(cāng)庫(kù)源碼驗(yàn)證每個(gè)環(huán)節(jié)的底層實(shí)現(xiàn)。總覽E2E 測(cè)試的定位與技術(shù)選型OpenHuman 的桌面 E2E 測(cè)試使用WebDriverIOWDIO作為測(cè)試運(yùn)行器通過(guò) Appium 驅(qū)動(dòng) Tauri 應(yīng)用。依據(jù) gitbooks/developing/e2e-testing.md 文檔當(dāng)前矩陣如下平臺(tái)Driver端口應(yīng)用格式選擇器Linux / Appium ChromiumAppium Chromium4723Debug 二進(jìn)制CSS / DOMmacOS / Appium ChromiumAppium Chromium4723.appbundleCSS / DOME2E 測(cè)試在項(xiàng)目中的定位是最外層、最接近真實(shí)用戶(hù)的驗(yàn)證手段它以完整構(gòu)建出的桌面應(yīng)用為載體驅(qū)動(dòng)真實(shí) WebView驗(yàn)證登錄、引導(dǎo)onboarding、消息、Cron 任務(wù)、技能Skills、設(shè)置面板、支付等跨前后端鏈路的端到端行為。它與 Rust 單元/集成測(cè)試、Playwright Web 測(cè)試共同構(gòu)成 OpenHuman 的分層測(cè)試體系可參考 gitbooks/developing/testing-strategy.md。關(guān)于驅(qū)動(dòng)后端的演進(jìn)說(shuō)明文檔描述 OpenHuman 桌面應(yīng)用使用 CEF 運(yùn)行時(shí)tauri-runtime-cefCI 以 Appium Chromium 驅(qū)動(dòng) Linux debug 二進(jìn)制macOS/Windows 手動(dòng) E2E 使用同一 Chromium 后端。從當(dāng)前倉(cāng)庫(kù)源碼看app/test/wdio.conf.ts 與 app/scripts/e2e-run-session.sh 的注釋顯示應(yīng)用已隨 #5456 遷移至 WryWebKit運(yùn)行時(shí)#5478 移除了基于 CEF CDP 端口的 Appium Chromium 后端CDP 僅存在于 Chromium 引擎下當(dāng)前 Linux 驅(qū)動(dòng)路徑為tauri-driverE2E_USE_TAURI_DRIVER1時(shí)啟用e2e-run-session.sh。.github/workflows/e2e-reusable.yml 中仍保留 Appium appium-chromium-driver的安裝與緩存步驟。下文以文檔所述方案為主干同時(shí)標(biāo)注當(dāng)前源碼實(shí)現(xiàn)狀態(tài)以便讀者對(duì)照實(shí)際代碼??焖匍_(kāi)始本地跑通第一組 E2ELinux / Appium Chromium# 安裝 Appium 與 Chromium driver一次性 npm install -g appium3 appium driver install --sourcenpm appium-chromium-driver # 構(gòu)建 E2E 應(yīng)用 pnpm --filter openhuman-app test:e2e:build # 運(yùn)行全部 flows pnpm --filter openhuman-app test:e2e:all:flows # 運(yùn)行單個(gè) spec bash app/scripts/e2e-run-spec.sh test/e2e/specs/smoke.spec.ts smoke在無(wú)頭 Linux 環(huán)境下harness 通過(guò)Xvfb提供虛擬顯示見(jiàn)下文故障排查。macOS / Appium Chromium# 安裝 Appium Chromium driver一次性需要 Node 24 npm install -g appium3 appium driver install --sourcenpm appium-chromium-driver # 構(gòu)建 .app bundle pnpm --filter openhuman-app test:e2e:build # 運(yùn)行全部 flows pnpm --filter openhuman-app test:e2e:all:flows在 macOS 上用 Docker 跑 Linux harness在 macOS 上通過(guò) Docker 運(yùn)行與 CI 一致的 Linux E2E harness需要 Docker Desktop 或 Colima。倉(cāng)庫(kù)以 bind-mount 方式掛載構(gòu)建產(chǎn)物在多次運(yùn)行間持久保留。# 構(gòu)建 運(yùn)行全部 E2E flows docker compose -f e2e/docker-compose.yml run --rm e2e # 先構(gòu)建應(yīng)用如需 docker compose -f e2e/docker-compose.yml run --rm e2e \ pnpm --filter openhuman-app test:e2e:build # 運(yùn)行單個(gè) spec docker compose -f e2e/docker-compose.yml run --rm e2e \ bash app/scripts/e2e-run-spec.sh test/e2e/specs/smoke.spec.ts smokepackage.json 中的 E2E 腳本矩陣app/package.json 中定義了完整的 E2E 腳本入口可作為日常操作的速查表腳本作用test:e2e:build執(zhí)行bash ./scripts/e2e-build.sh構(gòu)建 E2E 應(yīng)用test:e2e:web構(gòu)建 Web 版并運(yùn)行e2e-web-session.shtest:e2e:mega構(gòu)建后運(yùn)行mega-flow.spec.ts全流程test:e2e:login/test:e2e:auth登錄 / 認(rèn)證專(zhuān)項(xiàng)腳本test:e2e:skills-registry運(yùn)行 Skills 注冊(cè)表 spectest:e2e:cron-jobs運(yùn)行 Cron 任務(wù) spectest:e2e:all:flows運(yùn)行e2e-run-all-flows.sh全量 spec 套件test:e2e:session運(yùn)行e2e-run-session.sh統(tǒng)一會(huì)話運(yùn)行器test:e2e:session:full先構(gòu)建再運(yùn)行完整會(huì)話test:all覆蓋率 Rust E2E 全量回歸入口架構(gòu)統(tǒng)一的后端與分層輔助層平臺(tái)檢測(cè)Platform detectionapp/test/e2e/helpers/platform.ts 導(dǎo)出平臺(tái)檢測(cè)函數(shù)。當(dāng)前統(tǒng)一到 Chromium driver 后這些函數(shù)作為 shim 保留始終走 DOM 能力路徑isTauriDriver()遺留 shim現(xiàn)在始終返回true——統(tǒng)一的 Chromium 會(huì)話暴露 WebView DOM與舊 tauri-driver 路徑一致supportsExecuteScript()始終返回true——Chromium driver 是全功能 W3C WebDriver在所有平臺(tái)支持browser.execute()isMac2()遺留 shim現(xiàn)在始終返回false——舊的 Appium Mac2可訪問(wèn)性樹(shù)路徑已被統(tǒng)一后端取代。這意味著此前寫(xiě)在if (isTauriDriver())分支里的 DOM 操作現(xiàn)在在每個(gè)平臺(tái)都會(huì)執(zhí)行spec 無(wú)需再做平臺(tái)分支。元素輔助層Element helpersapp/test/e2e/helpers/element-helpers.ts 提供跨平臺(tái)統(tǒng)一 API封裝了兩種后端的差異Mac2 走可訪問(wèn)性樹(shù) XPathtauri-driver 走 DOM XPathHelperAppium Chromium 下的實(shí)現(xiàn)waitForText(text)對(duì) DOM 文本內(nèi)容做 XPath 匹配waitForButton(text)button/[rolebutton]的 XPathclickText(text)標(biāo)準(zhǔn)el.click()clickNativeButton(text)在 button 上執(zhí)行標(biāo)準(zhǔn)el.click()clickToggle()[roleswitch]/input[typecheckbox]waitForWindowVisible()窗口句柄檢查waitForWebView()document.readyState檢查hasAppChrome()窗口句柄檢查dumpAccessibilityTree()HTML 頁(yè)面源碼源碼中還有幾個(gè)值得注意的細(xì)節(jié)waitForTestId(testId)/clickTestId(testId)通過(guò)[data-testid...]定位元素當(dāng)前僅在 DOM 能力后端可用element-helpers.tsclickAtElement()在 DOM 后端優(yōu)先使用browser.execute(e e.click())注入式點(diǎn)擊繞開(kāi) WebDriver 點(diǎn)擊常見(jiàn)的element not interactable / click intercepted錯(cuò)誤并先scrollIntoView避免 webkit2gtk 不自動(dòng)滾動(dòng)的問(wèn)題element-helpers.tstextExists()與visibleTextExists()是非阻塞檢查——后者額外要求isDisplayed()為真用于排除折疊的處理轉(zhuǎn)錄processing transcript中殘留文本的干擾element-helpers.ts。穩(wěn)定測(cè)試 IDStable test IDs對(duì)于 E2E spec 需要點(diǎn)擊或輪詢(xún)的 UI 控件優(yōu)先提供穩(wěn)定的data-testid命名遵循surface-element-id?分類(lèi)法。文檔給出的實(shí)際范例cron-jobs-panel、cron-refreshcron-job-row-jobId、cron-job-toggle-jobId、cron-job-run-jobId、cron-job-view-runs-jobId、cron-job-remove-jobIdsettings-nav-routeIdskill-row-skillId、skill-install-skillId、skill-uninstall-skillIdthread-row-threadId、new-thread-button、send-message-buttononboarding-next-button當(dāng) spec 針對(duì)這類(lèi) hook 時(shí)應(yīng)使用waitForTestId(testId)/clickTestId(testId)文本選擇器只用于用戶(hù)可見(jiàn)文案的斷言不做行/動(dòng)作的發(fā)現(xiàn)定位——這樣可顯著降低 UI 文案變動(dòng)導(dǎo)致的用例脆弱性。深度鏈接輔助層Deep link helpersapp/test/e2e/helpers/deep-link-helpers.ts 處理認(rèn)證類(lèi)深度鏈接如openhuman://auth?token...keyauth策略?xún)?yōu)先級(jí)WebView 內(nèi)window.__simulateDeepLink(url)通過(guò)browser.execute()注入當(dāng)前統(tǒng)一后端在所有平臺(tái)均可用是最可靠的主路徑源碼中會(huì)先探測(cè)__simulateDeepLink是否就緒最長(zhǎng)輪詢(xún) 25 秒macOS 擴(kuò)展命令macos: launchAppmacos: deepLink保留給需要系統(tǒng) Launch Services 分發(fā) URL scheme 的 macOS shell-out 場(chǎng)景重試 3 次macOS shell 回退open -a ... url。源碼對(duì) Linux 做了明確約束Linux 容器沒(méi)有注冊(cè)openhuman://scheme 的.desktop文件xdg-open無(wú)法分發(fā) URL因此 WebView simulate 失敗時(shí)直接拋出異常而不是無(wú)意義地嘗試 shell 回退deep-link-helpers.ts。此外該文件還實(shí)現(xiàn)了JWT bypass 認(rèn)證buildBypassJwt(userId)構(gòu)造一個(gè)alg: none的三段式 JWTheader.payload.e2e簽名段僅保留格式前端解碼不校驗(yàn)簽名triggerAuthDeepLink(token)支持OPENHUMAN_E2E_AUTH_BYPASS_TOKEN與OPENHUMAN_E2E_AUTH_BYPASS1配合OPENHUMAN_E2E_AUTH_BYPASS_USER_ID兩條旁路路徑觸發(fā)認(rèn)證深鏈前會(huì)先內(nèi)聯(lián)關(guān)閉 BootCheckGateChoose core mode 彈窗避免認(rèn)證就緒等待被 gate 卡死。發(fā)布候選的手工二次實(shí)例冒煙文檔明確要求當(dāng)改動(dòng)涉及 CEF preflight、單實(shí)例single-instance或深鏈啟動(dòng)代碼時(shí)在 Linux 或 macOS 上手工做一次二次實(shí)例冒煙正常啟動(dòng) OpenHuman 并保持運(yùn)行通過(guò)系統(tǒng) opener 觸發(fā)openhuman://auth?tokene2e-tokenkeyauth確認(rèn)已在運(yùn)行的窗口收到回調(diào)且不會(huì)啟動(dòng)第二個(gè)完整 CEF 實(shí)例確認(rèn)二次進(jìn)程干凈退出無(wú) CEF cache-lock 錯(cuò)誤。該流程專(zhuān)門(mén)捕獲二次進(jìn)程在 Tauri 深鏈轉(zhuǎn)發(fā)路徑安裝前于 CEF 緩存 preflight 階段退出這類(lèi)回歸。編寫(xiě)跨平臺(tái) spec 的六條規(guī)范一律使用 element-helpers.ts 中的 helper嚴(yán)禁在 spec 中使用原始XCUIElementType*選擇器點(diǎn)擊按鈕用clickNativeButton(text)不要內(nèi)聯(lián)寫(xiě)點(diǎn)擊邏輯判斷應(yīng)用 chrome 用hasAppChrome()不要檢查XCUIElementTypeMenuBar等待 WebView 用waitForWebView()不要檢查XCUIElementTypeWebViewmacOS 專(zhuān)屬測(cè)試用process.platform守衛(wèi)或獨(dú)立 spec 文件hash 路由使用navigateViaHash(route)——它內(nèi)部等待 hash 生效、document.readyState就緒以及 React 根掛載后才返回onboarding 之后walkOnboarding()還會(huì)等待#/home與 Home 頁(yè)標(biāo)記然后 spec 才能繼續(xù)導(dǎo)航。環(huán)境變量矩陣文檔給出了 E2E 運(yùn)行時(shí)可調(diào)的全部環(huán)境變量變量默認(rèn)值說(shuō)明APPIUM_PORT4723Appium 服務(wù)端口E2E_MOCK_PORT18473Mock 后端服務(wù)端口OPENHUMAN_WORKSPACE(臨時(shí)目錄)應(yīng)用工作區(qū)目錄OPENHUMAN_SERVICE_MOCK0啟用 service mock 模式OPENHUMAN_E2E_MODE未設(shè)置啟用破壞性測(cè)試支持 RPCE2E runner 會(huì)置為1OPENHUMAN_E2E_AUTH_BYPASS未設(shè)置啟用 JWT 旁路認(rèn)證DEBUG_E2E_DEEPLINK(verbose)設(shè)為0靜默深鏈日志E2E_FORCE_CARGO_CLEAN未設(shè)置強(qiáng)制在 E2E 構(gòu)建前執(zhí)行 cargo clean從 e2e-run-session.sh 源碼可以看到 runner 實(shí)際還會(huì)導(dǎo)出更多環(huán)境VITE_BACKEND_URL/BACKEND_URL指向http://127.0.0.1:${E2E_MOCK_PORT}把前端與 core sidecar 都指向 mockOPENHUMAN_TELEGRAM_BOT_API_BASE、OPENHUMAN_COMPOSIO_DIRECT_BASE_V2/V3重定向 Telegram Bot API 與 Composio 直連請(qǐng)求到 mock 端口實(shí)現(xiàn)外部依賴(lài)全隔離OPENHUMAN_KEYRING_BACKENDfile無(wú)頭 Linux CI 沒(méi)有可用 Secret Service/keychain改用文件型 keyring認(rèn)證狀態(tài)寫(xiě)入OPENHUMAN_WORKSPACE隨工作區(qū)一起清理OPENHUMAN_CEF_CACHE_PATH指向獨(dú)立臨時(shí)目錄mega-flowspec 會(huì)調(diào)用openhuman.config_reset_local_data刪除整個(gè)OPENHUMAN_WORKSPACE若 CEF 緩存放在工作區(qū)內(nèi)會(huì)被連根拔掉、殺死 WebDriver 會(huì)話報(bào) invalid session id因此 runner 把 CEF 緩存放到工作區(qū)外的兄弟目錄e2e-run-session.sh。Mock 后端的隔離設(shè)計(jì)app/test/e2e/mock-server.ts 是對(duì)共享 mock 后端的薄封裝從 scripts/mock-api-core.mjs 再導(dǎo)出startMockServer、stopMockServer、getRequestLog、setMockBehavior(s)等接口并額外提供 Telegram 注入工具injectTelegramUpdate向 mock 隊(duì)列注入一條 Telegram UpdategetTelegramSentMessages斷言 bot 的出站消息mock-server.ts。runner 在啟動(dòng)前會(huì)生成一份完整的 E2E config.tomle2e-run-session.sh將全部推理路由到 mock 的 OpenAI-compatible 端點(diǎn)api_url http://127.0.0.1:18473 primary_cloud p_e2e_mock default_model e2e-mock-model chat_provider e2e:e2e-mock-model reasoning_provider e2e:e2e-mock-model agentic_provider e2e:e2e-mock-model coding_provider e2e:e2e-mock-model [[cloud_providers]] id p_e2e_mock slug e2e label E2E Mock endpoint http://127.0.0.1:18473/openai/v1 auth_style none default_model e2e-mock-model注釋解釋了為何要預(yù)填充cloud_providersunify_ai_provider_settings遷移在首次啟動(dòng)時(shí)運(yùn)行若cloud_providers為空會(huì)種子化 OpenHuman 入口并設(shè)置primary_cloud從而把所有推理路由到OpenHumanBackendProvidersupports_streamingfalse永遠(yuǎn)返回非流式響應(yīng)mock 收不到/openai/v1/chat/completions。預(yù)填充后遷移跳過(guò)種子化provider_for_role()經(jīng)primary_cloud → slug e2e → auth_stylenone → OpenAiCompatibleProvider解析supports_streamingtruemock 才能收到流式請(qǐng)求。wdio.conf.ts 還實(shí)現(xiàn)了每個(gè) spec 文件開(kāi)頭無(wú)條件調(diào)用/__admin/reset重置 mock 狀態(tài)mock 后端持有模塊級(jí)可變狀態(tài)會(huì)話、Cron 任務(wù)、webhook 觸發(fā)器、請(qǐng)求日志、socket 會(huì)話歷史上一旦某個(gè) spec 失敗未執(zhí)行自己的 reset 就會(huì)污染下一個(gè) spec 文件現(xiàn)在通過(guò)resetMockBackendOncePerSpecFile按文件路徑去重既保證隔離又不打斷同文件內(nèi)it之間有意保留的狀態(tài)。運(yùn)行器與 WDIO 配置單會(huì)話、順序執(zhí)行app/scripts/e2e-run-session.sh 是統(tǒng)一會(huì)話運(yùn)行器負(fù)責(zé)校驗(yàn)構(gòu)建產(chǎn)物存在pnpm test:e2e:build先行并檢查前端 bundle 中確實(shí)包含 mock URL否則明確報(bào)錯(cuò)提示重新構(gòu)建清理平臺(tái)緩存的應(yīng)用數(shù)據(jù)macOS 的~/Library/WebKit|Caches|Application Support/com.openhuman.appLinux 的~/.local/share|.cache|.config/com.openhuman.appWindows 的%APPDATA%/%LOCALAPPDATA%并備份/生成config.toml啟動(dòng) driver輪詢(xún)其/status端點(diǎn)就緒以--maxInstances 1運(yùn)行wdio在 EXIT trap 中依次回收 driver → 應(yīng)用 → 工作區(qū)并對(duì) CEF 子進(jìn)程樹(shù)做先快照子 PID、再殺父進(jìn)程、最后 SIGKILL 殘留的處理避免父進(jìn)程退出后子進(jìn)程被 reparent 到 init 而無(wú)法pkill -P定位e2e-run-session.sh。wdio.conf.ts 的關(guān)鍵配置maxInstances: 1 單會(huì)話WDIO 每個(gè) worker 只建一個(gè) session所有 spec 在同一應(yīng)用進(jìn)程內(nèi)順序執(zhí)行spec 之間無(wú)重啟成本測(cè)試有意依賴(lài)順序spec N 的狀態(tài)流入 spec N1每個(gè) spec 自行負(fù)責(zé)所需重置capabilities[wdio:maxInstances]: 1WDIO 的 per-capability 上限防止 runner 為每個(gè) spec 各調(diào)度一個(gè) WebKit 會(huì)話導(dǎo)致同時(shí)重置應(yīng)用、級(jí)聯(lián)啟動(dòng)超時(shí)before鉤子在窗口句柄列表中優(yōu)先切換到 URL 含tauri.localhost的主應(yīng)用窗口找不到再回退到第一個(gè)非about:窗口afterTest鉤子任何失敗測(cè)試自動(dòng)調(diào)用captureFailureArtifacts見(jiàn)下節(jié)輸出failure-*.png與failure-*.source.xmlbailE2E_BAIL_ON_FAILURE1時(shí)置為 1首個(gè)失敗 spec 后停止Mocha 超時(shí) 120 秒工具密集型 spec 后的重置可能等待 WebKit 與 core 清理保持兩分鐘套件預(yù)算而單個(gè)輪詢(xún) helper 各自保留短而具診斷性的超時(shí)specFileRetries: 0Linux 分片在e2e-run-all-flows.sh重啟 driver 后重試失敗 spec此處重試只會(huì)復(fù)用同一個(gè)卡死的 driver。CI 工作流Push / PR 檢查默認(rèn) PR gate 是 .github/workflows/ci-lite.yml快速車(chē)道質(zhì)量檢查 變更文件的單元測(cè)試E2E 套件不在面向main的 PR 上運(yùn)行完整 E2E 矩陣Rust mock 后端、Playwright Web、Linux/macOS/Windows 桌面運(yùn)行在 .github/workflows/ci-full.yml觸發(fā)條件是目標(biāo)為release分支的 PR 及每次 pushmacOS 與 Windows 桌面 E2E 不隨每個(gè) PR 運(yùn)行需要跨平臺(tái)桌面信號(hào)時(shí)使用手動(dòng)觸發(fā)的 E2E workflow.github/workflows/e2e.yml。.github/workflows/e2e.yml 的手動(dòng)觸發(fā)輸入包括run_linux默認(rèn) true、run_macos/run_windows默認(rèn) false等待原生驅(qū)動(dòng)支持、fulltrue 跑全量分片套件false 只跑指定 spec、spec_path默認(rèn)test/e2e/specs/mega-flow.spec.ts與spec_label。它復(fù)用 .github/workflows/e2e-reusable.yml其中對(duì) Appium 與 chromium driver 做了緩存~/.appium、/usr/local/lib/node_modules/appiumkey 為appium3-chromium-${{ runner.os }}-v2并對(duì) CEF 運(yùn)行時(shí)下載約 400MB與 Rust 構(gòu)建做分層緩存。macOS / Appium ChromiummacOS/Appium Chromium 可用于本地運(yùn)行也可通過(guò)手動(dòng)分發(fā)的 E2E workflow 執(zhí)行步驟固定為安裝 Appium Chromium driver → 構(gòu)建.appbundle → 運(yùn)行全部 E2E flows。故障排查L(zhǎng)inuxWebView not ready 超時(shí)默認(rèn) CEF 運(yùn)行時(shí)下這通常意味著過(guò)期的本地 runner 試圖用 WebKitWebDriver 驅(qū)動(dòng) CEF 支撐的 WebView。當(dāng)前 CI 在 Linux 使用 Appium Chromium driver請(qǐng)改用 app/scripts/e2e-run-session.sh 或 PR CI workflow 的受支持 Linux 路徑。確保DISPLAY已設(shè)置且 Xvfb 在運(yùn)行export DISPLAY:99 Xvfb :99 -screen 0 1280x1024x24 同時(shí)確保 dbus 已啟動(dòng)webkit2gtk 依賴(lài)eval $(dbus-launch --sh-syntax)Linux找不到 Appium Chromium drivernpm install -g appium3 appium driver install --sourcenpm appium-chromium-drivermacOStauri dev下深鏈不工作深鏈要求.appbundle請(qǐng)改用pnpm tauri build --debug --bundles appDocker首次構(gòu)建很慢首次 Docker 構(gòu)建需要編譯 Rust 并安裝 E2E harness 依賴(lài)后續(xù)運(yùn)行使用緩存層Cargo registry 與 git sources 通過(guò) Docker volumes 緩存見(jiàn) e2e/docker-compose.yml 的e2e-cargo-registry、e2e-cargo-git、e2e-rust-target、e2e-tauri-target、e2e-pnpm-store、e2e-node-modules、e2e-cef-cache等命名卷。其中 CEF 緩存卷尤其關(guān)鍵cef-dll-sys將下載寫(xiě)入~/Library/Caches/tauri-cef容器內(nèi)無(wú)命名卷時(shí)每個(gè)新容器都會(huì)重新下載約 400MB 的 CEF 歸檔且容器無(wú)出站 DNS/TLS 訪問(wèn) CDN 時(shí)會(huì)失敗。shm_size: 2gb是為匹配 GitHub-hosted ubuntu-22.04 runner 給 CEF 的共享內(nèi)存配額。示例 SpecNotifications文件app/test/e2e/specs/notifications.spec.ts該 spec 通過(guò)live core sidecar與 Notifications UI 頁(yè)面測(cè)試通知 RPC 方法notification_ingest通過(guò) core RPC 創(chuàng)建新通知notification_list驗(yàn)證已攝入的通知被返回notification_mark_read將通知標(biāo)記為已讀notification_stats檢查聚合統(tǒng)計(jì)形狀UINotifications 頁(yè)面渲染集成通知區(qū)[data-testidintegration-notifications-section]UINotifications 頁(yè)面展示系統(tǒng)事件區(qū)[data-testidsystem-events-section]。運(yùn)行bash app/scripts/e2e-run-spec.sh test/e2e/specs/notifications.spec.ts notifications平臺(tái)說(shuō)明RPC 類(lèi)斷言notification_ingest、notification_list、notification_mark_read、notification_stats通過(guò)統(tǒng)一 Appium Chromium 后端執(zhí)行UI 斷言依賴(lài)browser.execute()支持當(dāng)前后端在所有平臺(tái)均提供。源碼中waitForCoreSidecar先輪詢(xún)core.ping直至 sidecar 就緒最長(zhǎng) 30 秒模塊級(jí)變量ingestedNotifId跨用例共享服務(wù)端生成的 UUID保證 mark_read/list 引用同一通知notifications.spec.ts。Agent 可觀測(cè)的產(chǎn)物捕獲層gitbooks/developing/agent-observability.md 與 app/scripts/e2e-agent-review.sh 提供了一個(gè)**面向編碼 AgentCodex、Claude Code、Cursor**的可檢查運(yùn)行入口落盤(pán)截圖、頁(yè)面源碼 dump 與 mock 請(qǐng)求日志bash app/scripts/e2e-agent-review.sh產(chǎn)物落在app/test/e2e/artifacts/timestamp-agent-review/典型布局app/test/e2e/artifacts/ISO-timestamp-agent-review/ 01-welcome.png 01-welcome.source.xml 02-post-welcome.png 02-post-welcome.source.xml 03-post-onboarding.png 03-post-onboarding.source.xml 04-privacy-panel.png 04-privacy-panel.source.xml mock-requests-after-welcome.json mock-requests-after-onboarding.json mock-requests-after-privacy.json failure-test.png # 僅失敗時(shí)生成 failure-test.source.xml # 僅失敗時(shí)生成 meta.json # 運(yùn)行元數(shù)據(jù) 檢查點(diǎn)索引實(shí)現(xiàn)要點(diǎn)helpers/artifacts.tscaptureCheckpoint(name)按序號(hào)命名捕獲使 run 目錄按時(shí)間順序可讀saveMockRequestLog(name, getRequestLog())落盤(pán) mock 請(qǐng)求日志快照captureFailureArtifacts已接入 wdio.conf.ts 的afterTest鉤子任何失敗測(cè)試自動(dòng)觸發(fā)spec不應(yīng)直接調(diào)用環(huán)境覆蓋E2E_ARTIFACT_DIR強(qiáng)制指定 run 目錄、E2E_ARTIFACT_ROOT自動(dòng)命名 run 目錄的父目錄默認(rèn)app/test/e2e/artifacts、E2E_ARTIFACT_LABEL目錄名標(biāo)簽?zāi)J(rèn)runwrapper 設(shè)為agent-review。新 spec 中按如下方式使用import { captureCheckpoint, saveMockRequestLog } from ../helpers/artifacts; import { getRequestLog } from ../mock-server; await captureCheckpoint(after-connect-click); saveMockRequestLog(after-connect-click, getRequestLog());文檔明確列出該層刻意不做的范圍視覺(jué)基線/組件全狀態(tài)圖像 diff、每次點(diǎn)擊都截圖太吵、真實(shí)集成Gmail/Notion/Telegram僅 mock、新測(cè)試框架/reporter——先讓這一個(gè)閉環(huán)跑通再考慮擴(kuò)展更多 flows。Rust 推理 Provider E2E除桌面 UI E2E 外倉(cāng)庫(kù)還提供純 Rust 層的推理 Provider E2Etests/inference_provider_e2e.rs。它使用wiremockmock HTTP 上游無(wú)需真實(shí) LLM API 調(diào)用覆蓋 OpenAI-compat chat、Anthropic 認(rèn)證風(fēng)格、per-model temperature 抑制、Ollama 本地 provider以及/v1HTTP 端點(diǎn)的認(rèn)證層。# 本地 bash scripts/test-rust-inference-e2e.sh # 通過(guò) DockerLinux與 CI 同鏡像 docker compose -f e2e/docker-compose.yml run --rm inference-e2ee2e/docker-compose.yml 中的inference-e2e服務(wù)復(fù)用同一 CI 鏡像以bash -lc ./scripts/test-rust-inference-e2e.sh為入口掛載工作區(qū)與 Cargo 緩存卷——保證本地復(fù)現(xiàn)與 CI 完全一致。小結(jié)OpenHuman 的 E2E 體系是一套以統(tǒng)一 WebDriver 后端為基礎(chǔ)、以 Mock 全隔離為保障、以穩(wěn)定 testid 與輔助層為規(guī)范、以產(chǎn)物可觀測(cè)為調(diào)試出口的完整工程實(shí)踐文檔定義的 Appium Chromium 方案端口 4723、CSS/DOM 選擇器依然是當(dāng)前文檔中的標(biāo)準(zhǔn)配置而源碼已演進(jìn)為 Wry 運(yùn)行時(shí) tauri-driver 的 Linux 路徑兩者可通過(guò) wdio.conf.ts 與 e2e-run-session.sh 對(duì)照核實(shí)從 element-helpers.ts 的統(tǒng)一定位 API 到 deep-link-helpers.ts 的三級(jí)深鏈回退再到 wdio.conf.ts 的單會(huì)話順序執(zhí)行與 mock 按文件重置每個(gè)環(huán)節(jié)都能在倉(cāng)庫(kù)中找到對(duì)應(yīng)的實(shí)現(xiàn)與注釋依據(jù)想深入源碼的讀者可沿 app/test/e2e/helpers 目錄、app/test/wdio.conf.ts、app/scripts/e2e-run-session.sh、e2e/docker-compose.yml 與 .github/workflows/e2e-reusable.yml 逐步追查將本文每一處結(jié)論落到具體代碼行上?!久赓M(fèi)下載鏈接】openhumanOpenHuman is an open source personal AI for Mac, Windows and Linux — local-first memory, agent orchestration, and deep research.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/op/openhuman創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
国产人伦精品一区二区三区 | 亚洲校园激情| 极品欧美一区二区三区| 国产专区第一页| 久久9精品视频| 欧美在线啊啊| 91精品久久综合熟女| A啊啊在线观看| 我要去看2个日本美女.com曹逼| 欧美一级色| 五月天亚洲网| 精品一区二区成人| 精品二999| 久久久久女教师免费一区| 亚洲性爱免费电影| 日韩特一级久久| 亚洲精品一二区| 色婷婷蜜臀av| 人人艹亚洲| AV天堂男人的天堂| 最新中文字幕精品在线| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 国产高清午夜成人在线观看| 日日爽夜夜爽| 色噜噜日韩精品| 操逼操操操91| 日韩成人人妻网站| 婷婷五月天激情网| 女同性恋中文字幕| 操我啊啊啊啊啊| 首页中文字幕中文字幕免费| 亚洲综合第一页| 亚洲偷拍自拍在线视频| 中文字幕在线第二页| 人人摸人人干| 毛片久久| 99热日| 婷婷久草| 日本国产欧美高清在线| 91美女在线精品视频| 97干色| 黑人与人妻| 美女操逼福利视频| 一级人妻性爱视频| 91n处女在线观看| 久久这里精品国产99丫e6| 日韩精品在线观看观看| 性色A∨91| 乱理日韩中文| 日韩精品 资源| 国产97免费视频| 亚洲欧美91√| 97天天弄| 亚洲第一二区另类图| 男人的天堂2010| 国产成人亚洲精品无码最新在线| 插入粉嫩少妇视频| 野狼激情网| 色综合婷婷| 333kkkk·亚洲com久久| 蜜乳AV一区| 91九色丨风韵犹存| 九九久久玖玖| 超碰九7| yazhououmeizongya| 中文字幕诱惑制服人妻丝袜美丝袜美 | 国产强奸乱伦无码视频| 综合夜夜| 爱我干综合| 欧美草草高清日韩视频| 四虎国产成人精品免费一女五男| 操逼啊啊啊91| 久久久久七视频| 最新亚洲黄色免费电影 | 三级片网站在线播放| 伊人玖玖网| 性爱网站一区二区| 91丝袜美腿网站| a级免费在线观看| 91在线欧色| 99re在线| 久久久久久性爱片| 男插女青青影院| 婷婷综合在线观看| 国产真乱mangent| 九月AV| 超碰在线91| 激情五月天色播| 狠操91,com| 欧美日韩大香蕉| 国产日韩精品一区二区三区| 欧美情色亚洲| 热热热热日日漂亮永久永久国产日| 少妇无码999| 91蜜桃传媒精品久久久一区二区| 天天欧美| 精品在线蜜臀| 午夜一区| 欧美色青| 中文一区二区三区影院| 91黑丝在线| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 99热精品在线| 中文字幕第7页| 69天堂| 九九久久综合| 亚洲狠| 久久婷色| 欧美日韩中文字幕人妻| 欧美极品女人的天堂| 精品女同一区| 免费精品中文字幕| 久久鲁夜| 亚洲成a人片在线观看中文!!!| 久久最新视频免费观看| 操日韩第| 97精品视频在线| 综合久久婷婷| 欧美性第一页| 蜜臀久久久99久久久久| 久艹伊人精品综合在线| 五月丁香综合激情| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 后X久久| 天天插网| 日韩精品一区的| 另类专区加勒比| 日韩激情中文字幕有码| 欧美日韩天堂| 欧美系列在线一区二区| 免费9 1久久| 亚洲AV秘无码一区..| 天美传媒AV国产在线| 爱爱动态试试看6 0秒| 熟女天天干| 桃花色涩综合影院| 好一吊区二区| 99久久久久久亚洲精品不卡| 农村少妇久久久久久久| 久草老司机| 97精品网| 九九九九一区| 亚洲美腿丝袜香蕉影视欧美成人| 激情看片网站| 国产成人www免费人成看片| 久久黄色视频一区二区三区| 四虎影视在线| 久久国产精品,久久国产| 国产国产亚洲一二三久久| 北条麻妃性愛视频| 日韩av情韩国爱禁区av一区二区| 国内一区二区三区| 九九九999久久久网站| 97伊人| 97久操| 日韩图色| 高清在线不卡一区二区 视频| 男人亚洲天堂| αⅴ天堂| 裸体美女免费看网站青草| 国产丝袜视频| 日本精品一区二区三| 加勒比综合在线| 91欧美综合| 婷婷久久五月综合激情| 国产网站在线播放| 亚洲五月丁香花狠狠干一区二区三区 | 大香蕉520| 自偷自拍的亚洲视频| 国产91久久九九免费精品无码| 亚洲精品人妻吞精av| 婷婷五月天成人网| 人人澡综合涩| 东京热91| 福利视频合集| 色呦呦呦在线观看视频| 超碰AV在线| 97在线免费看| 黄色十八禁| 亚洲欲色| 久久毛卡| 女人爽到高潮久久久| 亚 欧 美 综合| 97视频7| 天天搞欧美| 色综合一区二区三区| 男人的天堂午夜av| 鲁鲁色综合网| 欧洲亚洲天堂精品 | 宅男影院久久久,99| 丝袜美腿制服人妻二区中文字幕| 色综合五月天| 久九9精品| 久久精品| 国产精品免费视频人成| 日韩ab网| 天堂综合网| a一区二区三区乱码在线| 国产亚洲综合欧美一区| 欧美婷婷久久| 欧综合网| 激情干在线| 蜜色网色哟哟| 亚洲成成熟女人综合一区二区| 人人玩人人添人人澡免费| 精品国产精品一区二区| 青青草字幕AV| 明星性猛交ⅹxxx乱大交| 亚州免费啪啪视频| 后入 亚洲 美女 射| 加勒比人妻综合| 亚洲综合嫩| 国产视频一区二区三区在线免费观看| 久久五月综合| 九九热在线精品视频| 男人天堂最新手机版在线青青草| 亚洲伊人a线观看视频| 久久久一级| 久久久久久少妇| 国产无马在线| 高潮内射在线| 97超级久久| 老司机深夜影院18未满| 日韩人妻资源在线看| 裸体美女久久久| 欧洲人妻视频| 99啪啪| 插B在线观看| 秋霞成人做爱| 色呦呦、国产精品| 91美女视频在线观看| 美国人人操人人操| 97资源欧美| 亚洲女优有码无码高清| 一级久久久久久久久久久| 久热伊人99re| 清纯唯美综合| 免费观看啪视频| 国产精品一区二区麻豆| 精品性爱一区二区| 超碰天天操| 自拍偷拍 日韩欧美| 日本在线一二 | 好爽视频在线观看视频| 老鸭窝亚洲毛片| 日韩无码人妻中字久久三区四区| 中文字幕免费看大片| 国产丸一视频| 日本高清一区二区在线| 日韩图色| 久久久精品日本一道| 青青青在线高清视频在线一二三四区| 开心五月激情网| 亚洲男人天堂手机版| 立川理惠无码一区二区| 亚洲精品九九九九九九| 精品国产精品一区二区| 日本欧美中文字幕| 懂色AV中文| 国产成人一级av88| 啊啊啊水好多| 麻豆国产原创AV色哟哟| 中文人妻av高清一区| 后入式在线免费观看60秒| 日韩国产欧美伦理在线| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 亚洲欧美综合区自拍另类| 91在线/欧洲| 美女被艹尤物视频| 啊啊啊啊网站| 九九久久99| 狼狼色丁香久久婷婷综合五月| 九色 人妻 大香蕉| 国产精品 久久久精品一牛| 亚洲高清少妇| 99久久久| 91啦人妻| 熟女熟妇一区二区三区视频| 亚洲天天艹| 日韩黄片影院| 欧美日韩国产色五月综合在线| 欧美刺激色黄片免费看| 日韩大香蕉| 97视频620| 无码av永久免费专区网站| 蜜臀网址在线| 日本九九久久99播| 欧美日韩操逼动图| 思思热一热婷婷热一热| 久久久久国产精品片区无码直播| 欧美综合另类| 欧美91精彩| 亚洲操人| 在线a v| 啊啊啊啊好疼| 亚洲熟女乱综合一区二区三区| 极品极品色影院| 无码人妻精品酒店| 亚洲日本天堂| 插老姨肥穴| 囯产操逼片| 97久久网| 久久成人精品| 超碰久久性爱| 美女一区二区国产精品| 国产视频人人网| 日日玩天天干| 操淫穴亚洲五月丁香| 青青草日韩无码| 粉嫩av久久一区二区三区| 日本熟妇人妻一区二区三区| 人妻内射一区二区在线视频| 色一射色一射| 91超级碰| 日韩在线一区高清在线| 久久久少妇| 天堂精品一区| 成人综合网 欧美| 6080yy午夜理论三级一区二区三区无码| 久久社区一区二区三区| 蜜臀久久99精品久久久电影| 九久久精| 久久精品国产久精国产| 久干网| 欧美超碰9798| 吻戏激情性巴克| 久久久久久国产无码精品| 人人操人人爽人人操人人| 91精品导航| 天天综合网合集91| 97自拍一区| 熟女人妻av在线资源,黄色的资源| 懂色AV蜜臀无码精品APP| 99老司机精品视频在线观看| 国产高清自拍视频| 欧美天天射| 最新制服中文第一页| 欧美日韩美女精品久草一区二区三区| 欧美A√综合网| 欧美性爱一内片一区二区三区| 男人的天堂2010| 中文字幕在线高清男人的天堂| 五月天丁香婷婷综合网站| www.91人妻.com| 欧洲在线性爱视频| 99999精品| 日韩啪啪视频| 精品九九九九九九| 凹凸精品熟女在线观看| 欧美 亚洲 第一页| 久久男人的天堂| 超碰九区| 又大又大又大又粗爽高潮观看| 十八禁视频网站| 性开放中文AV高清无码免费看| 为用户提供免费看黄网址在线观看| 九九九精品成人免费视频小说| 色吧 综合| 亚洲男人天堂网| 老熟女91| 欧美人人曰人人操人人射射| 欧美日本中字另类在线| av天堂手机版追回| 国产这里只有精品| 久久天天性久久伊人| 操人妻少妇中文 | 青青操在线亚洲视频观看欧美在线 | 天天视频综合在线观看视频| 亚洲女毛多水多21P| 国产三区免费在线观看| 日本在线播放不卡一区| 综合网色| 欧美日韩99精品麻豆传媒| 香蕉99秘 精品一区丁香| 91美女视屏| 天天天乱色综合全| 经典丝袜一区| 欧美九九九九九| 青青草毛片| 久久亚洲欧美中文字幕国语| 思思热影视| www.91久久| 亚洲人成网www| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 翔田千里AV无码秘 三区| 欧美91色| 国产又大又硬又长又粗| 亚洲AV永久无码一区仙野| 六月天婷婷| 黄页大片在线观看| 9999九九九久久久| 0755午夜福利视频| 精品国模无码| 国产小黄片在线免费观看| 激情五月婷婷综合| 97色妞| 精人妻无码一区二区三区伊人直播| 天天日美女的B| 久久久999国产| 青青色在线观看| 最好看的中文字幕在线2018| 亚洲人妻av| 二对二中文字幕。| 亚洲AV永久无码精品成人调教| 色欧美综合| 成年人三级黄色片视频| 天天爽人人综合免费7799| 又大又长又爽| 日韩有码回春沙龙第一页| 97国产人人| 久久这里是精品| 久久人妻视频网| 欧美乱妇狂野欧美在线视频| 日韩亚洲欧美中文字幕| 操逼片中文| 久都青青视频| 国产2.3.4区| 无码久久国产| 嫖老熟女A片一二三区| 亚洲丝袜二区| 伊人一区二区三区| 久久加勒比| 熟女精品va中文字幕| 青青草视频久久| 亚洲丰满很很操| 污色区网站| 日韩国产中文字幕| 欧美日韩婷婷中文| 91视频精品| av在线资源| 97超碰久| 国产白丝av| 日本护士高潮| 日本淫穴在线| 摸奶性爱视频网站在线免费播放| 婷婷亚洲综合| 久操免费视频| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 亚洲性综合9| 99日视频在线免费| 精品国产人成在线| 热热热热日日漂亮永久永久国产日| 青青操日韩| 免费公开人人操| 色爱欲亚洲| 亚洲国产97| AV综合中文字幕干| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 亚洲日韩资源| 色久桃花影院在线观看| 中文字幕片| 97超碰色色| 色婷婷六月| 亚洲脚交| 在线观看精品国产免费| 九九九九97| 精品人妻一区二区视频| 久久国产精品一级二级三级| 91天堂| 五月婷婷综合在线| www欧美91| 久久久激情| 亚洲九九视频| 久99热| 极品少妇久久久久| 噜噜在线| 91精品老女人| 国产超碰国产97| 国产操逼网站亚洲一级黄色| 97超碰无码网| 操迟操逼在巾线Fre看| 久久久久密臀一区二区| 亚洲伊人a线观看视频| 夜夜嗷嗷一区二区| 色视频蜜乳| 男人干美女| 亚洲精品乱码线路中文字幕| 91撸色网 玖玖网 欧美| AAAAAAAAA黄片| AV色图| 国产 v乱码一区二| 亚洲毛片久久| 久操99| 欧美日韩黄片精品在线| 欧美成人一区二区| 久操热| 狠狠超| 欧美成人亚洲精品| 在线观看成人性爱免费小视频| 亚洲十八禁止| 亚洲欧洲综合视频在线| 天天插网| 玖玖爱一区在线| 亚洲国产麻豆一区二区三区 | 爱丝福利| 91蜜臀在线久久久久| 一级AV性爱| 日本高清熟女久久一区| 99操| 成人无码在线视频网站| 久久精品老司| 精品区国产区一区二区三区| 啊啊啊操死我了| 一级A啪啪啪啪| 久热热| 国产超碰在线一区| 青娱乐亚洲自拍| 中文字幕青青草| 精品一区二区三区最新| 男人高清无码一区二区| 亚洲欧美骚| 97超碰天天爱天天爱| 久久精品国产亚洲AV无码电影| 综合色欧美| 欧美日韩婷婷中文| 91丨九色丨大屁股| 欧美激情另类一区二区| 亚洲中文字幕熟女少妇一区二区| 97精品一二区| 成人性爱视频在线看| 啊v在线观看视频| 欧色性第一页| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 巨爆乳一区二区爆乳区| 91精品国产长腿丝袜美女| 素人美腿视频网站| 日本高清一区二区在线| 人人操人人色人人摸| 91无码人妻| 五月丁香婷婷啪啪| 1769一区| 久久男人| 精品乱码在线观看| 亚洲成人一二三区| 人妻久久久| 欧美性爱一级操| TS人妖另类精品视频系列 | 日本国产高清色www视频在线| 婷婷爽人人婷婷爽视频| 韩国毛片一区二区三区| 久久综合中文国产| 91麻豆天美国产欧美日| 日韩性爱高清免费视频| 2017av无码免费无线播| 亚洲精品97中文字幕| 丰满人妻-区二区三区免费| 蜜乳AV.COM| 91 偷| 91精品婷婷国产综合久久竹菊| 屁屁影院一区二区三区国产| 欧美18老人禁| 999久久芭蕾| 日韩欧美中文字| 欧美永久激情一区二区| 青青草日逼视频| 欧美在线视频99| 香蕉人人操tv| 性色av网站| 日韩无码黄色片| 亚洲av国产av综合av卡| 久久产精品一区二区三区电影| 99少妇内射| 色香欲天天天天综合色| 2017超碰| 少妇色综合| 1区2区3区中文字幕日韩| 欧美三级一级| 久久久久久久九九九九九九| 国产一区二区三区中文字幕| 精品超碰中文在线| 一区二区三区四区色图| 欧美日韩91| 大香蕉520| 国产成人无码久久精品| 色五月首页| 狠狠色婷婷7777久| www.99视频| 99热在线观看| 综合熟女| 天天干天天日天天射黄色| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 亚洲自拍偷拍视频在线| 老司机福利青青草| 国产黄色视频久久| 在线播放成人高清免费视频| JIZZJIZZ亚洲女人被躁| 激情 欧美 亚洲 小说| 欧美性爱第一页久久| 91看黄片| 一区二区三区黄色片a| 超碰在线观看av不卡| 欧美综合娱乐久久| 午夜福利视频在线一区| 九月丁香| 婷婷成人久久久精品| av操操不卡| 一区| 丰满欧美放荡少妇在线| 超碰97综合网| 亚洲图片 欧美电影| 婷婷精品国产欧美精品亚洲人人爽| 成人一区二区三区四区| 少好三P| 清纯唯美综合| 免费视频一二三区| 成人精品在线免费视频| 亚洲天堂五月天国产| 岛国色情视频在线观看| 久久美女福利是上海美女| 99热在线观看| 国产精品。| 超碰欧美97资源| 日韩熟女精一区二区三区不卡| 永久免费观看的毛片的网站| 亚洲欧美在线观看免费| 五月天激情小说| 在线天堂999| 任我爽在线视频免费观看| 熟人人妻少妇精品久久| 思思久热在线精品66| 国产精品无码av| 91大学精品激情戏| 伊人网在线观看| 2017天天操天天日| 亚洲乱色熟女一区| 国产三级多多影院2022国产AA一级毛片无码 | av天堂精品久久| 强奸a片网| 99久久婷婷国产综合精品草原| 婷婷五月天影院| 欧中日成人免费影视| 4虎在线视频| 欧美AB在线| 国产精品一二三在线看| 91久久精品国产| 欧美最大综合网| 搡老熟女免费视频| 黑人操一区二区| 黄页大片在线观看| 日本道日本道中文字幕日本道最新日本道在线观看 | 丁香婷婷九月| 色悠久| 午夜超爽| 久青草影院| 激情图片伦理国产一区二区日韩| 一区二区视频你懂的| 欧美熟妇精品黑人巨大91| 高潮的A片激情扒开一区| 免费看久久久性性| 91精品国产乱码| 欧美高清18A片| 成人看片网站| 婷婷精品| 26UUU欧美激情一区二区| 激情五月天婷婷| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 日韩中文字幕二区| 精品人妻一区二区乱码一区二区| 九九热精品视频六| 色黄色美女大长腿午夜视频| 睡产熟女乱伦| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 亚洲激情视频| 久久精品三级影视| #NAME?| 囯戸精品高潮呻吟旡码| 97亚洲综合电影| 加勒比色99999| 美女一区二区国产精品| 日韩情色AV| 亚洲巨爆乳一区二区三区四季网| 中文字幕性感少妇av| 天天躁狠狠躁av| 日本一级真人黄色性爱视频| 五月综合久久| 美女性91| 男人天堂久久精品| 加勒比aⅴ| 97天堂| 欧美图片校园春色| 九九av| 蜜臀Av一区二区三区| 囯产操逼片| 久久精品91| 日韩丝袜二区| 日韩人妻精品| 丰满高潮18xxxx| 色婷婷一区二区三区久久午夜| 日韩精品在线观看观看| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 97网址www| 中文字幕在线免费观看 | 国产久久av| 亚州欧美一区| 人人操人人操人人人操| 夜夜福利| 高清成年美女黄网站免费大全 | 久久大香蕉97| 色婷婷影院| 大奶的诱惑| 青青草原人妻| 国产精品日韩在线一区| 人妻人人澡人人爽人人| 欧美日韩国产高清在线一二三区 | 美女91在线| 99热色这里只有精品| 久久亚洲AV无码白度| 富二代亚洲精品99| 91成人高清在线观看| 日本欧美色| 日韩欧美午夜视频在线| 超碰欧美97资源| 日本久久99| 懂色av一区二区三区天美传媒| 神马福利久草| 日本色色视频网站| 碰人碰碰人人开房人肉| 色婷久久| 怡红院成人视频| 9999免费精彩视频| 风月影院十八禁| 亚洲av热热色| 啪一啪免费视频| 亚州九九九精品视频| 五月丁香综合啪啪| 超碰97人妻在线| 久久亚洲熟妇在线视频| 久久香蕉综合一本到3atv| 97资源亚洲| 欧美综合色站| 在线观看黄色电话| 老熟女网站| 91女在线观看| 天天操天天射天天日| 欧美乱妇狂野欧美在线视频| 欧美疯狂做爰xxxx| 84YTCOM性无码| AV中文字幕剧情1区2区3| 婷婷午夜| 老熟女搡BBBB搡BBBB视频| 九99久久| 日韩97视频!在线| 亚洲精品第一| 91狠狠综合久久| 亚洲色图20p| 3p国产欧美99热| 国产免费内射视频| 丁香婷婷激情五月天无毒不卡| 久久东京国产精品视频| 日B操| 综合自拍| 9久久美女首页| 激情六月婷婷| 小日子操bb在线看| 日少妇视频| 国产热av| 成人日本精品九区| 色婷婷综合网站| 日本十八禁免费看污网站| 九九热av| 97天天在线| 毛片17S| 啪啪啪大香蕉| 国产三级中文有码在线视频| 免费?级毛片无码?∨蜜芽试看| 97久久久网站| 久久夜嗨| 天天看综合网| 欧美一区二区亚洲天堂| 亚洲天堂一区二区久久| 1769成人国产精品视频| av橘色网站| 99精品人人爽| 欧美三级免费伊人| 日韩高潮一区| 超碰91在线| jizzjizz欧美| 人人操人人干网页| 国产高清亚洲日韩一区 | 欧美玖玖爱免费玖玖| 亚洲一二三精品久久网| 操婷婷逼| 51一区二区三区| 久久国产AⅤ| 欧美97在线欧| 天欧美在线| 国产精品久久久久久久久久久久久久久 | 久久久久久亚洲精品中文字幕人妻| 91在线视频观看国产| 手机午夜电影神马久久| 亚洲天堂欧美| 诱惑网综合| 欧美操逼录像国产黄色国产| 欧美综合自拍亚洲综合图| 色老牛| 亚洲区限制级| 久久精品亚洲婷婷| 中文字幕黑人大片| 99热这里| 亚洲少妇色| 黄污污污污| 99热这里都是精品| 中文字幕一区二区三区视频播放| 日韩人妻中文视频| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 91中文字幕在线观看| 伊人991| 亚洲免费97免费| 禁十八久久| 97超久碰| 亚洲色资源| 操死我了嗯嗯嗯| 欧美韩国你懂得在线 | 东北女人操比视频| 亚洲。日韩。欧美| 久久国产视频性吧| 在线国产探花| 国产99 中文字幕日韩小视频| 日韩一级片在线看| 天天天天操| 日本一级二级三级网站| 视频黄色国产一级| 成人乱人伦一区二区| 精品中文字幕一区二区| 夜间福利片1000无码| 免费看欧美美女黄色大片| 欧美综合区| 精品一区二区人妖| 凸凹视频在线观看| 一,爱啪啪,在线免费视频| 中文字幕在线观看二区三区| 九九热超碰| 欧美第一页性| 熟女自慰久久久| 欧美色色人| 啊啊啊啊啊啊啊啊要喷了| 精品久久大胆人体| 久热网| 91成人无码| 日韩熟女操逼| 操逼免费视频无码国产| 国产亚洲日本精品在线| 中文字幕黄色片| 青青11操操操操操操操操| 丁香婷婷激情五月天无毒不卡| 国外91| 极品色综合| 你懂的在线观看区国产| 欧美性爱中文字幕无线码| av天堂5| 欧美色棕合| 伊蕉97蜜桃97狠狠综合干| 国产女主播视频在线观看| 亚洲日韩精品一区二区| 一个人免费视频观看在线WWW| 日本视频一区二区三区| 婷婷综合久久| 超碰性爱97| 亚洲在线观看| av影片在线观看不卡| 欧美不卡二区| 嗯嗯啊啊视频在线看| 久草色悠悠在线视频| 久久少妇人妻| 大香蕉淫人| 日韩精品资源专区二区| 在线看片国产精品每日更新| 中文字幕啊啊啊在线观看视频| 亚洲精品天天影视综合网| 骚货 中文字幕 av| а√天堂资源官网在线资源| 天天操天天舔| av操操不卡| 久久久精选| 欧美激情性爱视频网站| 欧美色97| 无码高清少妇久久| 天天插天天射| 精品九九淫乱男| 综合97| 日韩中文字幕人妻视频| 裸体美女国产免费久久久网站| 97这里只精品| www国产无码| 欧美 亚洲 偷拍自拍| 久久中文色图| 亚洲欲色| 日本午夜精品理论片A级APP发布| 综合网亚| 欧美色图亚洲色| blacked精品一区国产| 中文字幕精品丝袜| 99久久久| 欧美三级中文字幕hd| 宗合情欲网| 色逼综合| 91精品久久综合熟女| 国产美脚女优尤物在线观看| 在线小说视频一区| 肉动漫无遮挡h在线观看| 五月综合婷婷久久网站| 操我啊啊啊啊啊| 劲爆欧美人妖三区91| 亚洲电影中字一区二区| 超碰在线人妻| 96精品久久久| 亚洲免费成人在线高清无码视频| 激情婷婷五月天| 亚洲猛交| 18禁美女裸体无遮挡啪啪| 久久五月份| 日曰骚久久精品| hd成人一区二区在线| 激情文学 国产一二三aV| 999精品乱码| 动漫爆乳3D奶水一区在线观看| 欧美韩国你懂得在线 | 老熟女乱伦一区| 人妻天天爽夜夜爽爽| 97色亚洲| 日韩97超碰中文字幕| 亚洲性天堂| 久久久久成人亚洲国产| 色网1| 日韩AV无码中文一区二区| 欧天美中出| 人妻一区视频| 欧美成人一区二区| 欧美日韩一区二区三区四区蜜桃| 狠狠亚洲| 99精品欧美一区二区三区桃色| 97精品在线| 在线视频免费播放一区| 传媒免费一区二区三区| 中文字幕一区二区三区高清| 久久综合女优| 日韩中文字幕视频| 欧美日本天堂| 高清在线不卡一区二区 视频| 美女的肌被草喷水视频| 国产精品久久久久久片| 呻吟 欧美 日本 中出| 欧美人妻一区| 日韩欧美麻豆| 天天日夜夜爽| 一二三四区电影| 噜噜在线| 九九AV| 久久久久久久久久久久黄色| 亚洲激情综合另类男同| av72网| 国产一区二区在线电影| 91n免费处女| 欧美在线观看综合国产| 黄色成年| caopeng97| 久久久久久99AV无码免费网站| 久久国模av| 激情综合网五月婷婷五月天| 裸体1区| 强奸xx国产| 一起草高清无码| 另类av天堂| 嫩草影院在线观看精品 | 色吧91| 一级黄碟在线观看| 欧美黑人精品一区二区| 欧美色图欧美| 欧美 亚洲 大香| 萌白酱自拍视频| 97在线视频免费看| 欧洲综合视频| 欧美精品日韩久久久九| 欲色啪| 狼天天狼天天大香蕉| 国产一区二区在线播放量| 中文字幕免费看| 欧美少妇熟女| 亚洲另类小说卡通动漫| 91狠狠狠| 色婷婷在线视频精品导航| 国产无码精品无码| 天天日熟妇| 18禁超污无遮挡无码免费网| 亚洲Av无码成人精品国产| 午夜操操操| 91人妻爽爽人人做人人澡| 毛片一区二区| 牛牛久久国产精品视频一二三| 手机在线视频国内精品| 天天综合网~91综合网| 久久久久久AⅤ无码免费肉站| 日韩有码中文字幕女同性恋| 欧美大香蕉在线观看| 国产操伦| 九九这里只有精品| 蜜臀久久99精品久久久老,,| 日本性交操一区二区不卡系列| 日韩精品三级片长长久久| 精品一啪| 国产综合久久久麻桃个| 国产精品视频电影| 久久亚洲AV无码专区国产精品| 黄色工厂这里只有精品| 97内射偷拍| 强奸乱伦αv片| 色吧91| 91久久久久久久| 91久久精品国产| 天天干天天狼在线视频| 黄片qw| 亚洲日韩天堂| 久久久草草精品| 二对二中文字幕。| 一区二区 韩日AV| 操逼逼福利视频| 日韩精品中文字幕人妻| 毛片99-全集电影手机免费观看完整-B029AV | 日本999精品视频| 国产欧美日韩在线不卡第一页 | 色综合一区二区三区| 综合色拍| 五月婷婷激情综合| 无色无码| 夜夜操青青草| 无遮挡又黄又刺激的视频| 男人的天堂1024| 人人澡人人澡人人| 99re在线精品78| 久久精品视频久久久| 1禁看欧美黄片免费看| 国产精品视频自拍在线| 久久久久久九九九九| 亚洲一区二区中文字幕| 国产丸一视频| 久热久操| 97露脸精品丝袜| 欧美熟妇精品黑人巨大一二三区| 欧美男人一区| 国产精品久久久久久片| 无码不卡亚洲成?人片| www欧美91| 蜜臀久久99精品久久久久久成人小说| 成人一级二级| 男人的亚洲天堂| 色色综合97| 超碰中文字幕人妻草一区| 超碰 另类 欧美| 天天干天天拍| 99色在线视频| 91日韩在线| 99天堂网| 综合啪啪| 亚洲色久| 热九九精品| 青娱乐日韩无码| 巨爆乳肉感一区二区三区竹菊影视| 欧美精品久久久久久久久88| 狠狠色噜噜狠狠狠狠狠色综合久久| 国产h片在线观看视频| www.91逼逼.com| 天天躁日日躁xxxxx| 金莲网址| 久久久久久久久久久免费精品| 国产强奸AV在线| 在线人成亚洲视频免费观看| 97色网| 91狠狠综合网| 91欧美网| 日本久久999| 熟女网站最新| 国产精品一区二区后入| 91AV老熟女视频| 国产传媒日本欧美专区| 91嫩草欧美| 亚洲天堂人人妻| 熟妇精品juliaannAV| 日本特黄f c2| 色一射色一射| 96AV精品| 观看免费区二区三区二| 色诱avtt| 97在线资源| 久久国产精品视频| 久久在肏| 翔田千里AV无码秘 三区| 啊啊啊啊网站| 大香蕉免费3| 91社区拍啪人妻| 极品极品色影院| 蜜臀少妇一区二区| 欧美一二三区四五区| 亚州综合色图| 综合色久欲| 天堂av2019| 人人看欧美性爱| 国产亚洲色婷婷久久99精品91 - 百度 | 青青草一区二区三区四| 区一在线观看| 99这里只有精品| 国产一区二区三区中文字幕| 精品超碰国产| 熟女被操视频网址| 六月激情婷婷| 大香蕉丝袜一级片| 另类天堂| 一牛影视久久久一区二区三区| 久久久久久中文字幕中文字幕最新| 3P乱轮视频| 日韩欧美经典在线观看| 自怕偷自怕亚洲精品| 91精品久久久久五月天精品| 翔田千里AⅤHD无码| 操逼片国产| 91在线无码精品秘 软件| 国产精品一区二区黄片| 人妻天堂综合网| 91熟女综合| 国产丁香精品露脸视频| 超碰99在线| 久久9久| 乱伦熟妇一区二区| 欧美经典一区二区三区| 九九久久一区二区伦理| 91美女丝袜诱惑视频| 青青草视频导航官网| 人人操人人摸人人看人人干| 亚洲影视高清第一页| 老鸭窝成人| 日本一卡二区在线| 日本久久女同性恋视频| 国产亚洲精品av一区| av日韩在线观看电影| 老熟女91av| 一本大道久| 欧美午夜视频免费观看| 一二三区在线| 99re69综合| 亚洲无码日韩电影| 国产精品麻豆视频网站| 啊啊啊好爽快点啊啊啊嗯嗯| 青青欧洲黑| 玖玖爱影院| 国产伦乱91| 欧美亚洲成人在线一区二区三区| 91国产丝袜白虎| 久久久久人妻二区精品叶可怜| 国产精品探花视频| 精品亚州18| 操婢日韩| 亚州色图第三区| 少妇精品| 人人扣人人操| 国产91丝袜在线播放蜜月| 日韩猛交| 天天日少妇逼AV| 欧美色乱| 色97| 久久超碰日韩精品| 欧美日韩国内不卡|