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

ARTICLE DETAIL

資訊詳情

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

鴻蒙HDC模擬操作實(shí)戰(zhàn):從tap、swipe到自動(dòng)化腳本

鴻蒙HDC模擬操作實(shí)戰(zhàn):從tap、swipe到自動(dòng)化腳本 做鴻蒙開發(fā)的人應(yīng)該都經(jīng)歷過(guò)這種狀態(tài)功能改完了要驗(yàn)證流程結(jié)果同一套點(diǎn)擊、滑動(dòng)、輸入在真機(jī)上手動(dòng)點(diǎn)了一遍又一遍。后來(lái)我把這套重復(fù)工作交給HDC命令行工具的模擬操作一句命令代替一個(gè)手指動(dòng)作配合腳本能跑完整條鏈路。這篇就是我在鴻蒙設(shè)備上折騰HDC模擬操作的完整記錄包括每條指令的用法、連設(shè)備時(shí)踩過(guò)的坑以及常見的失效排查方法適合剛接觸鴻蒙開發(fā)或者想把手動(dòng)測(cè)試自動(dòng)化的人參考。1. HDC模擬操作是什么解決了什么真實(shí)問(wèn)題1.1 從ADB時(shí)代過(guò)來(lái)的聯(lián)想早年做安卓開發(fā)時(shí)我已經(jīng)習(xí)慣用ADB調(diào)試設(shè)備。第一次接觸鴻蒙的HDC我第一反應(yīng)是翻命令清單發(fā)現(xiàn)它和ADB的很多思路是共通的。HDC全稱是HarmonyOS Device Connector本質(zhì)是電腦與鴻蒙設(shè)備之間的調(diào)試橋。它負(fù)責(zé)把電腦上的命令送到設(shè)備執(zhí)行也能把設(shè)備日志、狀態(tài)回傳回來(lái)。對(duì)開發(fā)者來(lái)說(shuō)最常用的功能無(wú)非是安裝HAP、列出設(shè)備、進(jìn)入Shell、模擬輸入操作等。我特別想強(qiáng)調(diào)一點(diǎn)HDC不是ADB的簡(jiǎn)單改名。鴻蒙的設(shè)備協(xié)議、權(quán)限模型和應(yīng)用安裝機(jī)制都有自己的一套邏輯。比如安裝包是HAP拉起Ability用aa start很多命令參數(shù)跟Android不完全一樣。所以你不能想當(dāng)然地把ADB命令直接套過(guò)來(lái)最好的方式是先看一遍HDC支持的完整命令列表再針對(duì)性使用。模擬操作就是其中讓我覺得價(jià)值最大的一塊。它的本質(zhì)很簡(jiǎn)單讓設(shè)備系統(tǒng)接收一個(gè)輸入事件比如坐標(biāo)點(diǎn)擊、滑動(dòng)手勢(shì)、物理按鍵、文本輸入。對(duì)App來(lái)說(shuō)這些事件跟在屏幕上用手指操作沒(méi)有本質(zhì)區(qū)別。應(yīng)用并不感知是誰(shuí)在點(diǎn)只感知到觸摸事件流。這也就意味著你可以在不侵入應(yīng)用代碼的前提下用一個(gè)外部命令行工具驅(qū)動(dòng)整個(gè)界面流程非常適合回歸測(cè)試、演示錄屏、批量驗(yàn)證。1.2 HDC能模擬哪些操作我在實(shí)際項(xiàng)目里最常用的模擬能力包括這幾類點(diǎn)擊指定屏幕坐標(biāo)模擬一次手指按下和抬起?;瑒?dòng)從起點(diǎn)滑到終點(diǎn)支持設(shè)置時(shí)長(zhǎng)也能模擬長(zhǎng)按。按鍵模擬返回鍵、Home鍵、音量鍵、電源鍵等物理按鍵。文本輸入向當(dāng)前焦點(diǎn)輸入框發(fā)送ASCII文本。屏幕相關(guān)亮屏、息屏、鎖屏狀態(tài)切換。配合輔助截圖、查看當(dāng)前窗口、獲取布局信息等。這些能力單獨(dú)看都不復(fù)雜但組合起來(lái)能完成很多事。比如我剛接手一個(gè)鴻蒙應(yīng)用時(shí)需要在不同賬號(hào)下跑一遍完整的用戶路徑。手動(dòng)操作一次大概三分鐘十幾個(gè)賬號(hào)就是快一個(gè)小時(shí)而且人很容易點(diǎn)錯(cuò)。用HDC模擬操作之后我把賬號(hào)信息放進(jìn)循環(huán)跑一組大約十分鐘就能完事中途還能去做別的事。1.3 它和你手動(dòng)操作有什么區(qū)別最大的區(qū)別是“狀態(tài)感知能力”。人手點(diǎn)界面時(shí)眼睛能看到界面變化知道該等頁(yè)面加載完再點(diǎn)下一步。HDC模擬操作沒(méi)有眼睛它只管發(fā)指令不管界面是否已經(jīng)響應(yīng)。所以你用HDC做模擬操作時(shí)必須自己負(fù)責(zé)節(jié)奏控制等待、延時(shí)、校驗(yàn)頁(yè)面狀態(tài)。這也是新手最常翻車的地方。另一個(gè)區(qū)別是“坐標(biāo)系”。人眼看到的是一個(gè)控件手指點(diǎn)的是控件中間。HDC不知道控件在哪只認(rèn)識(shí)屏幕上的像素坐標(biāo)。所以你要先把“我想點(diǎn)那個(gè)按鈕”翻譯成“屏幕橫向第540像素、縱向第1200像素的位置”。這就引出后續(xù)坐標(biāo)獲取和動(dòng)態(tài)計(jì)算的問(wèn)題。我的結(jié)論是HDC模擬操作是一個(gè)極其好用的“假手指”但它不是“智能大腦”。它勝在輕量、穩(wěn)定、不受應(yīng)用代碼限制適合做流程性、重復(fù)性的操作模擬。如果你需要智能斷言、元素識(shí)別、復(fù)雜邏輯應(yīng)該上自動(dòng)化測(cè)試框架但那套體系要維護(hù)的東西也多得多。兩者不是替代關(guān)系是互補(bǔ)關(guān)系。2. 搭建環(huán)境HDC下載、連接設(shè)備與版本血淚坑2.1 HDC從哪里來(lái)HDC不是系統(tǒng)自帶的命令行工具需要單獨(dú)準(zhǔn)備。最常見的來(lái)源有兩個(gè)一個(gè)是安裝DevEco Studio時(shí)隨IDE一起提供的一般在SDK目錄下另一個(gè)是華為開發(fā)者官網(wǎng)提供的Command Line Tools包。我建議開發(fā)機(jī)直接把 hdc 所在路徑加進(jìn)系統(tǒng)環(huán)境變量否則每次都得帶著全路徑敲命令時(shí)間長(zhǎng)了非常煩躁。Windows下我記得默認(rèn)路徑類似C:\Program Files\Huawei\DevEco Studio\sdk\default\openharmony\toolchains\hdc.exemacOS下一般是*/sdk/default/openharmony/toolchains/hdc。裝好后在終端里敲hdc -v能看到版本號(hào)就說(shuō)明路徑?jīng)]問(wèn)題。這里有個(gè)小提醒命令行工具包分不同平臺(tái)Windows、macOS、Linux各有對(duì)應(yīng)版本別下錯(cuò)。Linux環(huán)境如果提示權(quán)限不足記得先chmod x hdc。2.2 USB連接和設(shè)備發(fā)現(xiàn)有線連接仍然是最可靠的連接方式。首先在鴻蒙手機(jī)上開啟開發(fā)者模式打開“設(shè)置”應(yīng)用進(jìn)入“關(guān)于本機(jī)”或者“關(guān)于手機(jī)”找到HarmonyOS版本號(hào)連續(xù)點(diǎn)擊多次直到系統(tǒng)提示“已進(jìn)入開發(fā)者模式”。然后進(jìn)入“開發(fā)者選項(xiàng)”打開“USB調(diào)試”。用數(shù)據(jù)線把設(shè)備和電腦連起來(lái)在終端執(zhí)行hdc list targets如果輸出里出現(xiàn)了一串設(shè)備序列號(hào)說(shuō)明連接成功。如果列表為空我一般按這個(gè)順序排查先確認(rèn)數(shù)據(jù)線是不是只能充電不能傳數(shù)據(jù)盡早換一根原裝線或品牌線再檢查開發(fā)者選項(xiàng)里的“USB調(diào)試”是否確實(shí)打開最后看電腦的驅(qū)動(dòng)有沒(méi)有識(shí)別到設(shè)備。Windows下如果系統(tǒng)提示“未知設(shè)備”需要安裝設(shè)備驅(qū)動(dòng)很多第三方助手工具也能順手裝驅(qū)動(dòng)但注意別裝捆綁軟件。我實(shí)測(cè)下來(lái)USB連接最隱蔽的坑其實(shí)是鎖屏。設(shè)備息屏鎖著HDC雖然能識(shí)別設(shè)備但部分操作會(huì)不響應(yīng)最好在調(diào)試期間把鎖屏方式改為“無(wú)”或者“滑動(dòng)解鎖”或者至少在跑模擬操作前手動(dòng)亮屏解鎖一次。2.3 無(wú)線連接的兩種姿勢(shì)調(diào)試自動(dòng)化時(shí)我不能一直插著線所以無(wú)線連接用得越來(lái)越多。鴻蒙的HDC無(wú)線連接有個(gè)讓我一開始繞暈的地方它有兩種路徑。第一種是先用USB連接電腦在設(shè)備上確認(rèn)無(wú)線調(diào)試端口后執(zhí)行hdc tconn 192.168.1.100:5555執(zhí)行成功后可以拔掉USB線后續(xù)命令都走局域網(wǎng)。第二種是設(shè)備已經(jīng)開啟了“無(wú)線調(diào)試”選項(xiàng)界面會(huì)顯示一個(gè)IP和端口直接在電腦上執(zhí)行hdc tconn 設(shè)備IP:端口。只要電腦和設(shè)備在同一個(gè)局域網(wǎng)一般都能連上。無(wú)線連接有個(gè)前提防火墻別攔著端口。Windows電腦偶爾會(huì)出現(xiàn)connect failed的報(bào)錯(cuò)關(guān)掉第三方防火墻或者加白名單就能解決。另外無(wú)線環(huán)境不如USB穩(wěn)定跑長(zhǎng)時(shí)間自動(dòng)化時(shí)如果出現(xiàn)掉線可以寫一個(gè)簡(jiǎn)單的重連邏輯發(fā)現(xiàn)hdc list targets結(jié)果為空就再執(zhí)行一次hdc tconn。2.4 版本不匹配的坑版本問(wèn)題是我這次要重點(diǎn)說(shuō)的。HDC和鴻蒙系統(tǒng)之間有嚴(yán)格的版本適配關(guān)系舊版HDC連新版系統(tǒng)經(jīng)常出現(xiàn)莫名其妙的怪問(wèn)題。最典型的表現(xiàn)有設(shè)備能識(shí)別但hdc shell input tap執(zhí)行后無(wú)響應(yīng)。部分命令提示unknown command或者invalid parameter。安裝HAP時(shí)報(bào)錯(cuò)但應(yīng)用在設(shè)備上明明能正常安裝。我之前踩過(guò)一次很典型的坑電腦里裝過(guò)一個(gè)較老版本的HDC連上一臺(tái)新版本的鴻蒙設(shè)備tap命令一直沒(méi)反應(yīng)但list targets和shell都正常。折騰很久才意識(shí)到是版本問(wèn)題換成與設(shè)備匹配的新版HDC后立刻恢復(fù)。所以我的建議是盡量從官方渠道下載和鴻蒙系統(tǒng)版本配套的HDC別為了圖方便用歷史遺留的舊版本也別從第三方渠道隨意拿。命令行工具這種基礎(chǔ)組件踩坑成本遠(yuǎn)高于下載成本。3. 模擬操作四大金剛tap、swipe、keyevent、text3.1 tap點(diǎn)坐標(biāo)而不是點(diǎn)控件最基本的模擬點(diǎn)擊命令是這樣hdc shell input tap 540 1200這條命令的含義是在屏幕橫坐標(biāo)540、縱坐標(biāo)1200的位置執(zhí)行一次點(diǎn)擊。坐標(biāo)系以屏幕左上角為原點(diǎn)單位是物理像素。你需要知道目標(biāo)控件在屏幕上的大概位置而不是它的控件ID。獲取坐標(biāo)的方法有很多。最原始但在調(diào)試階段最有效的一種是先用HDC截一張圖然后在圖片工具里查看目標(biāo)位置坐標(biāo)。HDC截圖命令是hdc shell snapshot_display -f /data/local/tmp/screen.png hdc file recv /data/local/tmp/screen.png ./screen.png截圖之后用系統(tǒng)自帶畫圖工具打開鼠標(biāo)放在想點(diǎn)的位置就能看到像素坐標(biāo)。這個(gè)辦法笨但管用。鴻蒙的開發(fā)者選項(xiàng)里也有“指針位置”功能開啟后屏幕上會(huì)實(shí)時(shí)顯示手指觸摸的坐標(biāo)這也是一種輔助獲取坐標(biāo)的方式。值得注意的是tap 命令發(fā)出去之后沒(méi)有任何回顯。它不會(huì)告訴你“點(diǎn)擊成功”或“點(diǎn)擊失敗”所以你必須在點(diǎn)擊之后自己驗(yàn)證界面變化。我一般會(huì)在關(guān)鍵操作后用hdc shell snapshot_display再截一張圖對(duì)比前后差異。3.2 swipe滑動(dòng)和長(zhǎng)按都靠它滑動(dòng)手勢(shì)用這條命令hdc shell input swipe x1 y1 x2 y2 duration前四個(gè)參數(shù)是起始點(diǎn)和結(jié)束點(diǎn)的坐標(biāo)最后一個(gè)可選參數(shù)是滑動(dòng)持續(xù)時(shí)間單位毫秒。它不只是用來(lái)翻頁(yè)拖動(dòng)進(jìn)度條、下拉刷新、長(zhǎng)按圖標(biāo)這些手勢(shì)都能靠它模擬。舉幾個(gè)我實(shí)際用過(guò)的場(chǎng)景模擬下拉刷新從屏幕中間偏上位置滑到偏下位置例如hdc shell input swipe 540 800 540 1800 200。拖動(dòng)滑塊亮度條或者視頻播放進(jìn)度條可以從起點(diǎn)滑塊位置滑到目標(biāo)位置時(shí)間放長(zhǎng)到500毫秒以上動(dòng)作更接近真人。長(zhǎng)按操作比如長(zhǎng)按桌面圖標(biāo)進(jìn)入編輯模式用同一坐標(biāo)作為起點(diǎn)和終點(diǎn)把duration設(shè)置為1000毫秒以上。長(zhǎng)按其實(shí)就是swipe的一個(gè)特殊情況這點(diǎn)容易被人忽略。我最早還以為長(zhǎng)按需要單獨(dú)的命令后來(lái)才發(fā)現(xiàn)只要把起點(diǎn)和終點(diǎn)設(shè)成同一個(gè)點(diǎn)再拉長(zhǎng)執(zhí)行時(shí)間即可。3.3 keyevent按鍵也能模擬按鍵模擬的命令格式hdc shell input keyevent 4數(shù)字4代表返回鍵。除了數(shù)字編碼有些HDC版本也支持直接傳按鍵名稱比如hdc shell input keyevent BACK。我用過(guò)一段時(shí)間的常用KeyCode整理成表格方便查閱KeyCode含義說(shuō)明3HOME鍵回到桌面4BACK鍵返回上一級(jí)26電源鍵亮屏/息屏切換82菜單鍵打開上下文菜單85播放/暫停多媒體控制87下一曲多媒體控制111ESC鍵退出當(dāng)前操作220亮度調(diào)低部分設(shè)備支持221亮度調(diào)高部分設(shè)備支持keyevent 的用法和真實(shí)按鍵幾乎等價(jià)。比如我想回到桌面再重新進(jìn)入應(yīng)用就可以先hdc shell input keyevent 3再執(zhí)行hdc shell aa start -b 包名 -a Ability名。這種方式比模擬滑動(dòng)手勢(shì)更穩(wěn)定因?yàn)椴灰蕾囎鴺?biāo)任何時(shí)候執(zhí)行都會(huì)觸發(fā)系統(tǒng)返回行為。這里提一個(gè)容易踩的坑不同鴻蒙版本對(duì)某些按鍵的映射可能存在差異。比如菜單鍵在部分版本上不響應(yīng)音量鍵的KeyCode在不同設(shè)備上也可能不一樣。建議在真機(jī)上先手動(dòng)執(zhí)行一遍確認(rèn)行為符合預(yù)期再寫進(jìn)腳本。3.4 text輸入中文的特殊處理文本輸入命令是這樣的hdc shell input text hello這條命令的核心限制是默認(rèn)只支持ASCII字符不支持中文、日文、韓文等多字節(jié)語(yǔ)言。如果你直接往命令里塞中文大概率會(huì)失敗或者輸入亂碼。另外空格也不能直接傳需要用%s代替比如hdc shell input text hello%sWorld如果確實(shí)需要輸入中文怎么辦我實(shí)踐下來(lái)的可行方案有兩個(gè)方向。方向一把要輸入的內(nèi)容放到系統(tǒng)剪貼板然后在輸入框里長(zhǎng)按點(diǎn)擊“粘貼”。但HDC本身沒(méi)有標(biāo)準(zhǔn)的剪貼板寫入命令所以這個(gè)方案依賴額外工具不是開箱即用。方向二換用支持ADB/HDC輸入中文的第三方輸入法或測(cè)試輸入法這類輸入法一般自帶監(jiān)聽通道能把文本通過(guò)特殊協(xié)議塞進(jìn)輸入框。文本輸入還有一個(gè)細(xì)節(jié)焦點(diǎn)問(wèn)題。input text只往當(dāng)前獲得焦點(diǎn)的輸入框發(fā)送內(nèi)容如果界面上沒(méi)有輸入框獲得焦點(diǎn)命令執(zhí)行了也白執(zhí)行。所以我在一套操作里會(huì)先點(diǎn)一下目標(biāo)輸入框等一秒再發(fā) text 命令。3.5 獲取真實(shí)坐標(biāo)的輔助手段模擬操作的坐標(biāo)是最容易出問(wèn)題的地方所以我單獨(dú)說(shuō)一塊。除了截圖看坐標(biāo)還有兩個(gè)命令很有用hdc shell wm size hdc shell wm density第一條輸出當(dāng)前屏幕的物理分辨率比如Physical size: 1080x2340第二條輸出像素密度比如Physical density: 480。這兩個(gè)值能幫我做坐標(biāo)比例換算。假設(shè)我寫腳本時(shí)用的基準(zhǔn)設(shè)備是1080x2340點(diǎn)擊位置是540x1200現(xiàn)在換到一臺(tái)720x1600的設(shè)備簡(jiǎn)單按比例縮放就能得到新設(shè)備的點(diǎn)擊坐標(biāo)新x 540 * 720 / 1080 360新y 1200 * 1600 / 2340 ≈ 821這個(gè)比例換算不是絕對(duì)精確因?yàn)椴煌钠聊槐壤拖到y(tǒng)欄高度會(huì)影響最終點(diǎn)中的位置但至少能把“完全點(diǎn)歪”變成“大概正確”后續(xù)微調(diào)就快很多。如果有條件還可以嘗試hdc shell uiautomator dump導(dǎo)出當(dāng)前界面的控件樹然后解析XML里每個(gè)控件的bounds屬性從而拿到目標(biāo)控件的中心點(diǎn)坐標(biāo)。不過(guò)這類命令在鴻蒙不同版本上的支持程度不一樣有些版本路徑和格式有差異。我一般在開發(fā)調(diào)試階段用截圖和指針位置在寫腳本階段用wm size做動(dòng)態(tài)換算控件樹只在有空的時(shí)候用。4. 組合起來(lái)才是真本事還原一個(gè)真實(shí)業(yè)務(wù)場(chǎng)景4.1 場(chǎng)景設(shè)計(jì)與前置準(zhǔn)備前面全是單條命令的拆解但實(shí)際工作里沒(méi)人會(huì)只敲一條。我拿一個(gè)真實(shí)場(chǎng)景來(lái)說(shuō)驗(yàn)證一個(gè)鴻蒙應(yīng)用的“登錄-首頁(yè)-退出”流程。前置條件有幾個(gè)一是應(yīng)用已經(jīng)安裝到設(shè)備上我一般用hdc install xxx.hap安裝二是有一個(gè)測(cè)試賬號(hào)注意不要用真實(shí)敏感賬號(hào)因?yàn)樽詣?dòng)化腳本里可能會(huì)明文記錄密碼三是設(shè)備保持解鎖狀態(tài)最好關(guān)閉自動(dòng)鎖屏。在執(zhí)行模擬操作之前我會(huì)先手動(dòng)進(jìn)一次應(yīng)用記住登錄頁(yè)的幾個(gè)關(guān)鍵坐標(biāo)賬號(hào)輸入框坐標(biāo)、密碼輸入框坐標(biāo)、登錄按鈕坐標(biāo)。這次手動(dòng)操作花不了幾分鐘但能省下腳本調(diào)試階段反復(fù)猜測(cè)坐標(biāo)的時(shí)間。4.2 完整命令串演一遍下面是這個(gè)場(chǎng)景的完整命令串我用的是bash環(huán)境Windows下可以放進(jìn).bat腳本# 檢查設(shè)備在線 hdc list targets # 安裝應(yīng)用如果已經(jīng)安裝可以跳過(guò) hdc install ./demo.hap # 啟動(dòng)應(yīng)用包名和Ability名根據(jù)實(shí)際替換 hdc shell aa start -b com.example.demo -a MainAbility # 等待應(yīng)用啟動(dòng) sleep 3 # 點(diǎn)擊賬號(hào)輸入框 hdc shell input tap 540 1100 # 輸入賬號(hào) hdc shell input text testuser01 # 點(diǎn)擊密碼輸入框 hdc shell input tap 540 1300 # 輸入密碼僅ASCII hdc shell input text Passw0rd # 點(diǎn)擊登錄按鈕 hdc shell input tap 540 1600 # 等待首頁(yè)加載 sleep 5 # 模擬返回鍵退出到桌面 hdc shell input keyevent 4這串命令每一步都有注釋核心邏輯就是“點(diǎn)、等、輸入、點(diǎn)”。執(zhí)行完之后我再截一張圖確認(rèn)最終狀態(tài)hdc shell snapshot_display -f /data/local/tmp/result.png hdc file recv /data/local/tmp/result.png ./result.png打開截圖看到首頁(yè)元素出現(xiàn)說(shuō)明整條流程跑通了。如果發(fā)現(xiàn)卡在中間某一步我會(huì)在對(duì)應(yīng)步驟前后各加一次截圖快速定位是哪一步?jīng)]生效。4.3 延時(shí)與等待不要裸奔執(zhí)行在上面命令串里我反復(fù)用了sleep這不是隨便寫的而是模擬操作最容易被低估的點(diǎn)。真實(shí)用戶點(diǎn)擊登錄按鈕之后眼睛會(huì)看到加載動(dòng)畫等到頁(yè)面跳轉(zhuǎn)完才進(jìn)行下一步。但HDC命令是按順序執(zhí)行的上一秒點(diǎn)完登錄下一秒可能直接發(fā)返回鍵結(jié)果應(yīng)用還沒(méi)來(lái)得及跳轉(zhuǎn)返回鍵就把應(yīng)用退了。我的經(jīng)驗(yàn)是不同操作之間必須給足緩沖時(shí)間。啟動(dòng)應(yīng)用后至少等3秒頁(yè)面跳轉(zhuǎn)至少等3到5秒網(wǎng)絡(luò)請(qǐng)求頻繁的場(chǎng)景建議等更久。更穩(wěn)妥的方式是輪詢。比如想確認(rèn)登錄后的首頁(yè)是否出現(xiàn)可以寫一個(gè)循環(huán)每隔1秒查一次當(dāng)前頂層窗口直到出現(xiàn)目標(biāo)頁(yè)面或者超時(shí)。例如可以嘗試這樣的思路用hdc shell hidumper -s WindowManager查看當(dāng)前窗口信息在循環(huán)里解析關(guān)鍵字段匹配到目標(biāo)頁(yè)面就繼續(xù)超時(shí)就報(bào)錯(cuò)退出。這種方式比固定sleep更可靠但代碼量會(huì)大一些。我個(gè)人的習(xí)慣是腳本前期用固定sleep快速跑通流程流程穩(wěn)定后再把關(guān)鍵節(jié)點(diǎn)改成輪詢等待提高整條自動(dòng)化鏈路的穩(wěn)定性。5. 模擬操作失效時(shí)我的排查鏈路5.1 命令返回錯(cuò)誤碼但沒(méi)有具體提示最讓人頭疼的情況是命令執(zhí)行了可是界面紋絲不動(dòng)。這時(shí)候我第一步會(huì)檢查HDC是不是還連著設(shè)備。無(wú)線連接偶爾會(huì)悄悄斷開但命令仍然能下發(fā)設(shè)備卻沒(méi)響應(yīng)。先跑一下hdc list targets如果輸出為空?qǐng)?zhí)行hdc tconn 設(shè)備IP:端口重連再跑一次。如果設(shè)備在線接著檢查設(shè)備是不是熄屏了。可別笑我至少有兩三次在設(shè)備息屏狀態(tài)下跑自動(dòng)化命令全部“成功”了但屏幕一直是黑的后來(lái)才意識(shí)到是設(shè)備自動(dòng)鎖屏。檢查方法也很簡(jiǎn)單執(zhí)行hdc shell power-shell wakeup讓設(shè)備亮屏然后重新解鎖再跑。這個(gè)問(wèn)題暴露了模擬操作的盲區(qū)它只會(huì)發(fā)事件不會(huì)等待屏幕狀態(tài)變化所以你在腳本里要主動(dòng)管理亮屏狀態(tài)。5.2 點(diǎn)擊了但界面沒(méi)反應(yīng)如果設(shè)備在線、屏幕亮著、命令也執(zhí)行了但頁(yè)面沒(méi)有預(yù)期變化我一般懷疑三個(gè)原因。第一個(gè)原因是點(diǎn)擊位置被其他元素遮擋。常見的遮擋源是系統(tǒng)彈窗、懸浮球、下拉通知欄。尤其是懸浮球很多設(shè)備開著三指截屏或懸浮導(dǎo)航透明觸控層會(huì)在某些區(qū)域吃掉點(diǎn)擊事件。我調(diào)試時(shí)習(xí)慣把這類輔助功能全部關(guān)掉。第二個(gè)原因是控件實(shí)際響應(yīng)區(qū)域和視覺位置不一致。有些自定義控件、WebView里的元素視覺上在上方實(shí)際可點(diǎn)擊區(qū)域卻在另一個(gè)位置。遇到這種情況我會(huì)用開發(fā)者選項(xiàng)里“指針位置”功能手動(dòng)點(diǎn)一次目標(biāo)看系統(tǒng)上報(bào)的坐標(biāo)是多少再對(duì)比HDC里填的坐標(biāo)就知道偏差了多少。第三個(gè)原因是時(shí)序問(wèn)題。點(diǎn)擊真的發(fā)出去了但當(dāng)時(shí)頁(yè)面還在加載目標(biāo)控件還沒(méi)渲染出來(lái)點(diǎn)擊落在了空白區(qū)域。這種問(wèn)題很好判斷把點(diǎn)擊前的sleep加長(zhǎng)或者改成輪詢等待頁(yè)面元素出現(xiàn)而不是等固定秒數(shù)。5.3 坐標(biāo)漂移換個(gè)設(shè)備就偏固定坐標(biāo)的腳本換個(gè)分辨率設(shè)備就跑偏這是坐標(biāo)模擬的天生弱點(diǎn)。前面我提到過(guò)用hdc shell wm size做比例換算這里再補(bǔ)充一個(gè)細(xì)節(jié)比例換算對(duì)設(shè)備的“可用顯示區(qū)域”很敏感。有些設(shè)備的屏幕比例是19.5:9有些是20:9單單按分辨率等比縮放底部導(dǎo)航欄、狀態(tài)欄的高度占比不一樣導(dǎo)致?lián)Q算后的坐標(biāo)在豎屏頁(yè)面上接近正確但頁(yè)面偏下部分的按鈕會(huì)發(fā)生明顯偏移。我在項(xiàng)目里給過(guò)一條曲線救國(guó)的方案先在同一型號(hào)設(shè)備上寫死基準(zhǔn)坐標(biāo)用腳本啟動(dòng)時(shí)自動(dòng)讀取當(dāng)前設(shè)備分辨率只對(duì)同一比例范圍的設(shè)備做換算如果相差太大干脆用單獨(dú)一套坐標(biāo)配置。5.4 系統(tǒng)限制安全輸入、鎖屏和隱私保護(hù)不是所有操作都能用HDC模擬搞定這一點(diǎn)必須提前知道。鴻蒙和所有主流移動(dòng)操作系統(tǒng)一樣對(duì)敏感輸入有保護(hù)機(jī)制。典型例子是鎖屏密碼、支付密碼這類安全輸入框系統(tǒng)會(huì)攔截來(lái)自非物理輸入設(shè)備的模擬輸入。我測(cè)試過(guò)在鎖屏密碼界面用input text輸入數(shù)字事件可以發(fā)出但密碼框根本收不到這是系統(tǒng)層面的安全策略不是命令寫錯(cuò)了。另外一個(gè)容易踩的坑是應(yīng)用自行實(shí)現(xiàn)的“防自動(dòng)化”邏輯。有些金融、風(fēng)控類應(yīng)用會(huì)檢測(cè)觸摸事件的來(lái)源如果發(fā)現(xiàn)輸入事件不是來(lái)自真實(shí)屏幕觸摸會(huì)彈出安全提示或踢出登錄狀態(tài)。遇到這種情況HDC模擬操作就不是合適的工具應(yīng)該考慮使用官方提供的自動(dòng)化測(cè)試框架通過(guò)系統(tǒng)授權(quán)的方式完成輸入。排查完這些之后我一般會(huì)重新讀一遍自己腳本的每個(gè)動(dòng)作設(shè)備狀態(tài)檢查、亮屏喚醒、屏幕解鎖、點(diǎn)擊、等待、校驗(yàn)。這套鏈路上任何一個(gè)環(huán)節(jié)斷開都可能導(dǎo)致“命令成功但實(shí)際沒(méi)操作”。6. 從單條命令到自動(dòng)化腳本把模擬操作變成生產(chǎn)力6.1 用批處理/Shell串起來(lái)模擬操作要真正提升效率必須從“手工敲”變成“腳本跑”。最簡(jiǎn)單的形式就是Shell腳本把命令串成一串。我在Shell里習(xí)慣先定義一個(gè)公共函數(shù)避免到處重復(fù)function tap() { hdc shell input tap $1 $2 sleep 1 } function type_text() { hdc shell input text $1 sleep 1 } tap 540 1100 type_text testuser01這樣做的價(jià)值有兩個(gè)一是統(tǒng)一處理延時(shí)不會(huì)漏寫sleep二是如果以后命令變了只需要改函數(shù)內(nèi)部不用滿世界找命令。Windows下的.bat腳本也差不多不過(guò)語(yǔ)法更受限我建議Windows用戶直接裝一個(gè)Git Bash或者使用Python跨平臺(tái)。腳本跑起來(lái)之后建議在關(guān)鍵節(jié)點(diǎn)加上日志輸出比如echo [$(date)] 點(diǎn)擊登錄按鈕。自動(dòng)化腳本一旦跑得時(shí)間長(zhǎng)沒(méi)有日志就完全不知道執(zhí)行到哪一步掛了加日志雖然土但排查效率翻倍。6.2 用Python的subprocess統(tǒng)一管理當(dāng)腳本變得復(fù)雜判斷分支變多Shell腳本就不太好維護(hù)了我一般切到Python。Python的優(yōu)勢(shì)是異常處理、數(shù)據(jù)解析、循環(huán)和重試都更好寫。調(diào)用HDC的命令很直接import subprocess import time def hdc(*args): 統(tǒng)一執(zhí)行hdc命令返回stdout文本 result subprocess.run( [hdc, *args], capture_outputTrue, textTrue, encodingutf-8 ) return result.stdout.strip() def tap(x, y): hdc(shell, input, tap, str(x), str(y)) time.sleep(1) def is_device_online(): targets hdc(list, targets) return bool(targets) if not is_device_online(): print(設(shè)備不在線開始重連...) hdc(tconn, 192.168.1.100:5555) time.sleep(2) tap(540, 1100)這個(gè)封裝的好處是以后換命令、加重試都只改函數(shù)不用動(dòng)業(yè)務(wù)流程。我甚至?xí)趖ap函數(shù)里加一個(gè)簡(jiǎn)單的重試邏輯點(diǎn)擊后截圖對(duì)比前后像素差異判定是否需要再點(diǎn)一次。這種“點(diǎn)擊-截圖-校驗(yàn)”的模式能讓自動(dòng)化腳本穩(wěn)定不少不過(guò)實(shí)現(xiàn)復(fù)雜度也高一些適合需要長(zhǎng)時(shí)間跑回歸的場(chǎng)景。6.3 結(jié)合控件樹讓坐標(biāo)不再硬編碼如果說(shuō)HDC模擬操作有什么讓我覺得可惜的那就是純坐標(biāo)驅(qū)動(dòng)太脆UI一變?nèi)?。后?lái)我嘗試把它和控件樹結(jié)合起來(lái)才算稍微緩解了這個(gè)問(wèn)題。思路是在執(zhí)行模擬操作前先導(dǎo)出當(dāng)前界面的控件樹XML然后在XML里找到目標(biāo)文本比如“登錄按鈕”讀取它的bounds屬性算出中心點(diǎn)坐標(biāo)再調(diào)用tap。這樣就算按鈕在界面上移動(dòng)了位置只要文本文案不變腳本也能找到新坐標(biāo)。實(shí)現(xiàn)大致是hdc shell uiautomator dump導(dǎo)出的XML可能在不同鴻蒙版本上路徑不同我用的時(shí)候會(huì)先執(zhí)行一次看輸出路徑再用hdc shell cat 對(duì)應(yīng)路徑查看內(nèi)容。解析XML用Python的xml.etree.ElementTree或者正則都行。這個(gè)方法不是萬(wàn)能的有些自繪控件、Canvas渲染的界面不會(huì)暴露標(biāo)準(zhǔn)控件樹那就只能退回坐標(biāo)方案。但它確實(shí)能處理很大一部分常規(guī)按鈕、文本框值得一試。6.4 真實(shí)自動(dòng)化中的幾個(gè)小習(xí)慣最后聊幾個(gè)我在長(zhǎng)期實(shí)踐中沉淀下來(lái)的習(xí)慣都不是什么高級(jí)技巧但能實(shí)實(shí)在在減少踩坑次數(shù)。第一腳本開頭一定要寫設(shè)備與分辨率校驗(yàn)。很多自動(dòng)化跑掛不是用例寫錯(cuò)了而是連接設(shè)備變了或者分辨率變了。先確認(rèn)環(huán)境再開始執(zhí)行能省下一半的排錯(cuò)時(shí)間。第二危險(xiǎn)操作前加日志和確認(rèn)。比如腳本要?jiǎng)h除數(shù)據(jù)、退出登錄、或者執(zhí)行頻率很高的循環(huán)我都會(huì)在日志里打印當(dāng)前執(zhí)行位置必要時(shí)在執(zhí)行前加一個(gè)人工確認(rèn)的交互。第三敏感信息不要硬編碼在腳本里。測(cè)試賬號(hào)和密碼最好從環(huán)境變量或單獨(dú)的配置文件中讀取腳本本身可以提交到代碼倉(cāng)庫(kù)但敏感信息不要跟著提交。第四每個(gè)關(guān)鍵動(dòng)作后給足等待時(shí)間但也不要為了追求穩(wěn)妥把所有sleep都拉滿。我通常先用3到5秒的sleep跑通流程穩(wěn)定后再逐步減小等待時(shí)間優(yōu)化到“剛好夠用”的程度。第五跑完自動(dòng)化一定要留證據(jù)。至少截一張最終屏幕圖有條件就錄屏。這樣出了問(wèn)題回看證據(jù)比猜原因高效得多。這些習(xí)慣讓我的HDC模擬操作腳本從“能跑一次”進(jìn)化到“每天跑幾輪也不容易掛”這才是自動(dòng)化真正產(chǎn)生價(jià)值的地方。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
中文?日韩?免费?精品| 日本视频在线中文字幕| 婷婷四五区| 看免费一级在线播放毛片| 做爱福利视频一区二区| 免费人人搞97| 六月丁香婷| 国产日韩精品人妻久久久久色欲网站| 91天天| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 五月婷婷大香蕉| 精品国产91av一区二区三区| 日韩欧美成人性爱在线| 激情五月综合开心五月| 男人天堂欧美| 女人18精品一区二区三区| 嗯嗯啊啊用力视频免费| 亚洲色图大香| 五月综合久久| 亚洲国产剧情少妇激情| 狠狠图片青青草| 好湿好紧好爽 视频| 久久xxxx| 日本中文字幕在线视频| 国产99 中文字幕日韩小视频| 免费啪啪一级视频| 人人人人插| 国产主播福利| 高清国产精品福利网站| 91东北熟女| 国产精品伦理| 色网亚洲人| 欧美A√综合网| 亚洲人在线| 性色avv| 国产亚洲在线观看| 日韩av乱伦| 97碰在线视频| 色综合久| 久插不卡| 后入日本1234| 日本道人妻久久久在线不卡色视频| 热热热热日日漂亮永久永久国产日| 麻豆久久久久久久久丝袜 | 天堂69亚洲精品中文字| www.久久制服糖| 国产成人精品必看| av一区二区三区四区| 级做a爱无码性色永久免费| 一区二区免费电影久久| 日韩性爱视频在线免费观看| 日韩综合无码色欲vv| 亚洲图片激情综合另类| 日韩乱伦视频| 亚洲欧美精品一区天堂久久 | 亚洲久草AV色图| 九九九国产| 91网站18| 九色精品视频导航1| 亚洲午夜福利在线影院| 首页亚洲国产高跟丝袜诱惑视频| 黄色二级片网站| 色噜噜人妻丝袜AV资源| 久久久96精品| 色香综合| 91人妻做a观看视频| 国产在线视视频有精品| 大香蕉免费中文| 男人天堂久久日韩| 欧美色蜜桃97| 爱妃国产亚洲视频中文字幕| 日韩成人性爱电影在线播放| 国产精品九9| 久久97资源 网| 国产日韩中文字幕欧美| 思思久热在线精品66| 九九av| 亚洲欧洲日韩天堂av| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 青青草好吊色| 先锋色眉乱伦资源| 国产少妇与亚洲av| 久久婷婷一区| 91人精品妻入口| 亚洲最新a在线观看| 欧插网站| 欧美色综合网| 国产热av| 97色色色| 开心婷婷五月| 国内毛片四区| 色网在线| 97在线视频免费| 欧美成人A天堂片在线观看| 久草网站免费在线观看| 亚洲精品一二三四区| 欧美亚洲一区二区久久久婷精品大包诱| 99re在线观看| 欧美日韩性爱电影在线| 黄色av一区二区在线| 青青草在线成人视频| 成人五月天色网| 99在线精品视频| 国产51色综合久久免费| 伊人网综合在线视频| 欧美一区91大爱| 久久精品夜色国产亚洲AV| 亚洲一区二区在线观看91| 国产亚洲色停停久久99精品91| 能直接看AV的网站| 久久久111| 亚洲图片欧美| 福利偷拍视频-中文字幕2019国语完整视频大全-S91AV | 色五月激情综合网| AV久日| 青草成人免费视频一com| 亚洲高清无码AAA久久久精品| 人妻少妇视频在线播放| 亚洲黄色电影| 性爱1区| 欧美日日夜夜| 69精品| 国产午夜福利电影免费在线观看 | 少妇色欲综合网2| 综合久久久久久久久91| 91成人在线| 91一区二匹| 亚洲精品男人的天堂| 五月天久久人妻| 伊人女女资源在线观看| 青青草中日韩在线| 色情五月丁香| 最新av中文字幕高清| 午夜欧美J进J出白浆流出久久久| 人人操 欧美| 久久婷婷伊人| 香蕉99秘 一区精品蜜桃臀| 97任你吞精| 亚洲极品| 亚洲欧美日韩综合在线尤物 | 日本理论在线| 国内外毛片在线观看| 欧美刺激色黄片免费看| 久久九色| 久操在97| 五月婷婷六月色| 精品免费一区| 亚洲 欧美 综合 91| 免费av大片| 婷婷激情丁香| 亚洲第一二区另类图| 一区不卡在线观看av| 亚洲五区熟女| 欧美色爱综合| 亚洲男人bt天堂| 中文字幕黄片在线| 麻豆精品天美| 99亚亚热| 秋霞成人一级在线观看| 天天碰久久入| 操人妻逼91| 夜嗨影院| 国产91影院| 精品人妻伦一区二区三区久久| 日日操丁香五月天| 天天上日日上日韩精品| 91国内外在线| 久久秀这里有精品| 新久久AV| 少妇高潮九九九九| 91美女在线视频| 亚欧韩av| 中文字幕精品探花视频| 97视频免费| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 色综合久久夜色精品国产天堂| 日韩精品一区二区三区色欲| 免费国产电影一区二区| 91人妻人人澡人人爽人人精品| 韩国女主播青草在线| 熟女乱伦A| 91性感在线| 超碰97首页| 东京太热久久久| 精品久久久久久中文| 超碰色综合| 99热国产精品| 亚州综合图片| 91在线美女| 人人透人人操| 成人八戒网站| 自怕偷自怕亚洲精品| 大粗鳼巴久久久久| 嗯嗯啊啊啊好爽| 98精品国产乱码久久久久久| 精品久一区免费| 日本色婷婷| 日本色色色色色视频| 国产熟女精品一区二区| 美女啊啊啊啊啊啊| 视频在线97| 久色99999| 欧美色图私拍91| 国产乱婷婷精品二区三区| av片在线观看免费播放| www.色婷婷色综合| 久久夜夜夜夜| 国产成自自拍在线观看| ai欧美亚洲小说| 人妻夜夜爽天天爽麻豆三区网站 | 亚洲影视综合| 国产91美女视频| 超碰欧美97资源| 色999亚洲人成色| 日韩黄色一区二区三区| 超碰久热| 九九RE视频在线精品| 91人妻Pr| 黄污污污污| 开心激情婷婷| 夂久色| 国产精品色色| 视频二区美腿丝袜制服人妻欧美| 日本福利社| 婷婷丁香熟妇综合网| 色播丁香| a久久| 久久久9视频| 色噜噜国产在线| 色五月第四色| 97超碰精品成| 久9精品| 久久久久久久唑| 国产传媒av天美传媒在线| 97网色| 无码久久国产 | 欧美日韩人人精品| 中文字幕人乱码中文字的预防方法| 九九九九九九成人| 亚洲骚男同com| 久久久久国产精品久久久| 26uuu国产亚洲综合| 久久性爱网站| 青娱乐亚洲热| 人人操人人精品影片| 天天干电影| 久久精品国产亚洲妲己影视| 久久一二三四五六七八九区区区 | 嗯嗯嗯嗯啊啊啊好紧好大| 国产极品久久久| 国产视频第2页| 狠狠躁伊人中文字幕| 1240青青草一区二区三区视频天爱| 欧洲在线性爱视频| 国产女乱淫真高清免费视频| 激情综合五月| 伊人aaa| 国产精品欧美在线观看| 台湾成人无码AV| 亚洲欧美大香蕉| 91jk色拍| 福利视频合集| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 国产精品免费美女视频| 精彩视频日韩| 激情四射婷婷六月天| 永久电影三级在线观看| 在线观看综合精品亚洲| 另类视频在线| 在线观看不卡一区二区三区| 国产欧美日韩在线观看麻豆传媒公司| 激情亚洲天堂| 欧美片第一页| 用力操死我| 中文字幕视频二区| 人妻啪| 日日狠狠久久偷偷色综合免费| 午夜αv| 午夜120视频在线观看| 久草国产在线视频| 天天综合网亚洲综合网| 亚洲欧洲中文日韩女优乱码| 日韩偷拍色图| 国产传媒日韩| 日韩另类| 日本在线999| 日韩国产乱子伦App| av在线人气| 91高清日| 久久 国产精品 一区| 午夜啊啊啊| 边做饭边操逼逼| 猛交交| 九九精品网| 日韩精品 视频一区二区| 欧美日本天堂| 国产精品露脸在线观看| 日韩av熟女一区二区三区成人| 69久久| 99热最新网址| 抽插亚洲无码| 精品女人999| 亚洲欧美97| 不卡在线一区,精品一区二区三区中| 五月天人妻综合| 99久久精品国产高潮| 91殴美大片| 高清国产成人无码| 日本免费二区三区| 色情五月综合婷婷| 黄人人操人人操| 少妇久久| 精品十三区| 三上悠亚在线毛片91| 国产四虎在线| 国产精品白丝在线播放| 综合欧美日韩在线| 午夜精品探花| 精品少妇99| 日韩精品区二区三区不卡| 亚欧美色| 国产视频一区二区三区久久亚洲天堂| 韩国一级婬片A片无码天美| 目产99999久久999| 久久草在线综合视频| 在线五区| 夜夜嗨绯色| www.色操逼| 91熟女视频网| 91美女在线视频| 精品欧美А∨无码黑人大荫蒂| 欧美天堂亚洲电影院一区在线播放| 3d成人精品一区二区| 亚洲图片视频小说| 日韩精品三区四区| 操婷婷逼| 中文AV制服乱伦| 色哟哟av| 大香蕉免| 99热精品在线在线| 欧美中文字幕日韩在线| 97在线免费视频观看| 九九亚洲精品| 免费看毛片操穴| 两性色网| 九九九热| 啊啊啊啊免费视频| 另类视频在线| 欧美日韩电影一区二区| 色色五月丁香| 草莓精品视频| 日韩中文字墓| 欧美日韩在线小说 | 乱日视频| 99热9| 成年人黄色视频免费| 综合久久99亚洲人妻中文在线| 精品成人av一区二区三区在线| 自拍偷拍国产欧美日韩韩| 少妇九九九九| 国产精品久久久久久片| 思思热一热婷婷热一热| 狼天天狼天天大香蕉| 亚洲第一狼人丝袜美女另类 | 99中出在线| ?亚洲伊人伊成久久人综合网| 亚洲欧美色图片| 国内一区二区三区| 午夜福利在线视频1000| 色九九九九| 欧美性爱五月天| 色狠狠综合| 乱论91| 日小BB小视频| 中文字幕天堂在线| 91在线免费精品视频| 暴力av在线| 欧美综合天堂| 国产精品com| 不卡二三区人妻少妇| 青青草好吊| 1024午夜激情男人的天堂| 美欧老女人97| 日韩午夜国产| 天堂精品| 日韩人妻大香蕉| 色色99| 性爱久久| 欧美一区二区日韩传媒搭讪精品| 亚洲最大的黄色电影网站。| 天天干2019| 青青草十区九区爱夜| 97爱免费插| 九九久久久久久爱| 色噜噜人妻丝袜AV资源| 中文字幕伊人| 欧美综合777| 欧美日韩系列| 欧美国产操逼| 欧美性暴力猛交| 欧美 亚洲 综合 制服 另类| 亚拍在线| 97久久国产精品| 在免费jIzzjIzz在线视频| 亚洲午夜福利在线影院| 日韩免费看黄片| 91超级碰碰| 天天插天天插| 91久久堂| 麻豆成人影音在线| 亚洲欧美精品国产一区二区| 亚洲国产精品9999在线观看| 亚洲成熟国产精品美女| 亚洲国产成人高清在线| 亚洲不卡不卡中文字幕不卡| 熟啊v色欧美热| 啊啊啊好疼| 婷婷另类小说| 天啪| 无码黑人精品一区二区三区三| 手机在线播放国产福利| 欧美大香蕉卡久久| 亚洲无套久久嗯嗯| 欧美综合 站| 密臀成人视频久久久| 精品久久久久综合无码| 成人精品无码| 久久久久久人妻一区精品色欧美| 国产成人bd在线观看| 浪人综合网| 天天做天天爱| 啊啊啊好舒服好爽啊啊啊视频| 美腿丝袜偷拍亚洲欧美| 97碰碰色| 91午夜无码| 婷婷操逼| 精品国产网站| 成人五月香网在线| 韩国毛片一区二区三区| 美女9118禁| ,成人免费啪啪视频| 天天看,天天做| 黑操B| 日日AAvv| 久久青青草原免费视频| 四虎AV在线观看| 啊啊啊啊好疼视频| 蜜臀一区二区三区在线| 久久禁| 天天上日日上日韩精品| 欧美日韩性爱视屏免费看了| 五月婷婷hd| 超碰97丝袜| 亚洲精品无码久久AV| 偷窥自拍亚洲色图| 青青青青青手机视频| 操逼啊啊啊91| 男人天堂无码| 色狠狠 - 百度| 97se综合网| 91欧洲国产成人久久精品网站| 日韩欧美俄罗斯A片| 超碰综合色| 欧美性爽xyxOOOO| 久久中日麻豆| 亚洲图片激情综合另类| 天天超级碰碰碰| 精品一级毛片在线观看| 99色色网| 国产精品成人午夜福利| hd成人一区二区在线| 啊啊好多水| 超碰国产精品无码| 国产精品九9| 久久久精品网站| 亚洲中文制服诱惑| 精品国产乱码久久久久久网站入口| 亚洲国产欧美中日韩成人综合视频| 四虎国产成人精品免费一女五男| 自拍偷拍 日韩欧美| 天综合中文| 国产一线二线三线av| 无套内射性感少妇视频| 人妻喷水| 人妻天堂综合网| 亚洲欧洲综合| 天天干,夜夜爽| 免看60秒涩涩视频| 天天插天天操| av中亚| 蜜桃色色网站视频三区| 亚洲国产精品无石码久久| 爱我干综合| 久久丝袜| 精品久久久av| 精品亚洲国产成人av网站| 91日产欧美| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 午夜视频黄| 久久精9| 亚洲资源站| 99国产精品人妻人伦| 国产精品操| 亚洲网自拍| 精品一区二区成人| 欧美人妖内射| 97色冈| 日本性交操一区二区不卡系列| 99综合自拍| 日本一区二区三区四区免费观看| 91热色| 91日本在线观看| 成全动漫视频观看免费下载| 夜夜 中文视频rt| 精品性爱一二三区| 91超碰在线| 欧美精品偷拍| 色色色热| 日韩欧美成人综合在线| 男人的天堂com| 精品一区二区三区最新| 香蕉人人操tv| 翔田千里无码一区| 激情文学小说一区二区| 天天弄欧美| 殴美大黄片| 97超碰碰| 骚货操死你| 免費人妻夜夜爽天天爽爽一区| 探花一区二区三| 夜夜夜夜久久久久| 久久午夜鲁丝片| 九九热re99re6在线精品| 宅男91视频在线播放| 偷拍自拍在线视频观看| 午夜舔阴达高潮视频免费看| 久操视频在线| 色第一页| 日韩欧美视频青青| 天天操夜夜嗨| 天天视频黄| 台湾佬大香蕉| 精品一区二区2| 800zy一区二区| 一区二区三区欧美激情| 亚洲欧美首页| 国语精品av| 亚洲影视第一页| 精品人妻一区二区乱码一区二区| 亚洲.欧美.丝袜.中文.综合| 亚洲精品美女久久久久久久久| 岛国免费视频在线| 五十路熟女人妻一区二区在线观看| 91亚洲丝袜| 欧美日本天堂| 欧美日韩淫加| 色女网日韩| 国产精品久久久久久 百度| 另类TS人妖一区二区三区| 男人亚洲天堂| 亚洲97在线观看| 国产中文福利| 久插综合| 神马久久中文字幕| 操人妻逼91| 宅男午夜在线视频| 97超碰热线| 97久久精品国产| 日本天堂网| 韩国轻伦国内自拍一区| 国产精品视频电影| 日韩/97| 国产视频一区二区三区久久亚洲天堂| 天美精品av| 久热色情精品| 亚洲欧美爆| 78久久久| 美女诱惑在线一区| 啊啊啊啊啊啊啊好爽不要| 亚洲激情 欧美色图| 中文字幕啊啊啊在线观看视频| 青青草自拍视频在线播放| 97超碰色五月| 久久天天躁日日躁狠狠躁| 超碰97玖玖爱| 东北操逼| 欧州91高潮| a片在线播放| 久草免费福利在线播放| 日人妻视频91| 久久久久久国产精品免费网站| 秋霞蝌科网日本一区| 女人高潮抽搐喷水视频网站| 久久精品一区二区三区不卡| 国产精品久久久久久夜夜夜| 神马影院午夜福利久久久| 国产精品乱码久久久、久久| 色与欲影视天天看综合网| 久久午夜色播影院免费高清| 岛国网址国产| 婷婷五月天激情网| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 国产精品视频91久久| 国产AV色黄看到爽| 九九香蕉网| 色眯眯射| 99日视频在线免费| 国产美女自拍AV| 日本网色| 蜜桃色院一区久久| 超碰97伊人| 家庭乱伦国产精品| www.av在线观看| 密臀在线免费观看| 蜜臀一二三区| 天天上日日上日韩精品| 精品亚洲国产成人AV制服丝袜| 乱色视频中文字幕| 西西美女视频网| 欧美激情在线观看视频| 亚洲天堂久久久久久粉红视频| 一起草欧美| 成人综合色网| 91亚洲狠狠色| 免费a级毛片av无码久久精品中文字幕| 色乱二区| 东北老女人的激情视频| 我中文字幕6区| 国产精品人妻一区二区| 天天日夜夜爽| 欧美狠狠操| 天天cao在线| 日韩欧美中文日韩欧美色| 黄页18禁| 亚洲一区二区av| 日本www操操操| 女同性恋一区二区三区精品视频| JuliaAnnXXX888| 欧美日韩国产中文精品字幕自在自线| 黄色大片一区二区密桃丝袜| 麻豆91熟妇人妻中文字幕茄子| 性爱av网站| 欧美在线 亚洲| 热思思免费视频| 国产精品老熟女一区二区| 天天干1区2区在线| 久久久久久网址| 男人的天堂2019AV| 青青草原伊人网| 国产精品自在线发布| 国产天美传媒精品| 亚洲牲交| 超碰调教97| 天堂成人网| 日本天天色| 超碰在线1234区| 懂色AV蜜臀无码精品APP| 婷婷15月天青娱乐| 在线可观看的黄色网址| 久久精品中文| 凸凹视频在线观看| 男女啊啊啊啊啊| 91丨九色丨国产打屁股| 九九九九一级| 人人艹亚洲| 亚洲限制级| 高清国产成人无码| 人妻黑丝袜电影| 人人操人人干xxx| 少妇天堂网络| 懂色av色欲av蜜臀av| 亚洲网污污污污| 国产综合网站在线播放 | 日本熟女中文字幕一区| 国产精品密臀网在线观看| 亚洲无线码欧洲精品区别| 中文字幕十五区| 日本在线观看网址| 欧美大战久久久伊人| 91社操逼| 国产搭汕a级片| 精品夜夜澡人妻无码| 亚洲无码精品AV久久久| 精品无码一二三四区| 思思热在线视频在线| 欧美.亚洲.另类.丝袜.制服.诱惑| 在线亚洲欧美| 欧美A√综合网| 无码聚合| 国产极品馒头逼| 亚洲中文制服诱惑| 亚洲第一精品在线视频| 亚洲日精品| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 嗯……啊…嗯嗯…啊…好舒服| 亚洲无码超碰免费| 女人天堂网| 99久久婷婷| 日韩免费三级黄片电影| 北野未奈加勒比av| 亚洲精品美女久久久久久久久| 人妻一区二区三区四区视频| 91男人天堂网| 五月天黄色av| 91精品人妻电影| 热热色91| 60秒免费视频| 天天爽天天操| 国产三级多多影院2022国产AA一级毛片无码 | 97久久久精品| 精品在线观看视频在线| 国产精品久久久久无码Av网曝门| 久热99999| 真实高潮91| 久久久 国产精品| 一区二区三区美女超清| 97在线视频观看免费| 亚州成人A√| 亚洲色诱惑| 国产在线激情视频| 九九九网站| 伊人伊人LD| 久久久一级| 国产激情在线观看| 88xx成人精品视频| 国产伦精品| 久久超碰天天| 97在线播放| 欧美亚洲激情一二三| 人人操天天爽| 农村妇女一级二级三级视频| 色综合久久88色综合久久天天| 日本精品一级二级三级| 伊人国产AV| 亚洲国产青青| 超碰综合色| 超碰av在线| 久久男女激情视频网站 | 色婷婷A V一二三四区麻豆综合| 在线黄色污污网站| 久久久蜜桃一区二区三区| 1769精品一区二区三区| 天天看天天在线精品| 中文字幕一区二区在线日韩精品| 国产综合色精品在线观看| 欧美国产婷婷久久| 一本色道久久综合精品婷婷| 亚洲熟妇白浆无码AV| 蜜臀久久精品久久久久视频| 综合视频91| 蜜桃久久久久久久久久久久| 97干天天| 91美女国产在线| 国产欧洲精品亚洲午夜拍精品| 操逼精品视频| 欧美中字二区| 夜夜操91744565| 亚洲AV乱码专区国产噜噜亚洲| 久操大香蕉手机视频在线看| 人妻AV 中文字幕的| 色色色综合| 综合国产97| 欧美性暴力猛交XXXX| 9 7超碰在线免费观看| 自拍欧美| 成人久久久精品| 韩日精品福利视频一区不卡在线免| 伊人久久久日韩一区| 国产日韩欧美| 色哟哟av网址| 亚洲欧美校园| 少妇久久久久久久久| 国产精品99精品视频网站| 北约熟女超碰| 最近2019中文字幕国语免费版| 91操碰| 热久久91婷婷| 亚州综合色图| asc国产精品| 成人性交午夜免费片| 国产精品熟女一区二区三区| 密乳AV免费观看| 丰满人妻av一区二区三区| 黄色小视频日本txt| 日本三级韩三级99久久| 翘臀vidoes| 无码99| 丰满少妇一区二区三区四区观看| 日韩 成人 有码| 人人妻天天做天天爽| 人人爽夜夜玩视频| 亚洲色图 欧美| 国产毛片久久久久久久| 免費黃色視頻觀看一| 欧美日韩情色一区二区| 中文字幕精品三级久久久| 久久久91| 国产成人午夜视频网址| 91色婷婷综合久久中文字幕二区| 最新AVzaixian| 亚洲色情在线影视| 91欧美大片| 99久久精品国产高潮| 欧美十八禁在线看| 高清不卡一二三区视频......| 一区二区视频你懂的| 欧美综合1性辶| 亚洲最新av无码成人精品区| 九色97| 精品国产乱码久久久久久免费| 国产1024在线播放| av资源在线观看少妇| 天堂国产AV| 亚洲丝袜少妇在线| 欧美日韩国内不卡| 精品中文日韩字幕视频| 男人久久天堂| 日韩乱插| 日韩欧美资源| 人妻娇喘 激情视频| 国产自产一区视频在线| 免费视频在线观看啊啊啊啊啊| 色97综合中文字幕| 国产91av在线播放| 97AV爱| 春色91| 欧美视频在线视频免费va| 人妻酒店出差被中出免费在线播放| 嗯嗯啊啊啊好爽| 最近2019中文字幕国语免费版| wwe 天天干.com| 91亚洲图片| 白嫩国模丰满一二三区| 亚洲熟久久| 欧美成人四级在线播放| 天天弄欧美| 国产精品精品系列在线观看| 色色五月婷婷| 加勒比综合在线| 日韩不卡毛片Av免费高清| 久久一二三四五六七八九区区区| 人妻夜爽夜夜爽| 岛国激情视频在线观看| 蜜桃传媒一区二区亚洲| 91美女在线观看| 天天操天天射青青草| 精品对白久久不卡| 久久欧美按摩999| 91丝袜美女视频| 国产丝袜视频| 少妇淫妇久久久久久久| 激情久久久| 超碰这里只有精品| 亚洲黄色网址视频| 欧美熟女逼久久久久久| 国内精品久久久久影院亚洲| 伊人9| 欧美在线视频99| 久久久久99精品成人片蜜臀| 日本色色色| 色臀AV| 亚洲情色电影网| 无码人妻1727| 欧美日韩国产电影| 欧美性爱www免费版| 99re这里只有精品2| 欧美色婷婷| 青娱乐啪啪视频| 成 人 影视 一区 二区 三区 四区| 亚洲美女av无码| 啊啊啊在线观看免费视频| 精品无码不卡视频| 亚洲伊人青青草| 99精品免费| 97色碰| 久久色激情一区二区三区| 五月丁香黄色网| 91久青| 国产精品亚洲天堂网址| 日韩中文9| 亚洲人人操| 家庭乱伦麻豆| 久久九精品| 欧美中出1| 亚洲 欧美 色图| 亚洲五区熟女| 黄色免费网页无码| 麻豆亚洲AV成人无码久久精品| 91人妻超碰| 婷婷激情五月天小说网| sewuyueav| 日韩情色AV| 国产激情av女片自拍| 国产精品69久久久久久久| 天天干少妇| 日韩激情毛片一级久久久| 亚洲。天堂。日本在线观看| 亚洲精品 大香蕉| 无码 黑人一区二区三区| 国产丝袜啪啪| 2019天天操天天爽天天拍| 久久婷婷热| 亚洲性爱乱操x| 亚洲精品久久一区二区三区蜜桃臀| 超碰碰碰碰| 亚洲精品三区在线观看| 快灬快灬 一下爽蜜桃在线观看| 自拍盗摄一区| 操逼日韩无码| 内射小黄片| www.男人的天堂| 搡老熟女国产1000部| 精品国产乱码久久久久久影片| 国产一级操B视频| 亚洲 无码 偷拍| 操淫穴亚洲五月丁香 | 天天添天天干电影| 亚洲国产麻豆一区二区三区 | 高清无码久操视频| 毛片麻豆91糖心精品毛情片| 亚洲熟妇丝袜在线观看| 26uuu性物| 国产精品成人久久一区二区三区| 91无摭挡| 操91| 欧美78| 大香蕉中文aV在线| 色噜噜综合网| 蜜臀操逼黄色视频操的好爽| 91c色| www.yeyecao| 99人妻| 91综合网在线| 99在线精品观看视频中文| 最新av在线| 一区二区精品更新提醒| 久久侵犯人妻爽爽爽| 免费精品福利在线观看| 国产亚洲女v在线观看| 强奸抽插av| 青青草一本道福利视频| 日本国产二线女色| 久久亚洲色图中文字幕| 亚洲精品欧洲精品| 男人的天堂在线2| 特污免视频| 丁香久久| 精品亚洲国产成人AV制服丝袜| 人妻系列无码专区中文有码| 欧美综合娱乐久久| 国产精品视频白浆免费| 久草免费福利在线播放| 成人美女av| 午夜无码精品免费看性色| 影音先锋乱| 在线强奷到舒服的无码视频| 无码直播久久久| av天堂精品久久| 亚洲中文字幕久久人妻| 中文字幕亚韩| 精品伊人久久久大香线蕉小说| 手机看片1025| 色狠狠综合| 国产蜜臀精品一区免费尤物| 97人肏| 久久精品国产99国产精品亚洲| 加勒比综合九九99视频在线播放| 天堂在线一区二区| 日韩综合色网| AV女优男人的天堂| 中文AV制服乱伦| 国内精品a| 美国日韩黄色片| 日本三级日本三级99| 久久久久13| 成人影 天天操 亚洲| 夜夜騷av、一區二區| 97国产色图| 欧美性爱一区二区三区四区| 日韩欧美中文字| 大香蕉一人| 超碰成人人人爽人人爽| 成人影院永久免费观看网址| 亚洲二区精品在线观看| 国产成人网| 99啪啪| 亚洲亚洲亚洲天堂天堂| 好色综合| 亚洲av综合色区图片亚洲| 精品国产乱码久久久久久口爆网站| 日韩激情啪啪| 欧美精品日韩一区二区| 亚洲天堂区| 啪啪91| 久热网| 国产无吗在线播放| JULIA一区二区三区在线播放| 欧美综合自拍成人自拍第二十页| 亚洲综合113页| 91美女视频电影| 91在线欧美| 亚洲 一区二区 自拍| 91碰碰| 丰满精品人妻少妇久久字幕| 日本孕妇孕交| 久久久不卡| 爱av免费| 日本免费一区二| 99青青草国产视频| 99精品九九九九九九| 精品国产91av一区二区三区 | 久久久久久波多野吉衣高潮| 激情文学小说一区二区| 日韩av无码网站| 第四色奇米影视777| 黑丝内射一区二区三区| 啊啊啊啊啊操我视频| rivers-china.com| 久久久国产av美女私房| 狠狠狠狠狠狠| 屁股久久久久久久久| 91精品国产91综合久久蜜臀| 一区在线观看中文字幕| 一二视频神马久久传媒| 国产在线能看的你懂的| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 欧美在线视频99| 久久高清无码夜夜操| 94色色电影网| 亚洲成av人片色午夜乱码| 亚州中文字幕超碰97| 国产在线综合福利网站| 蜜臀国产AV中文字幕| 黄色成年| 综合欧美日本三级| 青青草成人视频在线观看二区| 亚洲色图综合| 天美av在线观看| 99热一区二区三区四区| 日韩亚洲国产视频| 97日视频| 久久青青草原免费视频| 欧美午夜色妇色鬼| 强奸乱伦免费网站| 2025亚洲男人天堂| 无码动漫av中文字幕| 熟妇高潮一区二区免费视频| 干超碰碰熟女| 亚州精人品大香蕉| 超碰97人妻| 亚洲一区二区三区久久 亚洲一区二区| 人妻精品一区二区| 婷婷五月天网| 99热这里都是精品| 九九热在线视频| 欧美日韩中文字幕人妻| 丁香五月AV| 国产精品久久久久久久久久久久久久吹| 丁香五月激情综合国产| 少妇熟女一区二区三区| 91一起操| 欧美色图综合网| 九九Av| 超碰久超碰久| AV污污污污| 欲香欲色综合天天伊人| 大香网站| 精品人妻丰满熟妇一区二区三| 岛园激情| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 福利伊人玖玖国产| 九九九久久久久| 在线观看亚洲专区| 国产精品毛片| 精品国产一区二区三区四区在线看 | 美女诱惑爱爱| 成人一道本免费视频| 日本免费不卡二区| 天天懆天天日| 老司机久久| 男人的天堂一区三区| 亚洲欧美综合| 日欧毛片久久| 亚洲欧洲网站免费观看| 欧美乱欲| 日韩精品电影| 人人扣人人操| 国产第12页| 国产AB视频| 欧美最婬乱婬爆婬性视频 | 欧美激情精品久久久| 在线观看视频91| 欧美三级一级| 精品一二三区女同 | 九九九九九九综合| 天天摸天天插天天日| 天堂俺去俺来也www久久婷婷| 本道在线| 日韩无码嘿咻黑热久| 国产精品麻豆视频网站| 91色香| 亚洲污污网站| 国产四虎在线| 日韩免费中文字幕视频| 狠狠爱AV| 91国产大片| 亚洲午夜AV| 男人的天堂免费| 九九九九九九九九九五码| 99色色| 久久亚洲AV成人精品无码| av三级电影在线播放| 精人妻无码一区二区三区伊人直播| 国产精品青青草| 1024人妻熟女一区二区三区| 黄片qw| 欧美日本成人一区二区| 九九亚洲色在线观看| 亚洲人妻熟妇三十三区| 色五月大香蕉| 中文字幕狠狠玩| 人人贴人人摸| 中文字幕在线免费观看 | 国产在线不卡导航| 丁香五月天激情| 免费福利视频中文字幕| 欧美色欧美| 91N综合网| 91美女高潮| 观看免费区二区三区二| 日本九九九九| 成年人网站在线免费观看| 一本大道青青| 久久是精品| 精品中文一区二区| 欧美性区| 第二页中文字幕| 国产小视频91| 久久精视频美日韩在线视频| h无码动漫在线观看| 国产精品 久久久精品一牛| 最新国内自拍av免费| 欧美亚洲小说| 国产精品久久久久婷婷二区次| 国产女主播视频在线观看| 蜜桃臀一区二区aV| 2020中文字幕在线| 亚洲有码第一页| 中文字幕-区二区三区四区视频中国| 色老汉玖玖爱| 久久久亚洲精品中文字幕人妻| 自拍二页| 熟女自慰久久久| www老逼91| 91久久精品国产| 亚洲有码 视频一区| 成人夜夜爽| 国产精品亚洲免费| 日韩人妻制服丝袜av| 国产极品精品美女视频|