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

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

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

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

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

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

歡迎點擊|閱讀原文|
進入HarmonyOS應用開發(fā)在線體驗
原文標題:Hypium框架使能ArkTS應用高效測試
文章出處:【微信公眾號:HarmonyOS開發(fā)者】歡迎添加關注!文章轉載請注明出處。
-
HarmonyOS
+關注
關注
80文章
2144瀏覽量
35236
原文標題:Hypium框架使能ArkTS應用高效測試
文章出處:【微信號:HarmonyOS_Dev,微信公眾號:HarmonyOS開發(fā)者】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
上能電氣與中石油濟柴簽署框架合作協(xié)議
HarmonyOSAI編程單元測試用例
方案分享 | ARXML 規(guī)則下 ECU 總線通訊與 ADTF 測試方案
UI開發(fā)概述
什么是ArkTS?
APP自動化測試框架
KaihongOS操作系統(tǒng):ArkTS語言基礎
全自動框架壽命測試機6大突破,助力騰方提升工作效率和提高產品質量
ArkTS語言基礎介紹篇
OpenHarmony程序分析框架論文入選ICSE 2025
儲能逆變器自動測試系統(tǒng)的技術原理和應用
ArkTS開發(fā)指南優(yōu)化上新

Hypium框架使能ArkTS應用高效測試
評論