吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

OpenHarmony自動化測試框架開發指南

OpenHarmony技術社區 ? 來源:OST開源開發者 ? 2023-05-15 09:35 ? 次閱讀

OpenHarmony 自動化測試框架是 OpenHarmony 提供的支持 JS/TS 語言的單元及 UI 測試框架,支持開發者針對應用接口或系統接口進行單元測試,并且可基于 UI 操作進行 UI 自動化腳本的編寫。

34d9b6f2-f29d-11ed-90ce-dac502259ad0.png

OpenHarmony 自動化測試框架重要分為兩大部分:單元測試框架和 UI 測試框架。

單元測試框架是測試框架的基礎底座,提供了最基本的用例識別、調度、執行及結果匯總的能力。

UI 測試框架主要調用提供的 UiTest API 對不同測試場景進行測試,而其腳本的運行基礎還是單元測試框架。

https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-uitest.md

從代碼的角度體現為,每個 OpenHarmony 工程在新建時都會提供一個 ohosTest 模塊,包含基礎的單元測試運行腳本。

如下圖所示:

352092b6-f29d-11ed-90ce-dac502259ad0.png

其中各文件間的大致關系如下圖所示:

3534f5a8-f29d-11ed-90ce-dac502259ad0.png

單元測試腳本的基礎運行流程如下圖所示,依賴 aa test 命令作為執行入口(可結合上述代碼中的關系圖進行對比)。

3577563c-f29d-11ed-90ce-dac502259ad0.png

開發步驟

①新建測試腳本

在工程目錄下打開待測試模塊下的 ets 文件,將光標置于代碼中任意位置,單擊右鍵→Show Context Actions→Create Ohos Test 或快捷鍵Alt+enter→ Create Ohos Test 創建測試類。

如下圖所示:

35903850-f29d-11ed-90ce-dac502259ad0.png

35be1720-f29d-11ed-90ce-dac502259ad0.png

完成后自動生成一個測試腳本:

35e1e470-f29d-11ed-90ce-dac502259ad0.png

編寫單元測試腳本

代碼如下:

import{describe,beforeAll,beforeEach,afterEach,afterAll,it,expect}from'@ohos/hypium'
importabilityDelegatorRegistryfrom'@ohos.application.abilityDelegatorRegistry'

constdelegator=abilityDelegatorRegistry.getAbilityDelegator()
exportdefaultfunctionabilityTest(){
describe('ActsAbilityTest',function(){
it('testUiExample',0,asyncfunction(done){
console.info("uitest:TestUiExamplebegin");
//starttestedability
awaitdelegator.executeShellCommand('aastart-bcom.ohos.uitest-aMainAbility').then(result=>{
console.info('Uitest,startabilityfinished:'+result)
}).catch(err=>{
console.info('Uitest,startabilityfailed:'+err)
})
awaitsleep(1000);
//checktopdisplayability
awaitdelegator.getCurrentTopAbility().then((Ability)=>{
console.info("gettopability");
expect(Ability.context.abilityInfo.name).assertEqual('MainAbility');
})
done();
})

functionsleep(time){
returnnewPromise((resolve)=>setTimeout(resolve,time));
}
})
}

單元測試腳本需要包含如下基本元素:

依賴導包,以便使用依賴的測試接口。

測試代碼編寫,主要編寫測試代碼的相關邏輯,如接口調用等。

斷言接口調用,設置測試代碼中的檢查點,如無檢查點,則不可認為一個完整的測試腳本。

編寫UI 測試腳本

UI 測試腳本是在單元測試框架的基礎上編寫,主要就是增加了 UI 測試框架提供的接口調用,實現對應的測試邏輯。

下面的示例代碼是在上面的測試腳本基礎上增量編寫,首先需要增加依賴導包,如下示例代碼所示:

import{Driver,ON,Component,MatchPattern}from'@ohos.uitest'
然后是具體測試代碼編寫,場景較為簡單,就是在啟動的應用頁面上進行點擊操作,然后增加檢查點檢查用例。
exportdefaultfunctionabilityTest(){
describe('ActsAbilityTest',function(){
it('testUiExample',0,asyncfunction(done){
console.info("uitest:TestUiExamplebegin");
//starttestedability
awaitdelegator.executeShellCommand('aastart-bcom.ohos.uitest-aMainAbility').then(result=>{
console.info('Uitest,startabilityfinished:'+result)
}).catch(err=>{
console.info('Uitest,startabilityfailed:'+err)
})
awaitsleep(1000);
//checktopdisplayability
awaitdelegator.getCurrentTopAbility().then((Ability)=>{
console.info("gettopability");
expect(Ability.context.abilityInfo.name).assertEqual('MainAbility');
})
//uitestcode
//initdriver
vardriver=awaitDriver.create();
awaitdriver.delayMs(1000);
//findbuttonbytext'Next'
varbutton=awaitdriver.findComponent(ON.text('Next'));
//clickbutton
awaitbutton.click();
awaitdriver.delayMs(1000);
//checktext
awaitdriver.assertComponentExist(ON.text('afterclick'));
awaitdriver.pressBack();
done();
})

functionsleep(time){
returnnewPromise((resolve)=>setTimeout(resolve,time));
}
})
}

執行測試腳本

執行測試腳本可以直接在 DevEco Studio 中通過點擊按鈕執行,當前支持以下執行方式: ①測試包級別執行即執行測試包內的全部用例。 ②測試套級別執行即執行 describe 方法中定義的全部測試用例。

③測試方法級別執行即執行指定 it 方法也就是單條測試用例。

360e922c-f29d-11ed-90ce-dac502259ad0.png

其中測試包內的全部測試用例運行任務可按如下步驟創建: 36584124-f29d-11ed-90ce-dac502259ad0.png367ab18c-f29d-11ed-90ce-dac502259ad0.png

36a5fd4c-f29d-11ed-90ce-dac502259ad0.png

查看測試結果

測試執行完畢后可直接在 DevEco Studio 中查看測試結果,如下圖示例所示:

36bdfd52-f29d-11ed-90ce-dac502259ad0.png

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2733

    瀏覽量

    47744
  • 自動化測試
    +關注

    關注

    0

    文章

    214

    瀏覽量

    26966
  • 接口
    +關注

    關注

    33

    文章

    8691

    瀏覽量

    151910
  • OpenHarmony
    +關注

    關注

    25

    文章

    3744

    瀏覽量

    16575

原文標題:OpenHarmony自動化測試框架開發指南

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    鴻蒙OS開發實戰:【自動化測試框架】使用指南

    為支撐HarmonyOS操作系統的自動化測試活動開展,我們提供了支持JS/TS語言的單元及UI測試框架,支持開發者針對應用接口進行單元
    的頭像 發表于 04-08 14:49 ?1540次閱讀
    鴻蒙OS<b class='flag-5'>開發</b>實戰:【<b class='flag-5'>自動化</b><b class='flag-5'>測試</b><b class='flag-5'>框架</b>】使用<b class='flag-5'>指南</b>

    OPhone自動化測試技術概述

    上可采用的幾種自動化測試技術進行介紹,并對每種技術的優缺點做簡要的總結。OPhone臺除了為應用程序開發提供豐富的API外,也為開展自動化測試
    發表于 05-06 08:58

    基于LAN的自動化測試系統開放指南

    自動化測試開發指南
    發表于 09-02 12:34

    自動化測試框架思想和構建

    自動化測試一般是指軟件測試自動化,軟件測試就是在預設條件下運行系統或應用程序,評估運行結果,預先條件應包括正常條件和異常條件。本文介紹的是
    發表于 07-18 06:52

    HarmonyOS自動化測試框架—Hypium

    ??,點擊鏈接查看更多技術內容。 應用開發過程中,要確保應用的功能和界面能滿足預期,往往需要通過測試來驗證。為此,我們研發了一套新的自動化測試框架
    發表于 08-10 17:13

    OpenHarmony AI框架開發指

    一、概述 1、功能簡介 AI業務子系統是OpenHarmony提供原生的分布式AI能力的子系統。AI業務子系統提供了統一的AI引擎框架,實現算法能力快速插件集成。 AI引擎框架主要
    發表于 09-19 18:54

    HamronyOS自動化測試框架使用指南

    概述 為支撐 HarmonyOS 操作系統的自動化測試活動開展,我們提供了支持 JS/TS 語言的單元及 UI 測試框架,支持開發者針對應用
    發表于 12-19 10:26

    常用軟件測試自動化框架

    自動化測試框架無疑是企業實施自動化測試的一個必然的發展方向,它對于產生成功的測試
    發表于 04-21 11:39 ?5090次閱讀

    全面提升自動化測試,NI TestStand 2012新模塊框架

    NI TestStand 2012采用全新的模塊框架,能夠簡化自動化測試開發和報告生成。
    發表于 11-06 17:42 ?1791次閱讀

    基于Web的自動化測試框架的研究

    根據web系統測試的特點,為提高軟件測試自動化腳本的可重用性,結合在實際項目中軟件自動化測試的實踐,提出基于Web的
    發表于 11-07 15:58 ?0次下載
    基于Web的<b class='flag-5'>自動化</b><b class='flag-5'>測試</b><b class='flag-5'>框架</b>的研究

    Python自動化測試框架有哪些?

    開發者萬分高興的是,開發自己的測試框架的日子終于結束了。以前,開發團隊接手一個項目并開始開發
    的頭像 發表于 07-28 09:06 ?4706次閱讀

    什么是自動化測試框架

    這些優勢可以是不同的形式,如易于編寫腳本、可伸縮性、模塊、可理解性、過程定義、可重用性、成本、維護等。因此,為了能夠獲得這些好處,建議開發人員使用一個或多個自動化測試
    的頭像 發表于 11-03 10:33 ?4408次閱讀

    JavaUI框架新增組件開發指南

    Java UI框架是HarmonyOS應用開發中諸多開發者需要關注的重要內容。近期,文檔君結合各位開發者反饋的聲音和改進建議,對官網文檔的Java UI
    的頭像 發表于 09-28 10:04 ?2391次閱讀
    JavaUI<b class='flag-5'>框架</b>新增組件<b class='flag-5'>開發指南</b>

    自動化測試框架unittes詳解

    測試框架,不妨“軟為硬用”。這里就基于python的自動化測試框架unittest來實現一個簡單的自動
    的頭像 發表于 05-20 14:47 ?2984次閱讀

    什么是自動化測試框架

    自動化測試框架,即是應用于自動化測試所用的框架。按照框架
    發表于 04-18 14:44 ?953次閱讀
    武威市| 百家乐类游戏平台| 百家乐缩水软件| 百家乐官网赌法| 蓝盾百家乐平台| 百家乐官网园小区户型图| 上市百家乐.评论| 百家乐官网下注稳赢法| 百家乐筹码套装| 伯爵百家乐官网娱乐城| 百家乐娱乐网真钱游戏| 百家乐官网制胜方法| 百家乐玄机| 博彩百家乐官网龙虎| 百家乐手机壳| 百家乐官网牌桌订做| 大发888娱乐游戏下载| 赌百家乐官网的玩法技巧和规则 | 闲和庄百家乐娱乐| 网上百家乐官网真的假的| 金都百家乐的玩法技巧和规则| 百家乐官网德州扑克轮盘| 威尼斯人娱乐诚| 百家乐官网园云鼎赌场娱乐网规则| 余杭棋牌世界| 百家乐好多假网站| 百家乐官网资金注码| 百家乐五湖四海赌场娱乐网规则| 澳门百家乐官网战法| 大发888游戏平台hgx2dafa888gw| 环球百家乐官网娱乐城| 豪博娱乐城| 百家乐赌博技巧论坛| 百家乐官网21点桌| 精英娱乐城开户| 澳门百家乐路子分析| 太阳城百家乐官网如何看路 | 百家乐旺门打法| 百家乐官网赌场赌场平台| 六合彩报码| 百家乐怎么发牌|