国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成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
返回資訊列表
爱干爱射网啊啊啊| 亚洲男人天堂2017| 91亚洲精品青草| 国产精品久久久久久久久久梁医生| 天天日日本| 亚洲国产一级精品毛一级精品看免费视频| 91 天天综合| 欧美亚洲第1页| 国产小u女在线观看| 免费观看性欧美一级| 综合熟妇一区二区三区| 国产精品视频播放| 日本有码久久| 囯产操逼片| 少妇啪啪自拍| 五月天婷婷在线看| 色综合av综合久久| 91宗合网| 国产精品9999| 亚洲狠狠入| 日影院久久婷婷夜夜网| 中文熟女五十乱码在线| 欧美精品久久96人妻无码| 偷看洗澡一二三区美女| 91在线超高颜值国产| 国产97色在线| 亚洲欧美综合图片| 久操电影网| 亚洲国产青青| 亚洲色入欧美| 亚洲熟女乱综合一区二区三区 | 97爱啪| 国产精品久久久久绯色| 欧美综合色站| 中文字幕女同在线| 91AV天堂| 青青草在线视频播放器| 亚洲日本大香蕉1| 国产青视频| 日本人体九九九九九九| 久99| 天美精品av| 色情综合| 亚洲精品一区中文字幕乱码| 日韩熟妇二区| 久久人妻97久久久久久久| 四虎AV在线观看| 日韩成人网址| 亚洲黑丝在线| 99爱久久视频频| 人妻美腿丝袜制服诱惑综合天堂-| 亚洲欧美精品一区天堂久久 | 天天日天天舔天天喷天天射| 熟女精品一区二区三区| 人人爽夜夜操| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 久久一本大香蕉 | 欧美精品黑人猛交高潮| 亚洲欧美高清| 涩涩这里只有精品视频| 日韩一级片在线看| 韩国轻伦国内自拍一区| 91老熟女老女人国产老太| k频道色撸撸| 欧美图片校园春色| 两性色网| 五月婷婷激情| 美女97超碰| 鸥美插入视频| 夜夜国自区| 日本一级真人黄色性爱视频| 在线观看亚洲成人精品| 一起草AV| 91精品免费| 国产超碰97| 亚洲一区二区中文字幕| 国产精品 视频| 韩国三级一线观看久| 韩国黄片aaaa| 欧美九九爱| 日本高清加勒比| 久久一二三四五六七八九区| 国产毛片片精品天天看视频| 囯产乱伦一区二区三女| 亚州再线| 天天操妹子| 亚洲欧洲综合成人av一区| 亚洲欧洲网站免费观看| 国产精品网站免费| 四方色播| 久久亚洲精品成人av| 丁香六月天| 99热精品国产| 26uuu成人影片| 黄色性爱网网| 欧美韩国你懂得在线| 亚洲第二页| 51久久夜色精品国产麻豆| 精品亚洲国产成人AV制服丝袜 | 亚洲天堂久| 操b在线观看| 亚洲日韩美女中文字幕乱| 蜜臀av在线播放一区二区三区| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 天天综合,91综合永久| 男插女青青影院| 日韩大香蕉AV影片| 欧美一区二区三区蜜桃| 欧美白嫩女HD| 91综合在线| 欧美视频在线视频免费va| 99啪啪视频| 麻豆久久精品亚洲精品88| 99人人干| 国产家庭乱伦表演| 自拍视频大全亚洲专媒视频/一区二区三区| 日韩97精| 国产精品久久久久久久黄无码| 欧美一区91大爱| 亚洲天堂久久| 国产精品亚洲美女久久久久| 玖玖爱影院| 中文久久爆乳| 91制服丝袜| 久热香蕉精品在线视频| 亚欧洲一区二区视频| 天天上日日上日韩精品| 亚洲欧美天堂在线| 岛国黄片网站| 日韩激情视频| 女同性恋久久| 日本大香蕉综合网红本杳社区| 熟女六十路| 九九九九精品一区| 97国产成人精品免费视频| 91欧美性| 国产这里只有精品| 欧美91精品国产自产| 婷婷五月丁香五月| 亚洲欧洲成人在线电影| 久久久久久久久久久久黄色 | 亚洲欧美变态| 激情综合五| 熟女91网站| 黑操B| 少妇久久久久久| 韩日精品四区| 日婷婷| 亚洲AV不卡在线观看尤物| 国产一区二区欧美日本| 中文字幕国产在线天堂| surenchaopeng| 福利社区午夜一区二区| 欧美最婬乱婬爆婬牲视频| 亚洲另类色图片| 色欧美天天| 天天干夜夜操网| 亚洲欧洲日产国产综合网| 91AV入口| 国产久9| 97久久精品亚洲| 亚洲精品国语在线播放| 欧美色日| 精精夜夜| 欧美美女自慰一区二区三区| 一二三四视频中文字幕在线看| 欧美日韩国产电影| 亚洲男人bt天堂| 日韩黄片影院| 97国产|免费| 乱理日韩中文| 日韩一级二级| 国产亚洲中文不卡二区| 乱欲视频| 91高清日| 欧美色图 人妻| 人妻激情另类| 成人三级片无码| 亚欧免费观看视频| 中国操逼无码| 一中国女人毛片水真多| 欧美最婬乱婬爆婬牲视频| 亚洲乱色视频一区、二区在线| 成人性爱美曰韩| 日韩三级伊人| 欧美天天弄| AV久日| 国产四虎在线| 手机在线看片免费人成视频| 2017人人操,人人摸| 国产午夜福利视频在线| 亚洲天堂,男人| 日韩熟女操逼| 久久精品国产Aⅴ| 东北操逼| 国产亚卅97| 激情五月天色色网| 熟女乱伦A| 国产高清午夜成人在线观看| 欧美肥臀在线| 青青草色插素人| 天美国产三级传媒| 五月天婷婷综合| 天天艹天天日| 美国日韩黄片| 综合亚洲欧美精品日韩?v| www亚洲欧美| 少妇专区一二三四五| 99re这里只有精品中心播放| 国产超碰在线| 91色久| 久久久免费一级黄片| 麻豆国产精品午夜视频| 欧美黑人168页欧美黑人167| 麻豆一区二区三区在线看| 91视频成人福利网站在线一区| 色色色色网站| 欧美特大黄一级片片免费| www亚洲免费| 国产激情视频一区区三区| 超碰 欧美| 欧美色图片欧美色图| 嗯嗯啊啊视频一区二区三区| 91nbbbbbb| 91爱看| 天美一二三在线观看Av| 日韩ab网| 91麻豆一二三区| 狠狠躁AV| 亚洲欧美一区二区不卡视频播放| 亚洲限制级在线| 亚洲AV免费在线观看| 五月天激情婷婷| 五月丁香激情综合| 在线观看一卡二卡| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 亚乱色| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 日本色婷婷| 亚洲夜夜欢无码一区二区 | 中文字幕女同在线| 欧美另类天堂| 超碰美国| 无码区蜜乳| 在线色导航| 中文字幕一区电影在线观看| 日韩高清黄片| 婷婷久久网| 青青国产精品在线| 国产精品午夜福利视频| 亚洲成成熟女人综合一区二区| 一二三区视频在线观看| 国内毛片欧美香蕉精品| 51久久夜色精品国产麻豆| 欧美性爱视频免费一区一A| 欧美性爱视频免费一区一A| 日本午夜精品理论片A级APP发布| 色婷婷av在线观看| 操学生天天| 人妻丝袜肏逼| 99婷婷一区二区| 丰满人妻一区二区三区四区| 激情综合色| 骚逼高潮久久精品| 天天日骚逼熟女| 中文字幕乱码在线观看| 中文人妻av高清一区| 美国人人操人人操| 91天天日| 国偷自 一区二区| 美女好片色日本| 国产精品亚洲一级av第二区| www.色婷婷.com| 91夜色chaopeng| 亚洲色棕合| 亚洲无码电影久久久| 美女尤物人人操| 人人喜人人妻| 人人澡人人澡人人| 欧美劲爆视频一区二区| 99热导航| 伊人精品久久网站| 久久国色天香香蕉| 午夜噜噜噜| 9色国产精品一区粉嫩| 3p国产色噜噜一区| 久久久久9999精品九九九| 欧色网址| 亚洲一区二区性爱电影| 久久久久96| 74成人在线| 国模限制级电影| 天天综合欧美黑人| 国产亚洲精品自在线亚洲情侣| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 麻豆成人AV| 亚洲欧美综合区自拍另类| 美腿色图| 91bbb| 1769精品一区二区三区| 成人欧美日超碰| 无码高清操逼| 精品亚州18| 欧美成人免费在线观看| 熟女一区二区| 国产综合日韩伦理| 99re3这里只有精品| 美女黄站| 一区二区三区在线资源| sewuyueav| 成人三一级一片aaa| 800zy一区二区| 欧美se综合| 精品中文字幕一区二区| 久久久精品视频欧州站| 大伊香蕉在线视频免费| 少妇高潮喷水无套久久久久久| 一本色道久久天天射天天干| 密臀视频一区二区三区| 新版天堂中文资源8在线| 日本黄色精品| 99久久网站| 亚欧洲日韩国产精品| 青青草天天亲夜夜操网| 免费1级a做爰片观看| 久久欧洲| 美国aaaaa一级黄片| 国产白丝在线| 国产福利av精彩对白| 久操com| 97就爱干| 五月婷婷啪啪| 少妇久久久久久| 久久婷婷国产一区二区色| 试看60秒 爽| 亚洲少妇诱惑| 国产一区二区成人av在线播放| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 在线天堂999| 国产精品女生av| 日本顶级天天操狠狠操夜夜操中文字幕| 自拍偷拍 高清无码| 亚洲日韩资源| 日韩天堂av电影在线观看| 中国AV美女| 久久精品高清无码一区| 好看的91视频| 国产热RE99久久6国产精品首| 超碰97伊人| 中文字幕亚洲欧美在线不卡| 国产亚洲女v在线观看| 综合av影片| 美女自卫慰黄网站免费| 日韩欧美大力操| 国产不卡的视频| 操久久久久久| 丁香激情五月天| 人人操我人人干| 毛片麻豆91糖心精品毛情片| 嗯嗯,啊啊,国产精品| 亚洲精品国产精品乱码不卡| 色色99| 亚洲一区二区三区播放在线| 久操视频在线观看| 亚洲性综合11| 97超级欧美| 丰满的三级少妇欧美久久久| 亚洲一区二区久久久久| 日韩av无码网站| 四虎在线观看网站| 久插综合| 午夜精品99久久久久传媒| 曰韩无码777| 国产性爱在线视频一区二区| 五月丁香黄色网| 欧美精品黑人猛交高潮| 91碰碰| av麻豆啪啪| 91婷婷伊人狠人| 免费黄色A片| 中文人妻av高清一区| 家庭乱伦麻豆| 久久久精品| 91丝袜人妻| 91色堂| 97色色国产视频| 啊啊啊好爽快点啊啊啊嗯嗯| 黄色免费网页无码| 小情侣高清国产在线视频| 五码视频在线观看| 一区AV| 亚洲 暴爽 AV人人爽日日碰| 精品天堂| 久久久久久99AV无码免费网站| 94色色电影网| 人人妻人人爽一区二区三区| 91少妇高潮| 久久久久久综合久久伊人蜜月| 黑人粗大V S日韩女优视频| 美女毛片999| 男人久久精品| 欧美青青草视频| 欧洲亚洲综合| 色香欲天天天天综合色| 亚洲中亚日激情视频| 黄资源| 岛国不卡超碰护士AV在线播放| 欧美色图成人网一区二区| 91九久| 99自拍B亚洲| 极品丝袜无码| 国产精品亚洲四五区在线观看| 九一屌逼| 嗯嗯嗯不要不要免费视频| 蜜臀亚洲中文| 黄色成品网站| 是还免费视频1727我| 狠狠躁天天躁日日躁97| 亚洲欧洲日韩中文字幕一区| 欧美黄业| 另类小说综合网| 手机看片1025| 在线 制服丝袜中出 人妻| 99.色网| 精品妇女一区二区三区| 亚洲精品一卡二卡三卡福利视频网站| 九九九国产| 99re在线| 亚洲中文字幕精品久久久久久直播| 极品色www影院| 日韩精品99999| 夜夜狼人妻| 男人的天堂无码| 亚洲 欧美 日本 国内 首页| 91美女视频在线观看| 亚洲欧洲日本精品中文a∨| 欧美综合娱乐久久| 夜夜夜久久| 久久九精品| 美女91网| 日韩欧美成人综合在线| 91色艳| 久草在| 久96热在线观看视频| 成年女人黄网站| 久久久网站| 欧美精品双插| 传媒在线观看一区二区三区| 欧美日韩另类在线| 少妇国产不卡| 超碰久久.com| 日韩欧美性爱电影在线观看| 国产精品无码在线| 性色高清在线| 91美女网站| 亚洲色图殴美色图激情乱伦| 330Dv国产女人终合视频极品人与兽| 密臀在线一区尤物| 大香网站| 九九九九精品一区| 激情无码日韩| 啊啊啊快操我视频| 国产精品久久久久久久久久久久| 久久露脸国产老熟女| 好看的91视频| 影音先锋每日最新资源在线观看| 久久久精品成人国产| 91色图片| 日韩欧美午夜一区二区| 日韩三级久久久| 搡老女人老熟女91老熟女综合网| 久久久免费一级黄片| 一级黄碟在线观看| 黄色激情电影在线观看| AV天堂男人的天堂| 黑人精品一区二区在线播放| 国产高清1234区| 亚洲一区二区三区婷婷| 黑丝少妇在线观看| 夜夜爽夜夜操| 99热啪啪| 91热色| 久/久精品99看9| 亚洲女人毛茸茸91| 亚洲中文字母在线播放| 啊嗯嗯啊好大好爽| 欧洲熟妇xxXx欧美老妇裸体| 91色伦| 在线中文字幕极品av| 91在线美女| 99国产精品| 日本三级韩三级99久久| 97操b| 日韩去日本高清在| 九九热精品视频六| 精品 码产区一区二-1080P高清在线www-B029AV | 成人一区二区三区四区| 逼操网站| 久9爱经典视频| 色牛牛AV| 97在线视频观看| 久视频在线观看| 在线观看不卡一区二区三区| 青青草视频导航官网| 资源新线在线天堂| 嗯嗯啊好大| 国产高清成人mv在线观看| 区自美91| 婷婷色一区| av绯色| 久久久久女教师免费一区| 久久婷婷五月天| 九九九九久久久久| 人妻夜夜爽天天爽麻豆三区网站| 日韩亚洲国产视频| 日韩欧美麻豆 | 天天色,天天干,天天干| 深夜激情| 77777亚洲蜜臀精品久久综合蜜臀| 日韩乱伦AⅤ| 久久网亚洲| 精爱久久| 97精品综合久久| 超碰欧美| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 91精品久久久久久77777| 五十路三区在线| 久久爽爽精品| 伊人91| 日本爽爽爽爽爽爽免费视频| 女生看匆91网站| 5252色欧美在线| 中文字幕av亚洲在线| 乱伦强奸区日韩| 午夜福利 成人 91| 啊啊啊啊二区好大| 激情文学网伊人| 91社操逼| 亚洲少妇视频| 超碰这里有精品| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 色综合色色| 青青伊人这里只有精品| 国产精品久久久 | 情色五月天久久久| 嗯啊不要啊在线| 无码av永久免费专区网站| 人妻天堂网| 欧美日韩97在线| 九九九九欧美| 欧美综合色站| 爱我干综合| 免费观看国产小粉嫩喷水精品午| 特污免视频| 亚洲αv一区二区三区| 丝袜天堂网| 青青草成人视频在线观看二区 | 欧美天堂超碰97| 插入综合网| 九色97| 欧美精品99久久久**| 人妻偷拍一区二区三区| 人妻一区二区三区视频| 精品久久久久久中文字幕视频免费| 久久人妻熟女一区二区| 久久久性少妇| 怡红院成人视频| 日日日日做夜夜夜夜做无码97| 99re95| 亚洲欧美日韩有码| 97视频620| 草久久久| 欧亚不卡| 午夜福利在线视频1000| 夜夜高潮夜夜爽高清视频一| 好淫网一二三视区| 亚洲天堂东京热| 亚洲一区深夜| 91肏屄网| 青青欧洲黑| 大香网伊人久久综合网eew| 60秒试看最爽10分钟网站| 厕所偷拍在线| 91久久久老司机| 亚洲视频二区| 国产熟女自拍| 婷婷国产精品一区二区| 精品无码久久久久久久杏吧| 中国AV美女| 人人艹亚洲| 欧美性爱中文字幕无线码| 7777欧美成是人在线观看| 全球成人中文在线| 日本福利社| 天美av在线观看| 乱欲性色| 97色色,97综合| 91高潮喷水美女| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 国产精品一二三区福利| 亚洲有码 欧美精品| 久久久久9久久久久| 二级久久网| 少妇内射视频| 亚洲图片欧美色| 国语对白露脸XXXXXX| 淫荡少妇免费| 日本三级中国三级99人妇网站| 视频在线观看一二三区| 91天天c| 久久久无码精品人妻二区| 综合久久99| 婷婷丁香五月天综合东京热| 九九久久精品| 少妇天堂网络| 青青操日韩| 欧美一区二区一级岛国大片| 亚欧高清在线| 日韩精品人妻系列无码天堂| 中文子幕一二三| 亚洲AV成人精品网站在AV| 日本性爱少妇| 国产精品高潮久久AV| 青青草啪啪网| 国产主播福利| www.色综合| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 国产成人拍国产亚洲精品| 嫩草一区二区在线观看| 看看小穴| 外国免费性情大片| 草草影院日本第一页| 吻戏激情性巴克| 久久一二三四五六七八九区区| 五十路三区在线| 3d成人精品一区二区| 超碰日本97美女人妻人人玩人人爱| 亚洲老司机123专区| 97超碰人人操人人操| 丁香五月影院| 国产欧洲精品亚洲午夜拍精品| 日韩九九九| 色情综合| 超碰欧美97资源| 1人人看人人摸人人操| 亚洲成熟国产精品美女| 97资源免费视频| 欧美最婬乱婬爆婬牲视频| 强奸乱伦大香蕉| 天天综合影院91| 日产操逼| 大香蕉 222| 欧洲综合色图| 亚洲综合五月天| 精品二区三四区五电影 | 天天透伊人| 天美传媒婬乱在| 欧美综合站| 亚洲熟妇白浆无码AV| 色色色色网站| 91超碰丝袜制服| 日韩性爱高清免费视频| 日本三级大片| 亚洲九九视频| 久久久精品国产亚洲AV无码| 久热这里| 人妻啊啊人妻啊| 91九九九吃| 国产av强奸美女| 超碰天天操| 黄aaaaaaaaaaaaaaaaaa色网站| 加勒比伊人影院| 大香蕉专区| 91无码中出人妻视频| 婷婷色香伊人| 91精品电影18| .精品人妻一区二区三| 欧美色图 人妻| 视频黄色国产一级| 美女性91| 精品九九九九九九九| 久久久久久人妻一区精品色欧美| 97草草| 国产成人网| 无码操逼视频一下| 亚洲综合69| 免费观看啪视频| 国产精品内射婷婷一级二| 国产传媒美日韩av| 无码日韩人妻av一| 欧在线一二区| 久久久久ab| 99久久精品国产高潮| 老熟女91视频| 黄网站黄视频网站进入口| 久久精视频美日韩在线视频| 噜噜噜噜久久久精品免费| 混色激情av| 无码聚合| 97色碰| 一区二区国产视频在线观看| 成人黑料社久久| 久久黄片国产一区二区| 亚欧美综合| 96精品在线| 黄片免费看黄片免费看| 91宗合网| 精品人妻一区二区三区视频| 欧美国产日韩高清在线| 国产精品蜜臀久久久久无码AV| 97超碰欧美手机在线| 亚洲综合色男人网| 色色色色网站| 国产日韩无码一区二区三区久久区| 搡老女人老91妇女熟女| 丁香五月性爱| AV污污污污| 国产精品午夜AV完会免费 | 久久久久久9| 男人天堂 天天射| 欲色影视综合吧| 色色色五月婷婷| 精品人妻1区| 涩涩久久精品| 精品然女一区二区| 精品一区二区三区蜜桃臀赵总 | 亚洲不卡不卡中文字幕不卡| 四虎影院成年人片| 亚洲色图殴美色图激情乱伦| 日韩国产精品人妻无码久久久| 91网站在线播放| n1038 一二三区| 精品免费1| 九九色色| 日本 欧美 国产一区| 91c色| 日韩激情无码影院| 亚洲人天堂| 91日韩国产欧美亚洲另类精盘州至城都| 久操在97| 97视频在| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 亚洲精品啪视频| 欧美日韩黄片精品在线| 起碰97| 一二三区操逼国产91| 亚洲天堂另类| 后入综合久久| 九九九九精| 亚洲日精品| 偷窥自拍亚洲| 欧美激情色婷婷花野真衣一区二区 | 亚洲骚男同com| 青草影院内射高潮| 一二三卡欧美日韩人妻免费精品| 欧美97视频| 啊好爽快点-国产一区二区三区撒尿在线-成人AV| 久久九九一区二区三区成人| 欧美日韩免费专区在线| 宅男午夜在线视频| 天天操夜夜操| 欧美日韩222| 图色综合网| 日日干夜夜操视频h| 天天摸夜夜操视频| 久久精品99久久久久久| 91国产丝袜美女| 久久精品无码一区二区三区| 一区二区视频在看| 日日操夜夜操天天操免费观看麻豆| 日日爱99| 亚洲国产精品V?在线播放| 国产辣妈在线视频福利| 欧美日韩黄片精品在线| 婷婷视频在线免费观看| 成人av动漫在线观看| 国产精品青草综合久久| 丰满人妻一区二区三区在线| 久久嫩草国产成人一区| 男人天堂免费| 啊啊啊啊免费视频| 草草草视频在线免费看| 久久亚洲AV无码专区国产精品| 黑人嘿嘿嘿超爽免费视频| 免费av大片| 婷婷久久五月| 91最新综合| 蜜桃视频一区二区三区| 美女天天干| 欧美色涩| 日日操丁香五月天| 婷婷色综合| 欧美A√综合网| 精品丰满熟妇人妻一区| 91搡老女人老妇女老熟女歌词翻译| 热久久国产| 日本亚洲熟女视频| 久久久久久夜夜夜夜夜| 亚洲人妻久久久| 人妻一区二区三区四区视频| 日韩人妻制服丝袜av| 国产女人高潮视频| 91 丝袜在线观看| 97免费视频在线| 一级啊性爱在线视频| 黑丝内射一区二区三区| 国产成人天堂| 国产精品直播在线观看直播| 操逼视频亚洲| 久久9亚洲| 国产激情在线| 秋霞成人一级在线观看| 五月天激情小说| 97久久天天综合色天天综合色电影| 久久久性爱| 91碰超| 欧美日韩国产在线| 91影视亚洲| 麻豆美女丝袜人妻中文| 乱论91| 麻豆av一区二区三区| 超碰在线在公开超碰在线在公开| 蜜臀久久久99久久久久 | 四虎影视精品| 一区在线国产播放| 亚洲少妇在线影音| 蜜臀在线视频| 玖玖97综合| 亚洲资源吧| 你想操日本小逼吗| 天天摸天天舔天天操| 一起草高清无码| 日韩人妻播放| 青青青艹在线视频| 日韩电影在线观看网址| 国产又色又粗又黄又爽| 亚洲AO在线| 免费a v| 中文字幕 国产区| 男人天堂无码| 久久精品国产亚洲AV无码做| 欧美 亚洲 另类 综合| 亚洲巨爆乳一区二区三区四季网| 四虎永久在线精品免费网址| 久久线上视频免费看| 色综合av男人天堂| 九热超碰| 色久桃花影院在线观看| 青青草精玖玖69精品| 91爱剪切久久| a网站免费观看| 日本ZZ高免费A级视频| 97国产高清视频在线观看| 九99久久| 无码日韩网站| 校园春色中文字幕AV| 亚洲黄色网址视频| 九九九九97| 99热伊人| 99精品人妻| 九色 人妻 大香蕉| 欧美呦呦性爱| 欧美成人色| 天天日天天干天天整| 精品女同一区| 日韩 欧美 视频 在线 一区| 999久久芭蕾| 欧美十八禁在线看| 97 国产精品| 国产亚洲99久久精品| 玖玖久久久| 精品无码一二三四区| 亚洲一级性爱视频免费看| 操逼999| www.狠狠| 男女啪啪啪18禁网站| 久久夜嗨| 色播综合| 欧美一区二区三区不卡高清视频| 久久久久密臀视频| 日本高清有码网址视频| 久久久无码精品人妻二区 | 翔田千里爆乳巨臀无码| 男人下部插入女人下部| 精品人妻av在线播放| 男女国产精品| 色婷婷综合久久久久中文一区二区| 日本视频在线观看污污污| 97超碰久久| 97色涩| 欧美三级不卡| 操逼操操操91| 亚洲无码精品AV久久久| av2014 日韩在线中文字幕| 欧美 综合| 欧美v亚洲v日韩v最新在线二区| 9久久久久| 骚货 中文字幕 av| 久久久久久久极品香蕉视频| 97人人操人人摸人人爱| 欧美成人性活片| 9999亚洲电影| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 日韩操呦呦影院在线观看| 色狠狠综合| 日韩 欧美 视频 在线 一区| 亚洲欲色| 欧美在线综合| 一牛一区二区三区久久| 五月婷视频| 天天干天天狼在线视频| 欧美性爽xyxOOOO| 噜噜噜亚洲精| 免费99精品国产自在在线| 欧美三级一级| 97超碰国产亚洲精品资源| 人妻一区视频| av网站免费看| 中文视频在线观看| 亚洲,欧美,综合网| 尤物视频偷拍免费| 天天综合香 ld视频| 久久婷婷五月| 超碰av在线| 黄色区免费观看中文字幕| 国产成人自拍视频视频| 国产精品剧情| 国产精品午夜福利| 亚洲图片 欧美电影| 爱爱久久| 超碰无码五月97| 四虎免费看黄| 国产精品对白内射| 99re这里只有精品3| 婷婷五月成人| 密桃99999| 一区二区三区机械有限公司| 一级aaaaa欧美中文字幕录像片| 天天干天天燥| 麻豆国产精品午夜视频| 无码久久国产| 俄罗斯及免费在线看| 78精品在线| 国产精品视频在线观看| 亚洲丝袜二区在线| 粉嫩av一区二区三区天美传媒 | 三级网色| 亚洲色色探花| 成人精品一区二区91毛片不卡| 精品无码久久久久久国产浪潮| TS人妖另类精品视频系列| 亚洲影院无码在线| 日韩熟女三十乱伦| 狠狠婷婷亚洲中文综合久久| 精品国产Av无码久久久亚洲| 一起草三级AV电影在线观看 | 96精品久久久久久久久久| 97精品一区二区三区免费| 欧美亚洲情色| 女人天堂av在线播放| 国产精品ⅴ无码大片在线看.| 乱伦一二三| 四虎在线观看视频| 国产三级在线现体验区| 乳欲人妻办公室奶水| 欧美日韩大香蕉| 一起草欧美| 久久久夜夜嗨免费视频| 国产又粗又又黄又猛| 久久最新免费视频23| 怡红院成人av| 毛片99-全集电影手机免费观看完整-B029AV | 欧洲精品人妻| 人人操人人精品影片| 蜜臀在线网站| 久久69| 国产精品久久久久无码A√| 亚洲1区2区三区高清中文字幕| 影音先锋每日最新资源在线观看| 精品亚洲国产成人精品| 欧美顶级黄片AAAAA在线免费看| 国产在线76页| 青青草久久一区网| 亚洲人精品久久久| 久热最新在线杭州| 操操操五月天婷婷丁香影院| 极品美女福利在线观看| 婷婷五月综合激情| 99xav| 208天天久久九九九| 欧美福利视频啊啊啊啊| 国产久久av| 久久草大香蕉| 中文字日本乱码| WWW美腿丝袜香蕉中文| 老司机福利青青草| 九月丁香婷婷色| 久久精品欧美一区蜜桃| 久久夜嗨| 不卡在线观看视频| 在线一道啪| 美日韩成人| 欧美白嫩在线放| 欧美日韩人妻精品一区二区三区| 欧美亚洲素人制服精品| 日本午夜福利影院| 亚洲成人妻日韩在线| 久久久日本电影| 激情啪啪拍91| 久极品在线观看| 热久久99999| 伊人国产成人av网站| 丰满的三级少妇欧美久久久| 美女高潮视频91| 精品免费一区| 久久五月婷| 亚热日本熟女| 国产亚洲深夜激情| 久操高青| 久久精品操| 激情五月天丁香社区| 中文字幕视频免费| 亚洲无码超碰免费| 欧美精品第3页| 亚洲资源吧| 伦理片秋霞免费影院| 啊啊好多水| 无码不卡八戒| 欧美久久毛片基地| 亚州性色| 五月激情综合网| 尤物视频偷拍免费| 亚洲高清无码在线桃色| 欧洲Au麻豆| 精品无码欧美三级| 色情五月婷婷| 亚洲成人AB| av网页一区二区三区| 97碰碰日本乱偷人妻中文的| 日韩三级伦理中文字幕| 97干日韩| 蜜臀久久99精品久久久久久-DVD| 91五月天| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 国产91丝袜在线播放蜜月| 成人精品无码| 欧美性暴力猛交XXXX| 日本一级真人黄色性爱视频| 91女网站| 女人精品内射国产99| 后入人妻一区| 一区AV| 日本黄色裸日本黄色裸体| 高清国产无码av| 国产极品久久久| 国产美女销魂在线观看不卡| 亚洲性猛交| 中文字幕一区二区在线日韩精品| 亚洲伊人久久精品影院| 日韩中文字幕人妻视频| av草草在线电影| 国产亚洲日本精品在线| 少妇三p| 精品区9| 日韩免费福利在线观看| 亚州再线| 人人摸人人干人人拍97| 青青操视频在线| 五月婷婷激情综合| 免费视频一二三区| 校园春色综合色| 飘花国产午夜精品不卡| 99re在线视频这里只有精品| wwwcaobibi| 91成人18| 久久111| 欧美大香蕉同搞| 91狠狠狠| 亚州色交| 黄片色区软件| 国产美女91| 天天干天天日天天射黄色大片 | 五月婷在线| 国内毛片欧美香蕉精品| 青青草手机在线免费观看| 日本理论在线| 操人妻视频| 国产欧美岛国精品一区| 免费看黄视频亚洲网站| 激情综合五月天| 少妇一区二区三区精选| 国产婷婷一区| 免費黃色視頻觀看一| 婷婷午夜清品久久久久久久性色视频观| 亚洲av热热色| 日韩欧美俄罗斯A片| 天美传媒婬乱| 91爱做| 天美麻豆精品视频99| 亚洲成人贴图| 亚洲少妇免费视频\| 亚洲色图殴美色图激情乱伦| 日本成a人v网站在线观看| 91人妻丝袜无码| 成人黑料社久久| 中文字幕视频二区| 久久精品国产精品| 思思热免费视频观看| 美国精品国产精品| 男人的天堂日韩| 亚洲精品天天影视综合网| 两性色网| 婷婷久久五月综合激情| 后入精品| 骚熟女吞| 美女的肌被草喷水视频| 7777欧美成是人在线观看| 亚洲伊人a线观看视频| 欧美丝袜91| 丁香7月婷婷| 麻豆av一区二区三区| 丁香五月激情五月| 操逼1区| 密乳AV免费观看| 亚洲男人天堂AV| 欲香欲色综合天天伊人| 蜜桃视频一区二区三区| 91新在线欧美| 五月天综合| a在线观看| 亚洲自拍偷拍视频在线| 久久久久99999| 97se亚洲综合自| 天天干夜夜肏| 97视频在线视频| 久久亚洲天天做| 国产精品乱码久久久久久久久久久久| 91热爆在线| 色婷婷五月综合激情中文字幕| 岛国在线免费视频| 国产91av在线播放| 中文字幕在线观| 久久青青草在线视频| 影音资源男人日韩| 九九人妻| 蜜桃午夜视频一区二区 | 自偷自拍的亚洲视频| 国产亚洲禁久一区二区| 日韩精品碰碰| 欧美性爱1080p| 久久欲| 免费中文综合精品| 亚洲 欧美 制服 另类 自拍| 日本一级特级毛片视频| 在线播放成人高清免费视频| 久久人| 精品国产av一区二区三区四区入口| 草草草视频| 国产又黄又爽| 凹凸 69堂 在线播放|