999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種OpenHarmony操作系統(tǒng)的UI界面自動(dòng)化測試方法

2022-06-11 07:06:27孟斌
電腦知識(shí)與技術(shù) 2022年13期

摘要:基于最新發(fā)布的OpenHarmony 3.1 Release版本提出了一種OpenHarmony操作系統(tǒng)UI界面自動(dòng)化測試與控制方法,包括如何獲得OpenHarmony的UI界面截圖及控件對(duì)象信息,如何在OpenHarmony上模擬點(diǎn)擊、滑動(dòng)、按鍵等操作用于控制設(shè)備自動(dòng)化測試。

關(guān)鍵詞:OpenHarmony;UI界面自動(dòng)化;控件識(shí)別;模擬輸入

中圖分類號(hào):TP3 ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2022)13-0128-04

OpenHarmony是開放原子開源基金會(huì)多個(gè)孵化、運(yùn)營的開源項(xiàng)目之一,是面向全連接、全場景時(shí)代,基于開源方式搭建的一個(gè)智能終端設(shè)備操作系統(tǒng)的框架和平臺(tái)[1]。2020年9月,開放原子開源基金會(huì)接受了捐贈(zèng)的智能終端操作系統(tǒng)的基礎(chǔ)能力及相關(guān)代碼,之后開源了相關(guān)代碼[2]。其中系統(tǒng)類型包括輕量系統(tǒng)(mini system)、小型系統(tǒng)(small system)、標(biāo)準(zhǔn)系統(tǒng)(standard system)[1]。輕量系統(tǒng)面向MCU類處理器,可應(yīng)用于智能家居領(lǐng)域的傳感器設(shè)備、連接模組、穿戴類設(shè)備等;小型系統(tǒng)面向內(nèi)存1MiB以上應(yīng)用處理器,可應(yīng)用于智能家居領(lǐng)域的電子貓眼、IP Camera、路由器以及出行領(lǐng)域的行車記錄儀等;標(biāo)準(zhǔn)系統(tǒng)面向大于128MiB的應(yīng)用處理器,可應(yīng)用于高端家電的顯示屏、中控平板等,可以提供增強(qiáng)的3D GPU以及硬件合成能力,提供增強(qiáng)交互能力、更多控件以及動(dòng)效更加豐富的圖形能力。OpenHarmony的功能框架和設(shè)計(jì)是在不斷演進(jìn)的,隨著操作系統(tǒng)版本的升級(jí),其功能架構(gòu)也在升級(jí)[3]。OpenHarmony的特性之一是分布式多設(shè)備協(xié)同,分布式軟總線是實(shí)現(xiàn)分布式能力的基礎(chǔ),是多設(shè)備互聯(lián)互通的基座,為設(shè)備間提供了統(tǒng)一的分布式通信能力[4]。

2022年3月發(fā)布的OpenHarmony 3.1 Release版本,標(biāo)準(zhǔn)系統(tǒng)版本更新內(nèi)容包括了對(duì)基礎(chǔ)能力和應(yīng)用程序框架及系統(tǒng)應(yīng)用能力和分布式能力的增強(qiáng),系統(tǒng)應(yīng)用構(gòu)建包括系統(tǒng)桌面、系統(tǒng)設(shè)置、SystemUI、圖庫、相機(jī)、聯(lián)系人、備忘錄等[5];分布式能力增強(qiáng)包括了分布式軟總線切換組網(wǎng)、流傳輸、P2P鏈接、藍(lán)牙等能力,支持資源共享、硬件互助等;測試子系統(tǒng)的增強(qiáng)具備了一定的應(yīng)用界面可測試能力;可以通過DevEco Studio開發(fā)OpenHarmony API為8的應(yīng)用及服務(wù)。

GUI界面的自動(dòng)化測試須實(shí)現(xiàn)程序?qū)υO(shè)備界面及返回內(nèi)容的判斷,以及使設(shè)備自動(dòng)輸入模擬代替手工點(diǎn)擊或輸入[6]。如何對(duì)OpenHarmony標(biāo)準(zhǔn)系統(tǒng)的操作系統(tǒng)及應(yīng)用進(jìn)行界面自動(dòng)化測試?設(shè)備及應(yīng)用界面的識(shí)別能力是怎樣的?模擬點(diǎn)擊、滑動(dòng)、按鍵等操作的能力是怎樣的?下面就針對(duì)OpenHarmony 3.1版本標(biāo)準(zhǔn)系統(tǒng)提供的相關(guān)能力做分析和介紹。

1OpenHarmony的調(diào)測設(shè)備與環(huán)境

根據(jù)OpenHarmony 3.1 Release版本發(fā)布的信息[5],提供了Hi3516、RK3568標(biāo)準(zhǔn)系統(tǒng)解決方案,Hi3516開發(fā)板的處理器是ARM Cortex A7@Max.900MHz;RK3568開發(fā)板的處理器是四核64位Cortex-A55,主頻最高2GHz,集成G52GPU。OpenHarmony 3.1 Release版本可以燒錄至這兩種開發(fā)板供開發(fā)調(diào)測,開發(fā)的應(yīng)用可以運(yùn)行在這兩種設(shè)備上,其中RK3568的性能更高一些,運(yùn)行效果更好一些。本篇以Hi3516開發(fā)板為設(shè)備環(huán)境做相關(guān)說明(圖1),相關(guān)內(nèi)容在RK3568開發(fā)板上也適用。開發(fā)板與PC之間采用USB連接。

2 OpenHarmony的調(diào)試通道與基本調(diào)試命令

OpenHarmony的應(yīng)用開發(fā)需要用到DevEco Studio,當(dāng)前其配套OpenHarmony 3.1版本標(biāo)準(zhǔn)系統(tǒng)的應(yīng)用開發(fā)的版本是DevEco Studio 3.0 Beta3 for OpenHarmony(3.0.0.900),安裝完后路徑下的toolchains下有一個(gè)hdc_std.exe,這是提供的Windows系統(tǒng)下的OpenHarmony的調(diào)測通道工具,另外也有Linux版的。在Windows下可以配置環(huán)境變量以便后續(xù)在cmd命令窗口中直接使用hdc_std命令。

2.1 hdc_std的基本命令

輸入hdc_std help可以顯示支持的命令及提示幫助信息,例如:hdc_std –v返回hdc版本,注意設(shè)備上的hdcd和調(diào)試PC側(cè)的hdc_std版本要一致或兼容;hdc_std list targets列舉所有連接的設(shè)備,有多臺(tái)設(shè)備時(shí)用-t來區(qū)分和唯一指定某一臺(tái)設(shè)備;hdc_std file send/recv是文件傳輸命令,加-z參數(shù)是以壓縮方式傳輸;hdc_std install/uninstall是安裝卸載App命令,加-r參數(shù)是替換已經(jīng)安裝存在的App,加-d參數(shù)是允許版本降級(jí);hdc_std shell是進(jìn)入shell命令,shell命令可以ls /system/bin來查看支持的詳細(xì)功能和命令(圖2)。

2.2 hdc_std shell命令

shell命令比較豐富,例如:bm為包管理命令(圖3),bm dump –a為列舉出當(dāng)前設(shè)備已安裝的包;aa為Abiliy元能力命令(圖4),元能力子系統(tǒng)實(shí)現(xiàn)對(duì)Ability的運(yùn)行和生命周期進(jìn)行統(tǒng)一管理和調(diào)度,應(yīng)用進(jìn)程能支撐多個(gè)Ability,Ability具有跨應(yīng)用進(jìn)程間和同一進(jìn)程內(nèi)調(diào)用的能力,Ability管理服務(wù)統(tǒng)一管理和調(diào)度應(yīng)用中的各Ability,并對(duì)Ability的生命周期變更進(jìn)行管理,aa dump –a為列舉元能力Ability清單和狀態(tài)等屬性信息;hidumper命令是hidumper組件提供的,為OpenHarmony開發(fā)、測試人員、IDE工具提供統(tǒng)一的系統(tǒng)信息獲取工具,幫助使用者分析和定位問題[7],進(jìn)入shell命令行輸入hidumper –h可獲取基本信息介紹,功能語法介紹(圖5);hilog是HiLog組件提供的命令,是OpenHarmony日志系統(tǒng),提供給系統(tǒng)框架、服務(wù),以及應(yīng)用打印日志,記錄用戶操作、系統(tǒng)運(yùn)行狀態(tài)等[8],hilog –h返回日志幫助命令。

hidumper-lc可獲得系統(tǒng)信息分類列表;hidumper-c獲取系統(tǒng)base、system等所有分類信息;輸入hidumper-c[base system]可按base或system分類獲取系統(tǒng)簇信息;hidumper-ls可獲取系統(tǒng)中元能力列表;當(dāng)hidumper返回信息過長耗時(shí)過久時(shí),可結(jié)合grep縮短返回時(shí)間和找到想要的返回信息字段,比如輸入hidumper -c base | grepBuildId來獲取設(shè)備軟件版本BuildId號(hào)。

hilog-k是kernel日志讀取開關(guān),on為打開讀取kernel日志,off則關(guān)閉讀取kernel日志;hilog -L為指定級(jí)別的日志(D/I/W/E/F);hilog -t為指定類型的日志(例如:-t app core init);hilog –T為指定tag。

3 OpenHarmony獲取設(shè)備及應(yīng)用界面對(duì)象信息

做UI界面自動(dòng)化測試,首先要能感知、識(shí)別和獲取被測對(duì)象界面,當(dāng)前的OpenHarmony3.1版本提供了截圖能力,Page類型的Ability頁面提供了aa dump獲取界面控件信息的能力。

3.1 獲取設(shè)備界面截圖

獲取設(shè)備整屏截圖的命令為shell snapshot_display(圖6),-i參數(shù)是指如果設(shè)備有多個(gè)顯示屏的情況下指定多顯示屏中的哪一個(gè),如果只有一個(gè)顯示屏則不必使用-i參數(shù);-f指定本地設(shè)備保存路徑,比如/data/lastscreen.png;-w、-h可指定截屏的寬高分辨率,不帶這兩個(gè)參數(shù)則按設(shè)備默認(rèn)當(dāng)前顯示分辨率來截屏,指定則按指定的新的寬高對(duì)截屏進(jìn)行拉伸縮放。

指定本地路徑截屏使用snapshot_display -f /data/lastscreen.png,使用hdc_std file recv /data/lastscreen.png d:\tmp\lastscreen.png則可以將截屏文件傳輸?shù)秸{(diào)試PC的路徑中,方便在調(diào)試PC上查看或判斷。指定分辨率截屏舉例:snapshot_display -f /data/lastscreenWH.png -w 240 -h 480,則截屏的分辨率為240 × 480像素。

3.2 獲取設(shè)備界面控件對(duì)象信息

獲取設(shè)備界面控件對(duì)象信息需要用到元能力Ability命令aa dump,在shell輸入aa dump –a列出所有的Ability信息(圖7),其中com.ohos.setting為包名,而com.ohos.setting.MainAbility為元能力Ability名,ability type為Abiliy元能力類型,這里設(shè)置界面為PAGE類,app state為#FOREGROUND表示設(shè)置界面當(dāng)前為置前狀態(tài),如果為#BACKGROUND則為非置前顯示狀態(tài)。

然后輸入aa dump -i 29-inspector-c > /data/lastinspector.txt,將頁面控件信息保存到本地設(shè)備txt文本,然后用hdc_std file recv /data/lastinspector.txt d:\tmp導(dǎo)出到調(diào)試PC的d盤tmp文件夾下。這里-i是指定的AbilityRecord ID,由上一條aa dump –a查詢獲得。需要注意的是,要獲得控件對(duì)象信息需要提前輸入shell param set persist.ace.testmode.enabled 1打開開關(guān),這樣新繪制的Page頁面才能dump出控件信息,否則dump出的控件信息inspector.txt文本只有前面aa dump的信息沒有控件對(duì)象信息,該設(shè)置設(shè)備重啟依然有效。控件信息包括控件的ID、text文本、坐標(biāo)left、top、width、height,坐標(biāo)單位是像素,設(shè)置界面控件信息示意如圖8。

另外aa dump還有-element、-render方式導(dǎo)出,可展示控件其他的屬性。

4 OpenHarmony的模擬輸入能力

OpenHarmony 3.1 Release版本提供了模擬點(diǎn)擊、滑動(dòng)、按鍵、鼠標(biāo)等操作的能力,shell輸入input可查看支持的模擬輸入命令(圖9)。

設(shè)備觸屏的模擬點(diǎn)擊為input -T,例如:點(diǎn)擊屏幕坐標(biāo)200,200的位置為shell input -T -d 200 200 -u 200 200,其中-T表示為觸摸屏模擬輸入,-d模擬按下,-u模擬按下后的抬起事件;橫向滑動(dòng)為input -T m 400 510 80 510,其中-m表示move即模擬輸入滑動(dòng),從400,510滑動(dòng)到80,510,這些操作如果是設(shè)備界面上有可點(diǎn)擊的控件、可滑動(dòng)的頁面,便可以觸發(fā)點(diǎn)擊和滑動(dòng)事件生效。

設(shè)備模擬按鍵為input -K,例如:模擬按Back返回鍵為input -K -d 2 -u 2,模擬按電源Power鍵為input -K -d 18 -u 18,模擬按音量+為input -K -d 16 -u 16,模擬按音量-為input -K -d 17 -u 17,模擬輸入a為input -K -d 2017 -u 2017,模擬輸入b為input -K -d 2018 -u 2018,模擬按回車是input -K -d 2054 -u 2054,模擬輸入Left光標(biāo)左移為input -K -d 2014 -u 2014,模擬輸入Right光標(biāo)右移為input -K -d 2015 -u 2015,具體鍵盤鍵值與功能對(duì)應(yīng)關(guān)系在源碼multimodalinput_input/frameworks/proxy/events/src/key_event.cpp可以查詢到[9](注意當(dāng)前OpenHarmony 3.1版本并非所有模擬按鍵都實(shí)現(xiàn)了)(圖10)。

設(shè)備模擬鼠標(biāo)為input -M,例如:鼠標(biāo)移動(dòng)到坐標(biāo)100,100的位置為shell input -M -m 100 100,其中-M表示為鼠標(biāo)模擬輸入,-m表示模擬鼠標(biāo)移動(dòng),-d表示鼠標(biāo)按鍵事件,0表示鼠標(biāo)左鍵,1表示鼠標(biāo)中鍵,2表示鼠標(biāo)右鍵。

5 OpenHarmony的UI界面自動(dòng)化測試方法

有了上述OpenHarmony調(diào)試通道基本命令以及獲取設(shè)備截圖、獲取設(shè)備界面控件對(duì)象信息和模擬輸入能力,便具備了在PC上搭建UI界面自動(dòng)化測試的基礎(chǔ)。可以在PC上采用腳本語言封裝調(diào)試命令通道,然后利用上述獲取設(shè)備截圖、獲取設(shè)備界面控件對(duì)象屬性信息和模擬觸屏點(diǎn)擊滑動(dòng)、模擬按鍵、模擬鼠標(biāo)操作事件的可測試能力,編寫UI界面自動(dòng)化測試程序。并且在PC上編寫程序做UI界面自動(dòng)化的方式對(duì)OpenHarmony這種支持分布式多設(shè)備協(xié)同互動(dòng)的系統(tǒng)更方便。另外還有一種方法是開發(fā)一個(gè)OpenHarmony應(yīng)用,調(diào)用相關(guān)對(duì)象識(shí)別能力和模擬輸入能力的API接口來驅(qū)動(dòng)設(shè)備自動(dòng)化測試,這種方式的好處是在安裝好該測試應(yīng)用后,不連接PC的情況下也能運(yùn)行,需要熟悉OpenHarmony應(yīng)用開發(fā)的知識(shí)。考慮到OpenHarmony的分布式多設(shè)備系統(tǒng)特點(diǎn),在PC上調(diào)用調(diào)試通道的設(shè)備,獲取和模擬輸入的可測試能力命令通道做UI界面自動(dòng)化測試,在分布式跨設(shè)備流轉(zhuǎn)、協(xié)同場景具備一定的便利性。對(duì)于資源占用類性能測試,可以利用上述調(diào)試通道hidumper提供的資源占用的能力,對(duì)于用戶體驗(yàn)感知角度的時(shí)延類性能測試[10],可以利用調(diào)試通道aa start、aa stop-service來輔助。

6 結(jié)束語

本文分析和介紹了OpenHarmony操作系統(tǒng)3.1 Release版本的可測試能力,包括OpenHarmony調(diào)試通道基本命令、截屏、獲取OpenHarmony界面對(duì)象以及模擬用戶進(jìn)行點(diǎn)擊、滑動(dòng)、按鍵、鼠標(biāo)操作的輸入,并對(duì)如何對(duì)OpenHarmony設(shè)備進(jìn)行界面自動(dòng)化測試做了說明。隨著OpenHarmony版本的演進(jìn),相應(yīng)的可測試能力也會(huì)隨之演進(jìn),可作為后續(xù)的研究方向。

參考文獻(xiàn):

[1] 開放原子開源基金會(huì).OpenHarmony項(xiàng)目介紹[EB/OL].https://docs.openharmony.cn/about,2021.12.

[2] 歐建深.開源開放地構(gòu)建OpenHarmony[J].軟件和集成電路,2021(6):28-29.

[3] 李傳釗.OpenHarmony的功能架構(gòu)——深入淺出OpenHarmony架構(gòu)、內(nèi)核、驅(qū)動(dòng)及應(yīng)用開發(fā)全棧[M].北京:中國水利水電出版社,2021.

[4] 張榮超.鴻蒙應(yīng)用開發(fā)實(shí)戰(zhàn)[M].北京:人民郵電出版社,2021.

[5] Mamingshuai.OpenHarmony 3.1版本概述[EB/OL]. https://gitee.com/openharmony/docs/blob/OpenHarmony-3.1-Release/zh-cn/release-notes/OpenHarmony-v3.1-release.md,2022.

[6] 仲光亮.GUI界面自動(dòng)化測試的核心技術(shù)[J].電腦編程技巧與維護(hù),2013(3):65-72.

[7] 盧韜.HiDumper組件說明[EB/OL].https://gitee.com/openharmony/hiviewdfx_hidumper,2022.3.

[8] Buzhenwang.HiLog組件說明[EB/OL].https://gitee.com/openharmony/hiviewdfx_hilog,2022.3.

[9] Mayunteng.多模輸入子系統(tǒng)[EB/OL]. https://gitee.com/openharmony/multimodalinput_input/blob/master/frameworks/proxy/events/src/key_event.cpp,2022.3.

[10] 孟斌.一種移動(dòng)智能終端性能流暢評(píng)測方法[J].電子測試,2020(16):80-83,124.

【通聯(lián)編輯:張薇】

主站蜘蛛池模板: 久久久久国产精品熟女影院| 国产视频一区二区在线观看| 国产日韩欧美在线视频免费观看 | 久久这里只有精品国产99| 中文字幕有乳无码| 在线免费不卡视频| 欧美精品伊人久久| 中文成人在线| 国产精品一区二区国产主播| 在线另类稀缺国产呦| 日韩成人在线视频| 国产成人免费高清AⅤ| 婷婷99视频精品全部在线观看| 韩国自拍偷自拍亚洲精品| a免费毛片在线播放| 老司机午夜精品视频你懂的| 极品尤物av美乳在线观看| 91无码人妻精品一区| 久久鸭综合久久国产| 天堂岛国av无码免费无禁网站| 无码视频国产精品一区二区| 免费在线国产一区二区三区精品| 小说区 亚洲 自拍 另类| 18禁色诱爆乳网站| 视频二区亚洲精品| 久久semm亚洲国产| 国产一区二区精品福利| 国产最爽的乱婬视频国语对白| 日本道中文字幕久久一区| 久久国产V一级毛多内射| 99视频在线免费看| 中文字幕在线不卡视频| 欧美精品1区| 精品无码一区二区三区电影 | 国产综合网站| 欧美 国产 人人视频| 精品视频在线观看你懂的一区| 欧美国产三级| www.亚洲一区| 亚洲激情区| 51国产偷自视频区视频手机观看| 中国特黄美女一级视频| 狠狠做深爱婷婷综合一区| 欧美一级片在线| 国产精品污视频| 日本免费a视频| 丰满少妇αⅴ无码区| 国产理论最新国产精品视频| 日韩成人午夜| 精品欧美一区二区三区久久久| 久草中文网| 亚洲国产无码有码| 97成人在线观看| 亚洲第一黄色网址| 无码专区第一页| 美女内射视频WWW网站午夜| 最新无码专区超级碰碰碰| 九九热免费在线视频| 免费a在线观看播放| 久久综合丝袜长腿丝袜| 久久亚洲美女精品国产精品| 永久毛片在线播| 精品视频一区二区三区在线播| 国产久操视频| 91在线视频福利| 一区二区无码在线视频| 久久99国产视频| 99久久精品免费看国产电影| 亚洲男人天堂网址| 久久国产乱子伦视频无卡顿| 欧美三级日韩三级| 欧美a级在线| 亚洲三级影院| 日韩第一页在线| 亚洲黄网在线| 丰满人妻久久中文字幕| 亚洲国产午夜精华无码福利| 97av视频在线观看| 欧美激情网址| 国产乱子伦一区二区=| 亚洲欧美成人在线视频| 午夜精品久久久久久久无码软件|