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

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
返回資訊列表
人妻素股| 熟女天天干| 免费精品国偷自产在线在线 | 欧美日韩大香蕉| 欧美综合天天| 强奸a片网| 熟女丰满人妻一区| 无码精品啪啪啪一区二区三区三州| 青女在线| 久久久久久久九九九九九九| 旡码电影特区| 国产福利电影| 日本一天色道久久久精品视频| 亚洲猛交| 亚洲一区二区三区久久 亚洲一区二区| 色欲久久99精品久久| 操逼逼一区视频| 天天日天天插| 超碰97久久| 久悠悠av| 国产色综合亚洲色综合吹潮| 欧美色图亚洲色图成人在在线| 少妇天堂| 久草色悠悠在线视频| 五月丁香黄色网| 任我爽视频在线观看| 精品一区二区三区国产| 国产精品一区二区三区在线密挑| 男女啪啪网站免费视频| 夜夜爽爽夜夜精品视频| 日韩人妻一区二区精品| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 久操电影网| A V少妇特黄三级| 中文字幕丰满人妻日本| 午夜AV污污污| 97蜜桃综合| 激情五月综合开心五月| 午夜毛片高清免费不卡| 伊人五月天| 久久久久久久强迫| 日日躁夜夜躁狠狠躁超爽| 久久国产99精品72福利| 亚洲一区二区性爱电影| 好爽视频在线观看视频 | 中文字幕免费看| 中文字幕高清精品一区| 国产精品乱码久久久久久久久| 欧美 亚洲 制服 精品| 人妻啪| 日本免费一区二区不卡| 嗯嗯啊啊操死我| 五月天婷婷基地| 老司机射| 东北女人的毛片| 国产精品宅男免费| 国产野战露脸在线播放| 中文字幕乱码在线| 78超碰| 欧美手机在线综合| 啊啊啊啊网站| 午夜120视频在线观看| 国产91影院| 少妇高潮九九九九九九九| 国产丸一视频| 亚洲一区二区av| 玖日综合网| 久久久久日本视| 91狠婷| 116美女午夜| 黑操B| 天天影视网综合少妇| 屌逼麻豆| 欧美少妇一区二区三区| 偷拍在线观看视频| 天天情欲宗合网| 成人无码在线超碰网| 亚洲色图欧美一区二区不卡| 亚欧性爱无码| 国产树林里野战在线看| 久久97资源 网| 久久国产精品,久久国产| 裸体美女免费看网站青草| 红杏大香蕉| 强上我不卡卡| 欧美色图亚洲色| 日韩欧美成人性爱在线| 国产精品一区人妻精品阁在线| 亚洲AV乱码专区国产噜噜亚洲| 红桃视频高潮| 国产97视频| 高清国产性猛交xxxx乱大交| 欧美性夜| 老熟妇一区二区三区…| 操人91| 色欲人妻一区二区在线| 亚洲资源网| 78超碰| 国内偷自视频区视频综合| 免费黄色片子| 精品免费囯产一区二区三区| 中文字幕123| 中 文字幕一区二区三四 五 区日 日 骚| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 成人日韩中文字幕| 日本精品中文字幕视频| 亚洲另类久操网| 97这里有精品| 精品人妻美妇91job| 无码操逼天堂| 最新加勒比丝袜在线| 超碰在线第一页| 综合五月婷婷亚洲一区| 歐美一級亂黃99在綫精品| 久久久久久人体| 久久99视频| 美女丝袜激情小说| 国产精品久久久久久片| 国产免费一区| oumeisetu综合| 亚洲图片91| 婷婷五月天影院| 国产97视频| 激情第四色| 夜夜嗨一区二区三区三州加勒比 | 熟女丰满人妻一区| 熟女五十路一区二区三| 欧美色图欧美| 国产丰满熟夫69mpp| 人人操我人人干| 欧美午夜视频| 婷婷丁香熟妇综合网| 97操b| 久久婷婷一区二| 啪啪啪精品| 欧美后入式| 欧洲免费一区二| 岛国色情视频在线观看| 蜜臀久久99精品久久久久| 校园春色中文字幕AV| 99热综合| 色色色色电影网| 尤物网址| 日韩综合成人免费视频| 麻豆成人影音在线| 国产嫩草精品A88AV| www.夜夜| 亚洲欧美中文一区二区三| 啊啊啊啊操死我| 久久人人爽爽爽人久久久| 天天操人人操骚逼网站| 婷婷另类小说| 亚洲另类久操网| 色999;丁香五月| 我爱操| 乱欲视频| 美女AV一区二区| 岛国激情视频软件| 久久久国产亚洲精品系列| 日本精品不卡一二三区| AV和黑人在线播放| 亚洲精品xxx| 青青免费在线视频一区| 操操逼操操逼操操逼逼| 操操逼操操逼操操逼逼| 人妻人人做人人澡人人爽欧美一区| 一牛影视成人片免费| 自拍偷拍草一草| 日韩黄片视频试看| 婷婷丁香成人| 成人情色一区二区| 日日日啊啊啊| 涩涩久久精品| 亚洲黄色| 岛国激情视频在线观看| 99久久精品无码一区二区毛片免费| 亚洲欧美日韩偷拍色图| 综合久久六月久久婷婷| 啊啊啊啊嗯嗯嗯用力好爽| 国产精品一区二区三区在线密挑| 国产乱码久久久久久| 蜜桃香蕉久草精品在线| 青青草原av| 国产99999| 国产亚洲福利第一页丝袜| 国产精品4p在线观看| 久久av一级av少妇av高潮| 日韩不卡a级视频专区| 超碰三级秋霞| 欧美久久草熟女| 人人干人人操人人..com| 大胆91| 欧美综合网站999| 综合影视国产无码| 91天堂丝袜美腿| 欧美劲爆视频一区二区| 蜜桃臀久久| 欧美十八禁网站| 久久精品91| 国产日韩欧美亚洲精品95 | 丁香六月激情| 日韩欧美久久婷婷网站| 中文字幕在线播放2中文字幕在线观看2| 啊啊啊轻点在线观看| 性色av网站| 高清无码91| 91 手机在线播放 绯色| 久久精品日韩| 国产农村妇女毛片精品久久| 国产白嫩精品久久| 日韩 欧美 另类 人妻| 欧美人妻熟女在线| 热天堂一区二区| 日韩欧美国产一区二区三区四区| 96久久久精品| 啊啊啊啊啊啊在线看| 亚洲图片色图欧美另类| 欧美在线大香999| 精品四五区| 久久亚洲AV无码专区国产精品| 97在线亚洲| 免费人人搞97| 天天综合网站| 欧美日韩中文字幕不卡| 欧美 熟女 日韩| 丁香五月天婷婷姐| 九九热只有精品| 亚洲国产ⅴ高清在线观看| 女人 A一级| 一区二区三区精品黑丝白丝酒店对鸡| 97超碰影音| 色黄污美女啪啪啪免费网站| 欧美天天综| 国产成人亚洲精品无| 亚洲精品人妻吞精av| 色哟哟国产精品免费网址| 玖色av| 欧美日韩色综合网| 欧美日韩人妻婷婷一区| 人人透人人操| 蜜臀在线视频| 中文字幕久久亚州无码| 国内毛片婷婷六月色| 99re8免费高清在线| 日本熟女免费視颖| 天天影视综合色| 色五月婷婷久久| 色图综合| 国产精品一区二区三区在线密挑| 午夜福利 成人 91| 天天插天天舔舔天天干| 亚洲欧洲综合av在线| 伊人嫩草| 欧美乱色| 成人性爱电影网| 91一区二匹| 亚洲欧洲久久天堂| 婷婷六月色| 国产精品盗摄 偷窥盗摄| JuliaAnnXXX888| 欧美一区二区在线资源| 日韩人成网站在线播放| 久久久蜜桃臀无码视频| 亚州综合色图| 97超碰jingpin| 国产成人无码高清| 97超碰人妻| 超碰99热中文字幕| 九九黄色网| 成人av影院在线观看| 亚洲天堂久| 色九九九综合| 欧美影音在线| 91女优在线观看| 性生活久久久久久久久久| 色色丁香| 天天日天天干天天整| 国产主播福利| 四虎国产精品永久在线囯在线| 精品九九九九九九九九九| 国产精品青青草| 欧日韩不卡视.频| 欧美强奸乱能| 亚洲精品日日夜夜52| 91c色| 国模无码人体一区二区三| 精品人妻少妇| 99re在线| 国产中文字幕在线点播| 人人操人人插人人摸人人干| 婷婷在线视频在线观看| 嗯啊抽插大香蕉网页| 九九精品99| 男女激情黄色网址| 久久国产精品一级二级三级| 亚洲欧美日韩国产丝袜自拍中文| 任你干在线视频| 综合网久久| 亚洲清纯唯美| 日本不卡二区| 日韩欧美俄罗斯A片| 五月丁香综合| 久久天堂网| 97干在线视频| 国产成人亚洲精品无码古代早漏男| 亚洲AV无码AV吞精久久久久| 私色综合网| 91亚洲欧美综合高清在线| av网站在线看| 操逼日韩无码| 人妻免费观看| 国产一区二区三区久久久精品| 亚洲色五月| 九九九九九精品十六| 九九九九九九九九九五码| 一本大道青青| 强奸乱伦麻豆| 人妻内射一区二区在线视频| 精品人妻中文字幕4399| 二对二中文字幕。| 91欧洲国产成人久久精品网站| 精品人妻av在线播放| 又黄又爽在线观看视频| 91老妇女| 99热这里只有精| 亚州Av天美传媒| 激情小说成人日本无码一| 天天摸夜夜摸| 97久久久| 密臀AV在线| 国产操逼网站亚洲一级黄色| 天天综和| 草草影院最新网址| 天天综合网1| 日本狂喷奶水在线播放212| 久久av色| 久久五月天婷婷丁香中文字幕| 亚洲AV在线资源| 成人影院永久免费观看网址| 久久这里都是精品| 久久久久久人体| 狠狠色婷婷7777久| 午夜.DJ高清在线观看免费7| 九九九只有精品| 国语国产操逼伊人AV网| 男人天堂最新手机版在线青青草| 欧美日韩第一页| 水多多映视AV| 91精品少妇搡搡搡| 欧美成人综合| 综合自拍| 天天日天天操天天射河南省| 99只有精品| 台湾佬中文娱乐网久久久久久久久久com | 天堂69亚洲精品中文字| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 婷婷五月成人| 国产精品激情久久久久久久| 久久一区二区三区四区五区| 欧亚不卡| 九九热免费视频| 人人妻人人爽人人精品| 色五月天AV| 天美AV片| 成人av动漫在线观看| 精品人妻一区二区三区四区| 日欧操屄视频| 东北丰满熟女国产一区 | 97se综合| 操我啊啊啊啊啊| 九色PORNY9l原创自拍| 91在线超高颜值国产| 91福利网在线观看| 欧美丝袜中文字幕07在线| 白丝jkav| 国产午夜视频| 久久久久久久久久久久黄色| 国产农村妇女精品1区二区| 日韩啪啪啪啪啪| 9999久久久久| 亚洲熟妇自偷自拍另欧美| www.zbzhongsen.com| 久操网无码在线| 亚洲乱码国产乱码精网站| 亚洲色婷婷久久久综合日本| 青女偷拍网| AV男人天堂网| 九九九九热| 欧美特大AA级黄片| 亚洲精品国产精品乱码不99| 日本一级婬片试看三分钟| 日产欧美电影一区二区三区| 中文字幕美女91| 熟女色综合久久| 九九热免费视频| 超碰超碰95| 伊人久久亚洲中文字幕| 久久久成人精品| 久久男人的天堂| 岛国在线国产| 成人av影院在线观看| 毛片99-全集电影手机免费观看完整-B029AV| 玖玖爱在线视频免费观看| 嗯啊视频免费在线观看| 精品91摸| 久久9999 | 手机在线视频国内精品| 国产操逼逼网| 另类图片五月| 天天干夜夜肏| 三级日韩一区二区三区| 麻豆国产尤物AV| 久久久久久裸体| 日韩亚洲欧美中文字幕| 色哟哟511老熟女| 亚洲欧美精品福利在线| 免费超碰97久久| 青青草无码视频| 国产精品一区二区亚洲人成毛片| 精品一啪| 97精品国产手机| 国产福利一区二| 91色爽欧美| 性饥渴少妇av无码毛片| 久妇网| 天天影视之亚洲综合网| 97在线精品观看视频| 亚射在线| 欧美日韩香蕉| 久色99999| 亚洲成aⅴ人片不卡无码| 爱我干综合| 国产偷人妻精品一区二区在线| 欧美 日韩 亚洲 春色| 亚洲不卡不卡中文字幕不卡| 欧美Ⅴ性爱| 97免费在线视频在线观看| 在线亚洲欧美| 久久精品夜色国产亚洲AV| 成人精品在线| 国产欧美另类久久久精品课程| 天天看,天天做| 久操频道免费在线呗看| 97爱亚洲综合色| 开心五月婷婷激情| 美女91在线| 精品国产污一区二区三区| 国产无码精品高清| 中文字幕福利视频一区二区三区在线观看| 红桃视频高潮| 再深点灬舒服灬太大了添视频| 久久久久ab| 国内精品伊人久久久久影院会| 天天综合网日韩| 久久亚洲日韩熟女精品| 欧美大码在线视频| 国产亚州高清国产拍精| 亚洲av青草久久一区二区| 久久超碰av在线| 青青草在线视频人人想人人上| 日韩在线性爱免费视频| 综合色一区三区二区| 日韩精品电影| 欧美一级欧美三级在线观看| 精品久久久久,69国产成人精| 欧美探花网| 亚洲91大片| 爆乳免费黄网站| 91久操| 日韩性爱视频免费在线| 精品国产乱码久久| a人欧美综合天堂麻豆| 狠狠色婷婷7777久| 亚洲成人在线播放| 国产精品情侣啪啪| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 91在线精品| 欧美人人操人人插| 乱伦a片视频| 免费男人的天堂| 天天天做天天天爱天天天爽| 伊人久久亚洲中文字幕不卡| yazhousetuoumei| 人妻在线中出视频| 青青草白白色| 91痴汉| 伊人国产AV| 日本 情色 1区| 亚洲欧美骚| www欧美91| 任我爽在线视频免费观看| 亚洲限制级| 久久最新视频免费观看| 欧美专区17页| 亚州男人天堂| 欧美日韩啪啪电影| 久久人人爽爽人人爽人人片αV| 伊人久久综合影院精品久久久| 东京热天堂网| 大香蕉伊人网| 日本熟女免费視颖| 色综合av男人天堂| 国产农村妇女精品一| 2019亚洲男人天堂| 18禁免费视频| 屌逼麻豆| 国产AV线| 人人看欧美性爱| 亚洲天堂男人在线| 欧美日韩青操| 午夜男人的天堂| 成 人 A V免费视频在线观看| 日韩欧美综合激情| 亚洲色图 图片| 欧美一区二区男人天堂| 在线A日本| 后入 亚洲 美女 射| 97在线免费视频观看| 亚洲一区二区三区四区视频| 精品v1区| 女性喷水高潮在线观看| 久久久九97| 97国产中文| 大色综合| 色综合天天| 97精品网站| 操逼国产免费| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 欧美日韩亚洲少妇寂寞影院正在播放| 九热中文字幕| 色五月婷婷麻豆在| 啊啊啊免费视频| 亚洲色图加勒比| 99这里只有精品国产| 91偷拍欧美亚洲| 久久男人的天堂| 丰满人妻一区二区三区在线| 国产精品久久天天干| 国产无套粉嫩白浆在| 亚拍在线| 久久欧美性爱视频| 伊人久大| 久久久精久久久| 懂色中文一区二区三区| 殴美日韩m| 东京太热男人的天堂久久久| 欧美日不卡| 欧美黄片免费在线观看视频| 青青草华人在线欧美在线| 岛国精品视频在线观看| 日韩欧洲操屄视频| 一区二区三区无卡视频在线观看| 欧美日韩另类在线| 欧美激情亚洲情色| 嗯啊不要啊在线| 欧美亚洲国产91在线| 久射吧| 午夜福利久久久噜久噜久久综合 | 色麻豆AV| 国产四虎在线| 日本天天色| 亚洲第2页| 老熟女网站| 91无摭挡| 特级大荫道BBwBBwBBW| 嗯嗯啊中文字幕| 九九色精品| 国产精品熟女九色九色蜜臀| 啊啊啊啊好多水| 物业黑人 AV一区| 五月天久久婷婷亚洲| 狼人综合婷婷激情四射 | 伊人女女资源在线观看| av爱爱爱| 国产成人www免费人成看片| 日韩综合无码一区久久92| 91丝袜| 香蕉99秘 一区精品蜜桃臀| 四虎精品一区| 色综合超碰超| julia中文字幕在线观看| 久久久久久中文字幕中文字幕最新| 日韩无码人妻| 在线岛国新天堂8| 蜜乳视频网站| 日本Xx性爱| 五月天婷婷欧美三区| 第四色亚洲色图| 男人的天堂在线2| 在线观看AV不卡| 大香蕉综合| 操曰本熟女| 91精品久久久久久久久久| 美女骚尻视频| 国产久久天堂资源| 26uuu欧美日韩| 丰满人妻一区二区三区免费| 加勒比综合网| 唐山老熟妇露脸啪啪叫| 丁香色五月 97干| 天堂岛av| 日本97久久久精品| 亚洲狠狠入| 99re免费| 搡老女人老妇女老妇老熟女怎么读| 91在线视频免费中出| 色婷婷日韩精品一区二区三区| 91狠狠综合久久| 色婷婷A V一二三四区麻豆综合| 九九热在线精品视频| 九九九只有精品| 久久在线观看免费视频| 一区二区三区激情在线观看| 日本 欧美 国产一区| 丰满人妻一区二区三区| 91亚洲欧美综合高清在线| 国产熟妇 码视频户外直播 | 国产h片在线观看视频| 欧美 亚洲 大香| 免费男人的天堂| 蜜乳AV.COM| 伊人影院在线理论播放 | 999精品久久久久久久| 欧美在线干| 亚热日本熟女| 在线观看不卡一区二区三区| 久久久久久午夜男人的天堂| 97亚洲自在精品在线观看| 韩国黄色片精品久久久| 91天射| 色黄污美女啪啪啪免费网站| 色91综合网| 精品超碰国产| 夜夜欢天天干| 夜夜操天天肏| www.大香| 视频黄站| 大香蕉五月天| 大肥女高潮bbwbbwhd视频| 欧美成人精品一区二区三区| 97免费视频在线| 人妻精品一区二区在线| 老熟女综合网| 大香蕉国产中文自拍| 日韩免费高清大片在线| 性交一区二区在线播放| 超碰99热中文字幕| 人人天天干干| 少妇久久久久久| 成人日韩中文字幕| aaa一级黄片| 国产熟女一区二区| 麻豆天美传媒在线视频天堂| 亚洲操操| 黄色av网站在线播放| 欧美日韩国产人人| 国产传媒1234区| 乱伦熟女区| 日韩在线一区高清在线| 欧美丰满少妇交换91欧美精品| 无码欧美有限公司| 全球成人中文在线| 国产精品ⅴ无码大片在线看.| 第45页一区二区| 好爽免费视频,| 草莓精品视频| 久9re热视频这里只有精品| 97超碰色屌| 玖玖人人爱| 国产精品福利视频| 伊人久大| av午夜影院在线播放| 精品一区二区综合熟妇| 性交一区二区在线播放| 国产绿奴视频在线观看| 天天舔九色婷婷| 家庭乱伦国产精品| 91国产丝袜足交精品视频| 69av一区二区三区| 青青草啪啪网| 日本三级网页| 亚洲天堂少妇| 五月丁香啪啪| 欧美大香蕉久| 91艹| 制服乱伦| 亚洲欧美日韩制服另类| 色香在线| 成人免费福利在线观看| 亚洲一区二区av| 亚洲色图大香| 亚洲蜜乳av| 大白逼三四级| 九九热男人天堂| 在线无码视频| 中文一区在线日| 久久久久国产无av| 91中出| 欧美少妇高潮久久91| 亚洲乱码精品一区二区| 亚州男人的天堂| 久操婷婷| 国产精品高清2021在线| 羞答答AV中文字| 在线中文字幕极品av| 四虎影视欧美| 国产精品网站www| 国产一区二区三区精品观看啪| 超碰免费人妻在线| 色拍偷亚洲| 欧美有码激情视频一区二区三区| 26uuu成人影片| 亚洲欧洲久久天堂| 九九AV| 黄视频免费| 亚洲 日本 不卡| 99青青草国产视频| 精品国产乱码久久久久久口爆网站| 天天干人人乐| 精品久久久久久久久久久久| 99性爱视频| 欧美一区二区观看在线| 国产精品视频内谢女人| 久久久久久免费电影| 色超碰综合| 蜜臀国产AV中文字幕| 国产精品亚洲一区二区三区四区| 欧美成年人性爱视频免费观看| 日韩八十路老熟女| 在线天堂999| 天天日天天色| 成人无码在线超碰网| 粉嫩av一区二区三区天美传媒| 97er欧美性| 色噜噜精品一区二区三| 岛国黄| 天天看天天日| 人人妻人人澡人人爽久久av| 啊啊啊啊好疼视频| 极品久久久久久久久久久久久久| 大香蕉操久久| 91久久久久久| 96久久精品一二三区色欲| 亚洲第一免费视频| 免费久久一级毛片大黄| www亚洲欧美| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 亚洲无992tv| 欧综合网| 伊人网一本| 日韩少妇丰满亚洲| 日本三级日本三级三级人妇四虎| 天天干一干| 久热91| 岛国成人av在线播放网址| 日韩国产中文字幕| 欧美十八禁在线看| 久久男女激情视频网站| 无码视频黄色网战| 日本黄色大片一级视频免费麻豆| 欧州一区二区三区四区| 日韩三级伊人| 亚洲麻豆av一区二区| 久久精品一区二区| 97爱爱| 2021国产成人精品久久| 中文字幕丰满子伦无码专区在线视频最新 | 欧美亚洲综合高清在线| 天天92av| 亚洲国产综合视频| 三级激情网站| 成人性爱美曰韩| 秋霞一级视频在线观看免费| 五月婷婷六月丁香| 精精夜夜| 91av天美性媒精品视频| 97资源免费视频| 97超碰超欧美。| 91精品人妻五十路| 亚洲色图A| 国产午夜精品在线观看| 岛国在线免费视频| 熟女乱伦A| 欧美丰满熟妇XXXX性ppX人交| 一级免费啪啪片| 情色av电影| 中文字幕十五区| 五月天AV资源| 亚洲有码视频二区| 久久精品国产亚洲妲己影视| 欧美自拍偷拍综合图片| 青青操综合网| 人人爱操| 欧美色偷拍| 超碰地址97| 亚洲天天天| 日韩国产精品人妻无码久久久| 成人性爱av.com| 在线不卡视频| 男人干美女| 一本大道青青| 人人妻碰人人免费| 成人无码在线超碰网| 曰韩av中文字幕专区| 无码一区二区三区四区五区六区七区八区九区十区视频 | 五月情色天| 加勒比久久av| 成人欧美日超碰| 97欧美色| 桃花色综合影院| 婷婷亚洲五月***久久| 女生看匆91网站| 亚洲美女精品九九视频| 大奶的诱惑| 免费观看的黄色的网站| 色999亚洲人成色| 婷婷亚洲天堂| 91在线限制级| 91欧美丝袜| 国产婷婷综合在线观看| 日韩AV熟女乱伦| 国产农村妇女精品1区二区| 亚洲97网站| 成人26uuu| 黑丝少妇| 安微少妇操BBB| av激情亚洲五月天| www色色com| 亚洲drav色图| 精精品人妻一区二区三区| 欧美,日韩综合久久| 91久久久久久久久久久| 91无码人妻| 91精品国产91久久福利| 91狠| 亚洲做性| 国产97视频免费观看| 91中文精品日韩欧美在线| 吊色| 四虎影视永久在线免费| 9热9热综合网| 91精片| 人妻久久久久久久久久久久久久久| 91国产丝袜美女| 日韩美女啪啪一区| 欧美爆操91| 日韩欧美性爱电影在线观看| 久久久久免费少妇| 亚洲色婷婷综合久久久久中文| 伊人久久大香线蕉无码| 97人人爱人人做人人乐| 污色区网站| 亚洲五区熟女| 国产亚洲深夜激情| 自拍盗摄一区| 青娱乐黄色录像| 熟女被操视频网址| 99在线精品观看视频中文| 五月丁香社区婷婷日韩欧美精品影院 | 久肏视频字幕| 成人网址在线观看| 国产在线激情| 99热官网| 亚洲国产精品成人久久蜜臀| 久久黄黄| 日韩性爱小视频| 日韩影片中文字幕一区二区三区| 精品人妻一区二区三区日产| 超碰成人国产| 69丨亚洲丨精品丨入口免费播放| 欧美精品23| 亚洲AV无码久久精品蜜桃小说| 国产精品视频内谢女人| 91伊人大香蕉| 亚洲免费在线探花| 精品大全99999| 亚洲综合在线视频| 日韩无限资源| 成人av影院在线观看| 99蜜桃臀久久久欧美精品网站| 亚洲三区视频| 狠狠97| caopeng97| 精品免费视频国产一区| 91 亚洲 欧洲| 懂色AV网| 思思热在线观看| 欧美片第一页| 粉嫩av一区二区三区四季| 久久精品性| julia国产在线 | 98人妻精品一区二区色欲| 中文字幕人妻色偷偷久久皮| 亚洲最新a在线观看| …中文字幕亚洲乱,97人妻无码费视…| 蜜乳av首页| 黄色视频高清无码网站| 91九九九吃| 大香蕉十区| 色青青久久影视| 91蜜臀人妻中文字幕在线| 日韩在线视频1234| 91精品人| 精品少妇人妻一区二区三区| 四虎AV无码| 性爱1区| 亚洲伊人久久综合97| 无码视频一区二区| 国产精品亚洲美女久久久久| 男人的天堂99| 欧美久久久| 国产丝袜美女诱惑| 人妻人人做人人澡人人爽欧美一区| 亚洲天堂加勒比| 日本久久999| 日韩女优中文字幕| 又大又长又粗又爽又黄| 久久久久久久97| 大香蕉92| 哈哈操电影AV| 免费久久一级毛片大黄| 淫淫综合网| 97精品中文字幕| 天天干一干| 人妻系列无码专区中文有码| 国产在线综合福利网站| 好吊色综合| 亚洲久草AV色图| 伊人一区二区三区| 色综合91| 九九aV| 激情综合二| 国产乱色国产精品免费视| 9久久久久| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 精品人成视频在线观看| 久久亚洲欧美一区二区三区-亚洲国产精品第一区二区 | 91AV老熟女视频| 免费在线观看国内色片网站网址| 亚洲**2021在线观看| 久久精品中文字幕女同| 青青草啪啪网| 久久大香蕉手机高清| 日韩一区二区精品视频| 国产成人在线观看综合| 国产97色在线| aaa一级黄片| 夜夜影视四色| 日本操逼二区| 人人插人人摸人人| 蜜乳av一区二区三区| 国产精品丝袜久久亚洲不卡| 男人天堂久久日韩| 精品国产91久久久久久一区黄无| 狠狠色婷婷| 婷婷99| 六月丁香啪啪| 精品91摸| 一二三啪啪专区| 色哟哟-国产专区| 毛片17S| 日本裸体久久色噜噜| 日本一二区免费| 欧美日韩人人精品| 欧美性色综合网| 操操操操网黑人| 亚洲欧美一区二区不卡视频播放 | 东北操逼| 久久久久久中文| 色妇综合网| 污色区网站| 国产9 9在线 | 亚洲| 日韩性爱1级片视频| 中文字幕亚洲永久精品| 激情网色| 国产精品 久久久精品一牛| 天天操人人操狠狠插| 97人妻免费中文字幕| 亚洲激情AV| 91n美女视频| 丁香婷婷激情五月天无毒不卡 | 国产精品一二三区18| 欧美 日韩 亚洲 春色| 凹凸久久人人| 精品婷婷| 99久久无色码| 人人综合| 韩日自拍| 久操97| 人人操肉肉| 日韩性爱电影一区| 国产精品久久久亚洲一区| 蜜臀在线免费观看在线免费观看| 国产成人主播| 久久久久久人| 欧美亚洲特P| 男女日B国产| 国产免费永久精品无码| 欧州色图区| 婷婷色网| 亚洲自拍欧美国产首页网曝| 99re6久热只有精品6在线直播| 天天日日日射| 智利AV在线网| 69一区二区| 欧美色性爱| 日韩另类| 香蕉久久精品| 4虎在线视频| 另类图片综合| 亚洲色欲天天天堂色欲网女| 9久综合网| 欧洲亚洲天堂精品| 中文AV制服乱伦| 国产尹人在线视频免费| 这里只有精品久久| 久日91在线| 2017亚洲天堂| 69精品久久久久中文字幕| 91九色精品熟女内射| 熟妇艹鸡八| 大但人体久久久久| 欧美gv在线观看| 五月丁香六月激情| 日本中文字幕熟妇| 亚洲欧美综合| 九九人人操| 欧美传媒一区| 欧美精品日韩久久久九| 欧美熟爽综合| 伊人91| 欧美在线播放aaaa| julia中文字幕在线观看| 男人的天堂2019| 久热伊人| 蜜桃精品视频一区二区三区| 激情天天视频| 偷拍 精品 另类 四区| 久久αⅴ| 亚洲国产无码精品首页久久久| 国产熟女少妇一区| 天天操天天干美女网址导航| 视频黄色国产一级| 超碰久久精品| 国产精品毛片?v一区二区三区| 日本一级黄色电影| 欧美日韩国产精品久久色婷婷| 十八禁啪啪视频| 日韩有码一区三区| 超碰诱惑| 操逼操网| 欧美色日| 中文字幕日韩人妻视频一区二区三区 | 亚洲最大无码中文字幕网站| 亚洲视频小说| 日韩精品资源| 91粉嫩萝控精品福利网站_精品影音先锋国| 婷婷激情综合网| 亚洲精品乱码久久久久久蜜桃麻豆| 中国国产精品一区视频| 亚洲91网站| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 碰碰97| 婷婷操逼| 蜜桃av色偷偷av老熟女| 亚洲AV成人无码一区二区三区在线观看| 强奸熟女一区二区三区| 丰满人妻一区二区三区四区| 亚洲男人的天堂网| 国产资源中文字幕在线| 中文字幕在线观看网页| 超碰日韩人妻| 久草综合视频| 欧美一区二区观看在线| 97视频在线免费| 凹凸视频特色日本特黄| 91白虎| 怡红院一区二区熟女人妻| 大香蕉啪啪啪啪在线| 国产人妖视频一区在线观看| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 大茄子熟女AV导航| 丝袜美腿制服人妻二区中文字幕 | 性色avv| 日韩操p| 精品二999| 不卡免费av在线播放| 久久久91| 中文字幕乱碼在线| 亚洲国产成人精品久久久国产成人一区二区 | 亚欧无码在线| 天天射天天色成人| 97超碰色五月| 人人操人人操人人人操| 激情亚洲天堂| 人妻精品视频一区二区| 亚州综合网| 在线电影亚洲色图| 大香蕉综合在线| 97色网| 亚洲棕合电彰| 日韩性爱长视频免费| 久视频在线观看| 丝袜剧情| 91爱看| 婷婷久久综合| 97欧美性爱| 天天干美少妇一区| 色臀AV| 媚薬在线视频麻豆| 日本精品网站在线中文| 欧美小说区视频区| 色av中文字幕| 自偷自拍的亚洲视频| 亚洲码在线中文在线观看| 夜夜操一区二区| 一二三四免费视频| 丝袜剧情| 亚洲 中文字幕 精品| 亚洲免费人妻在| 天无日色综合| 欧美黄色片在线播放| 欧美综色欧| 美日韩在线不卡人妻| 超碰在线人妻| 93人人操人人| 久久AV无码AV| 免费视频一二三区| 丝袜美腿操av| 蜜桃视频一区二区三区| 在线人妻熟女一区二区三区四区五区| 睡产熟女乱伦| 亚洲成人福利电影免费| 国产无码精品成人| 四虎精品永久在线播放| 一卡二卡在线播放| 射丝袜大香蕉| 夜夜操av亚洲一区二区| 精品久热| 日本操逼视频在线| 久久久九九| 国产精品69久久久久孕妇欧美| 欧美最婬乱婬爆婬性视频 | 久久久久一本一区二区青青蜜月| 伊人久久婷婷| 亚洲另类在线观看| 两性综合网| 72av视频| 欧美少妇高潮视频| 日韩熟女精品无码专区一区二区| www色色com| 性色av婷婷久久一区二区点复制| 国产操逼逼网| 亚洲欧美自拍偷拍| 久久透逼视频| 一级性爱视频免费观看| 一级做a爰片性色毛片久久| 亚欧美色| 国产真实子伦对白| 狠狠操狠狠操操|