Hypium框架使能ArkTS應用高效測試
HarmonyOS釋出了宣告式開發框架ArkUI,帶來了極簡高效的開發體驗,備受廣大開發者的青睞。那麼,我們在開發過程中,如何確保ArkTS應用的功能和介面滿足預期呢?ArkTS應用怎樣高效進行專項測試?接下來,有請我們本期的主角——自動化測試框架Hypium閃亮登場。
Hypium 測試框架介紹
想必大家對自動化測試框架Hypium並不陌生,此前有關於Hypium的詳細介紹 《HarmonyOS自動化測試框架—Hypium》 ,大家可自行查閱。下面,我們一起了解Hypium測試框架,主要涵蓋三個維度:
1、測試執行排程層
xDevice支援手機、平板、PC、穿戴、智慧屏、音響和車機等多裝置,助力應用跨裝置測試驗證。
2、測試框架層
涵蓋HTSUnit、HUITest、HCUnit與HCPPTest多層次測試框架,從應用的單元/介面層、到UI介面層、再到C/C++系統層,構建多維度測試服務保障。
3、測試能力庫
包含系統測試元件、UITestKit元件、專項測試元件,以及分散式測試元件,實現豐富的場景模擬能力和跨裝置分散式測試能力。
Hypium測試框架架構
Hypium測試框架以外掛形式整合到DevEco Studio中,使用非常便捷。今天,我們重點分享Hypium新版本支援ArkUI引擎,同時新增了測試能力庫,構建豐富的場景模擬能力和專項測試執行能力,全面使能ArkTS應用自動化測試。
豐富的場景模擬API,助力多層次測試
ArkTS應用採用了類似MVC經典結構1,包括View(檢視)、Model(模型)、Server(服務)三個部分。View(檢視)負責頁面元素定義生成頁面和一些基礎的頁面邏輯;Model(模型)是資料模型,負責儲存應用的資料;Server(服務)負責處理複雜的業務邏輯,包括網路、裝置硬體互動等。針對三個不同層次的測試場景,我們可以採用不同的測試方式,驗證應用的正確性。
1、View層: UI介面層,建議使用系統整合測試,驗證基礎功能和介面。
2、Model層:資料邏輯層,可以使用應用介面測試,驗證資料邏輯的正確性。
3、Server層:業務邏輯層,可以使用應用介面測試,驗證業務邏輯的正確性。
ArkTS應用多層次測試
在測試過程中,為了驗證應用的功能,我們需要構建不同的場景。例如,測試導航場景需要構建位置移動軌跡,測試重力感應遊戲需要構建重力感測器資料,測試低電量場景需要等到裝置電量低於5%等。但構建這些場景耗時費力,甚至部分無法實現自動化,只能依賴人工測試,基於這種情況,Hypium測試框架提供了通用的介面模擬能力,支援開發者模擬應用介面,快捷構建測試場景。
以下是單元測試模擬能力通用介面列表:
模擬能力通用介面
使用以上模擬介面,我們可以便捷地模擬任意介面的返回值,從而達到場景模擬效果,提升應用單元測試效率。但對於部分特殊場景,開發者模擬效率較低,通用模擬能力無法滿足特定的測試需求。別擔心,除了通用模擬能力,Hypium測試框架還提供了特殊場景模擬能力,包括裝置互動模擬、裝置環境模擬、雲端互動模擬。
1、裝置互動模擬:構建應用與裝置之間資料互動模擬能力,主要模擬裝置物理器件資料與應用的互動,包括不限於:物理位置模擬、重力感測器、加速度感測器等多種感測器資料模擬。基於裝置互動模擬能力可以構建多種場景,例如:導航、重力感應、接近光等。
2、裝置環境模擬:構建裝置狀態的模擬能力,包括不限於:系統電量、訊號強度、媒體播放、資源佔用等,基於裝置環境模擬能力可以構造裝置的不同狀態,例如:低電量、弱訊號、後臺媒體播放等。
3、雲端互動模擬:構建雲端模擬能力,模擬雲端伺服器的返回值,將應用與雲端服務解耦。
專項測試執行能力,使能多維度測試
ArkTS應用除了基礎的測試場景外,還面臨很多特殊的測試場景,例如:如何測試應用介面的效能?介面的引數型別比較多,如何實現全量覆蓋?測試某項場景時,如何避免執行全部測試用例,只執行相應部分測試用例?
針對這些特殊場景,Hypium測試框架從測試執行粒度、執行方式、執行排程等多維度提供壓力、資料驅動、篩選能力等場景的測試執行能力,進一步提升ArkTS應用測試執行效率。
1、壓力測試
適用於介面壓力測試場景,使用者可以自定義測試用例的執行次數。執行測試aa test測試命令帶上壓力引數即可,例如:
aa test –p xxxx –n xxxxx –s stress 10
引數 |
取值 |
含義 |
-s stress |
正整數 |
測試用例執行次數 |
2、資料驅動測試
適用於介面引數型別比較多,無法透過測試用例直接覆蓋的場景。我們可以自定義配置引數快捷驅動測試用例的執行次數和每一次傳入的引數,使用時依賴data.json配置檔案,檔案內容如下:
配置引數說明:
3、測試用例篩選
Hypium支援根據用例屬性,篩選執行指定的測試用例,使用方式是先在測試用例上標記用例屬性後,再在測試應用的啟動shell命令後新增"-s ${Key} ${Value}"。
示例程式碼
示例命令
該命令的作用是:篩選測試應用中同時滿足a)用例級別是1 b)用例粒度是small c)用例測試型別是function 三個條件的用例執行。
4、測試套篩選
測試套與用例名稱使用“#”號連線,多個篩選規則使用“,”英文逗號分隔。
Key |
含義說明 |
Value取值範圍 |
class |
指定要執行的測試套&用例 |
${describeName}#${itName},${describeName} , 例如:-s class attributeTest#testAttributeIt |
notClass |
指定不執行的測試套&用例 |
${describeName}#${itName},${describeName} , 例如:-s notClass attributeTest#testAttributeIt |
示例命令
本期分享的自動化測試框架Hypium,你學會了嗎?快來上手試試吧!未來,我們還將繼續打磨演進Hypium測試能力,助力大家開發更卓越的應用產品,廣大開發者朋友敬請期待!
注:MVC結構即 Model 模型、View 檢視、Controller 控制器。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70009402/viewspace-2938147/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Web應用滲透測試框架ArachniWeb框架
- 關於Electron框架應用的安全測試框架
- C語言[工程專案應用]gtest測試框架編寫以及自定義測試框架C語言框架
- 上線影片推理服務 使AI應用更高效AI
- 構建高效的自動化測試框架框架
- 【轉】測試用例編寫(功能測試框架)框架
- Fuzzing測試中對於SPIKE框架的應用(一)框架
- 搭建通用 GUI 測試框架步驟,適用於 MFC/JAVA 應用程式GUI框架Java
- 如何測試 Flutter 應用? ー 單元測試Flutter
- Util應用框架快速入門(4) - 整合測試開發入門框架
- 軟體測試框架——自動化測試框架框架
- 6個建立Web應用程式的高效PHP框架WebPHP框架
- 【星雲測試】開發者測試-採用精準測試工具對Spring Boot應用進行測試Spring Boot
- 【星雲測試】開發者測試-採用精準測試工具對SpringBoot應用進行測試Spring Boot
- 效能測試應用領域
- 使用jest測試Koa應用
- 使用JMeter測試Web應用JMeterWeb
- 開發者測試-採用精準測試工具對Spring Boot應用進行測試Spring Boot
- Pytest單元測試框架——Pytest+Allure+Jenkins的應用框架Jenkins
- JWebUnit使用:jWebUnit是基於Java的Web應用程式的測試框架 .WebJava框架
- 消滅Bug!十款免費移動應用測試框架推薦框架
- 使用 RFT 設計 Web 2.0 應用的 GUI 自動化測試框架WebGUI框架
- 前端測試框架前端框架
- 測試框架Jest框架
- 移動應用的測試策略與測試架構架構
- ArkTS開發HarmonyOS應用目錄介紹
- 開發者測試(4)-採用精準測試工具對dubbo微服務應用進行測試微服務
- 【星雲測試】開發者測試(3)-採用精準測試工具對springcloud微服務應用進行穿透測試SpringGCCloud微服務穿透
- 靜態應用程式安全測試
- Java微服務應用測試,走起Java微服務
- Web應用程式完全測試指南Web
- 使用 mock 測試 python 應用MockPython
- Sikuli測試應用研究報告
- 《WEB應用測試》筆記(五)Web筆記
- 應用<測試專案>官網
- 全棧測試實戰:用Jest測試Vue+Koa全棧應用全棧Vue
- 移動測試基礎 Android 應用測試總結Android
- Android應用程式測試-Alltesting|澤眾雲測試Android