作者:leidan,軟件測(cè)試開(kāi)發(fā)工程師
HarmonyOS發(fā)布了聲明式開(kāi)發(fā)框架ArkUI,帶來(lái)了極簡(jiǎn)高效的開(kāi)發(fā)體驗(yàn),備受廣大開(kāi)發(fā)者的青睞。那么,我們?cè)陂_(kāi)發(fā)過(guò)程中,如何確保ArkTS應(yīng)用的功能和界面滿(mǎn)足預(yù)期呢?ArkTS應(yīng)用怎樣高效進(jìn)行專(zhuān)項(xiàng)測(cè)試?接下來(lái),有請(qǐng)我們本期的主角——自動(dòng)化測(cè)試框架Hypium閃亮登場(chǎng)。
Hypium測(cè)試框架介紹
想必大家對(duì)自動(dòng)化測(cè)試框架Hypium并不陌生,此前有關(guān)于Hypium的詳細(xì)介紹《HarmonyOS自動(dòng)化測(cè)試框架—Hypium》,大家可自行查閱。下面,我們一起了解Hypium測(cè)試框架,主要涵蓋三個(gè)維度:
1、測(cè)試執(zhí)行調(diào)度層
xDevice支持手機(jī)、平板、PC、穿戴、智慧屏、音箱和車(chē)機(jī)等多設(shè)備,助力應(yīng)用跨設(shè)備測(cè)試驗(yàn)證。
2、測(cè)試框架層
涵蓋HTSUnit、HUITest、HCUnit與HCPPTest多層次測(cè)試框架,從應(yīng)用的單元/接口層、到UI界面層、再到C/C++系統(tǒng)層,構(gòu)建多維度測(cè)試服務(wù)保障。
3、測(cè)試能力庫(kù)
包含系統(tǒng)測(cè)試組件、UITestKit組件、專(zhuān)項(xiàng)測(cè)試組件,以及分布式測(cè)試組件,實(shí)現(xiàn)豐富的場(chǎng)景模擬能力和跨設(shè)備分布式測(cè)試能力。

Hypium測(cè)試框架架構(gòu)
Hypium測(cè)試框架以插件形式集成到DevEco Studio中,使用非常便捷。今天,我們重點(diǎn)分享Hypium新版本支持ArkUI引擎,同時(shí)新增了測(cè)試能力庫(kù),構(gòu)建豐富的場(chǎng)景模擬能力和專(zhuān)項(xiàng)測(cè)試執(zhí)行能力,全面使能ArkTS應(yīng)用自動(dòng)化測(cè)試。
豐富的場(chǎng)景模擬API,助力多層次測(cè)試
ArkTS應(yīng)用采用了類(lèi)似MVC經(jīng)典結(jié)構(gòu)1,包括View(視圖)、Model(模型)、Server(服務(wù))三個(gè)部分。View(視圖)負(fù)責(zé)頁(yè)面元素定義生成頁(yè)面和一些基礎(chǔ)的頁(yè)面邏輯;Model(模型)是數(shù)據(jù)模型,負(fù)責(zé)存儲(chǔ)應(yīng)用的數(shù)據(jù);Server(服務(wù))負(fù)責(zé)處理復(fù)雜的業(yè)務(wù)邏輯,包括網(wǎng)絡(luò)、設(shè)備硬件交互等。針對(duì)三個(gè)不同層次的測(cè)試場(chǎng)景,我們可以采用不同的測(cè)試方式,驗(yàn)證應(yīng)用的正確性。
1、View層:UI界面層,建議使用系統(tǒng)集成測(cè)試,驗(yàn)證基礎(chǔ)功能和界面。
2、Model層:數(shù)據(jù)邏輯層,可以使用應(yīng)用接口測(cè)試,驗(yàn)證數(shù)據(jù)邏輯的正確性。
3、Server層:業(yè)務(wù)邏輯層,可以使用應(yīng)用接口測(cè)試,驗(yàn)證業(yè)務(wù)邏輯的正確性。

ArkTS應(yīng)用多層次測(cè)試
在測(cè)試過(guò)程中,為了驗(yàn)證應(yīng)用的功能,我們需要構(gòu)建不同的場(chǎng)景。例如,測(cè)試導(dǎo)航場(chǎng)景需要構(gòu)建位置移動(dòng)軌跡,測(cè)試重力感應(yīng)游戲需要構(gòu)建重力傳感器數(shù)據(jù),測(cè)試低電量場(chǎng)景需要等到設(shè)備電量低于5%等。但構(gòu)建這些場(chǎng)景耗時(shí)費(fèi)力,甚至部分無(wú)法實(shí)現(xiàn)自動(dòng)化,只能依賴(lài)人工測(cè)試,基于這種情況,Hypium測(cè)試框架提供了通用的接口模擬能力,支持開(kāi)發(fā)者模擬應(yīng)用接口,快捷構(gòu)建測(cè)試場(chǎng)景。
以下是單元測(cè)試模擬能力通用接口列表:

模擬能力通用接口
使用以上模擬接口,我們可以便捷地模擬任意接口的返回值,從而達(dá)到場(chǎng)景模擬效果,提升應(yīng)用單元測(cè)試效率。但對(duì)于部分特殊場(chǎng)景,開(kāi)發(fā)者模擬效率較低,通用模擬能力無(wú)法滿(mǎn)足特定的測(cè)試需求。別擔(dān)心,除了通用模擬能力,Hypium測(cè)試框架還提供了特殊場(chǎng)景模擬能力,包括設(shè)備交互模擬、設(shè)備環(huán)境模擬、云端交互模擬。
1、設(shè)備交互模擬:構(gòu)建應(yīng)用與設(shè)備之間數(shù)據(jù)交互模擬能力,主要模擬設(shè)備物理器件數(shù)據(jù)與應(yīng)用的交互,包括不限于:物理位置模擬、重力傳感器、加速度傳感器等多種傳感器數(shù)據(jù)模擬。基于設(shè)備交互模擬能力可以構(gòu)建多種場(chǎng)景,例如:導(dǎo)航、重力感應(yīng)、接近光等。
2、設(shè)備環(huán)境模擬:構(gòu)建設(shè)備狀態(tài)的模擬能力,包括不限于:系統(tǒng)電量、信號(hào)強(qiáng)度、媒體播放、資源占用等,基于設(shè)備環(huán)境模擬能力可以構(gòu)造設(shè)備的不同狀態(tài),例如:低電量、弱信號(hào)、后臺(tái)媒體播放等。
3、云端交互模擬:構(gòu)建云端模擬能力,模擬云端服務(wù)器的返回值,將應(yīng)用與云端服務(wù)解耦。
專(zhuān)項(xiàng)測(cè)試執(zhí)行能力,使能多維度測(cè)試
ArkTS應(yīng)用除了基礎(chǔ)的測(cè)試場(chǎng)景外,還面臨很多特殊的測(cè)試場(chǎng)景,例如:如何測(cè)試應(yīng)用接口的性能?接口的參數(shù)類(lèi)型比較多,如何實(shí)現(xiàn)全量覆蓋?測(cè)試某項(xiàng)場(chǎng)景時(shí),如何避免執(zhí)行全部測(cè)試用例,只執(zhí)行相應(yīng)部分測(cè)試用例?
針對(duì)這些特殊場(chǎng)景,Hypium測(cè)試框架從測(cè)試執(zhí)行粒度、執(zhí)行方式、執(zhí)行調(diào)度等多維度提供壓力、數(shù)據(jù)驅(qū)動(dòng)、篩選能力等場(chǎng)景的測(cè)試執(zhí)行能力,進(jìn)一步提升ArkTS應(yīng)用測(cè)試執(zhí)行效率。
1、壓力測(cè)試
適用于接口壓力測(cè)試場(chǎng)景,用戶(hù)可以自定義測(cè)試用例的執(zhí)行次數(shù)。執(zhí)行測(cè)試aa test測(cè)試命令帶上壓力參數(shù)即可,例如:
aa test –p xxxx –n xxxxx –s stress 10
參數(shù) | 取值 | 含義 |
-s stress | 正整數(shù) | 測(cè)試用例執(zhí)行次數(shù) |
2、數(shù)據(jù)驅(qū)動(dòng)測(cè)試
適用于接口參數(shù)類(lèi)型比較多,無(wú)法通過(guò)測(cè)試用例直接覆蓋的場(chǎng)景。我們可以自定義配置參數(shù)快捷驅(qū)動(dòng)測(cè)試用例的執(zhí)行次數(shù)和每一次傳入的參數(shù),使用時(shí)依賴(lài)data.json配置文件,文件內(nèi)容如下:
左右滑動(dòng),查看更多
配置參數(shù)說(shuō)明:

3、測(cè)試用例篩選
Hypium支持根據(jù)用例屬性,篩選執(zhí)行指定的測(cè)試用例,使用方式是先在測(cè)試用例上標(biāo)記用例屬性后,再在測(cè)試應(yīng)用的啟動(dòng)shell命令后新增"-s ${Key} ${Value}"。

示例代碼
左右滑動(dòng),查看更多
示例命令
左右滑動(dòng),查看更多
該命令的作用是:篩選測(cè)試應(yīng)用中同時(shí)滿(mǎn)足a)用例級(jí)別是1 b)用例粒度是small c)用例測(cè)試類(lèi)型是function 三個(gè)條件的用例執(zhí)行。
4、測(cè)試套篩選
測(cè)試套與用例名稱(chēng)使用“#”號(hào)連接,多個(gè)篩選規(guī)則使用“,”英文逗號(hào)分隔。
Key | 含義說(shuō)明 | Value取值范圍 |
class | 指定要執(zhí)行的測(cè)試套&用例 | ${describeName}#${itName},${describeName} , 例如:-s class attributeTest#testAttributeIt |
notClass | 指定不執(zhí)行的測(cè)試套&用例 | ${describeName}#${itName},${describeName} , 例如:-s notClass attributeTest#testAttributeIt |
示例命令
左右滑動(dòng),查看更多
本期分享的自動(dòng)化測(cè)試框架Hypium,你學(xué)會(huì)了嗎?快來(lái)上手試試吧!未來(lái),我們還將繼續(xù)打磨演進(jìn)Hypium測(cè)試能力,助力大家開(kāi)發(fā)更卓越的應(yīng)用產(chǎn)品,廣大開(kāi)發(fā)者朋友敬請(qǐng)期待!
1MVC結(jié)構(gòu)即 Model 模型、View 視圖、Controller 控制器。
END
想了解更多HarmonyOS技術(shù)?
后臺(tái)留言給我們
立刻安排!

歡迎點(diǎn)擊|閱讀原文|
進(jìn)入HarmonyOS應(yīng)用開(kāi)發(fā)在線(xiàn)體驗(yàn)
原文標(biāo)題:Hypium框架使能ArkTS應(yīng)用高效測(cè)試
文章出處:【微信公眾號(hào):HarmonyOS開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
HarmonyOS
+關(guān)注
關(guān)注
80文章
2122瀏覽量
32926
原文標(biāo)題:Hypium框架使能ArkTS應(yīng)用高效測(cè)試
文章出處:【微信號(hào):HarmonyOS_Dev,微信公眾號(hào):HarmonyOS開(kāi)發(fā)者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
什么是ArkTS?
KaihongOS操作系統(tǒng):ArkTS語(yǔ)言基礎(chǔ)
全自動(dòng)框架壽命測(cè)試機(jī)6大突破,助力騰方提升工作效率和提高產(chǎn)品質(zhì)量

ArkTS語(yǔ)言基礎(chǔ)介紹篇
ArkTS開(kāi)發(fā)指南優(yōu)化上新

智能調(diào)優(yōu),使步進(jìn)電機(jī)安靜而高效地運(yùn)行

具有精密閾值使能引腳特性的精密延遲啟動(dòng)

使用精度閾值使能引腳防止電池過(guò)度放電

評(píng)論