色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-04-08 14:49 ? 次閱讀

概述

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

本指南重點介紹自動化測試框架的主要功能,同時介紹編寫單元/UI自動化測試腳本的方法以及執行過程。

簡介

HarmonyOS自動化測試框架arkxtest,作為HarmonyOS工具集的重要組成部分,提供了HarmonyOS自動化腳本編寫和運行的基礎能力。編寫方面提供了一系列支持測試腳本編寫的API,包括了基礎流程API、斷言API以及UI操作相關的API,運行方面提供了識別測試腳本、調度執行測試腳本以及匯總測試腳本執行結果的能力。

實現原理

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

  • 單元測試框架
    單元測試框架是測試框架的基礎底座,提供了最基本的用例識別、調度、執行及結果匯總的能力。主要功能如下圖所示:
    image.png
    單元測試腳本的基礎運行流程如下圖所示,依賴aa test命令作為執行入口,該命令可具體參考。
    image.png
  • UI測試框架
    UI測試框架主要對外提供了[UiTest API]供開發人員在對應測試場景調用,而其腳本的運行基礎還是上面提到的單元測試框架。
    UI測試框架的主要功能如下圖所示:
    image.png

約束與限制

  • UI測試框架的能力在HarmonyOS 3.0 release版本之后方可使用,歷史版本不支持使用。
  • 單元測試框架的部分能力與其版本有關。

更多鴻蒙開發應用知識已更新[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]參考前往。

環境準備

[docs.qq.com/doc/DUmN4VVhBd3NxdExK]

搜狗高速瀏覽器截圖20240326151547.png

環境要求

或者添加mau123789是v喔記住添加

自動化腳本的編寫主要基于DevEco Studio,并建議使用3.1.0.400之后的版本進行腳本編寫。

腳本執行需要PC連接HarmonyOS設備,如JAD等。

搭建環境

DevEco Studio可參考其官網介紹進行下載,并進行相關的配置動作。

新建測試腳本

  1. 在DevEco Studio中新建應用開發工程,其中ohos目錄即為測試腳本所在的目錄。
  2. 在工程目錄下打開待測試模塊下的ets文件,將光標置于代碼中任意位置,單擊 右鍵 > Show Context Actions> Create Ohos Test或快捷鍵 Alt+enter> Create Ohos Test創建測試類。

編寫單元測試腳本

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

const delegator = abilityDelegatorRegistry.getAbilityDelegator()
export default function abilityTest() {
  describe('ActsAbilityTest', function () {
    it('testUiExample',0, async function (done) {
      console.info("uitest: TestUiExample begin");
      //start tested ability
      await delegator.executeShellCommand('aa start -b com.ohos.uitest -a MainAbility').then(result = >{
        console.info('Uitest, start ability finished:' + result)
      }).catch(err = > {
        console.info('Uitest, start ability failed: ' + err)
      })
      await sleep(1000);
      //check top display ability
      await delegator.getCurrentTopAbility().then((Ability)= >{
        console.info("get top ability");
        expect(Ability.context.abilityInfo.name).assertEqual('MainAbility');
      })
      done();
    })

    function sleep(time) {
      return new Promise((resolve) = > setTimeout(resolve, time));
    }
  })
}復制

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

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

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

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

編寫UI測試腳本

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

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

import {Driver,ON,Component,MatchPattern} from '@ohos.UiTest

然后是具體測試代碼編寫,場景較為簡單,就是在啟動的應用頁面上進行點擊操作,然后增加檢查點檢查用例。

export default function abilityTest() {
  describe('ActsAbilityTest', function () {
    it('testUiExample',0, async function (done) {
      console.info("uitest: TestUiExample begin");
      //start tested ability
      await delegator.executeShellCommand('aa start -b com.ohos.uitest -a MainAbility').then(result = >{
        console.info('Uitest, start ability finished:' + result)
      }).catch(err = > {
        console.info('Uitest, start ability failed: ' + err)
      })
      await sleep(1000);
      //check top display ability
      await delegator.getCurrentTopAbility().then((Ability)= >{
        console.info("get top ability");
        expect(Ability.context.abilityInfo.name).assertEqual('MainAbility');
      })
      //ui test code
      //init driver
      var driver = await Driver.create();
      await driver.delayMs(1000);
      //find button by text 'Next'
      var button = await driver.findComponent(ON.text('Next'));
      //click button
      await button.click();
      await driver.delayMs(1000);
      //check text
      await driver.assertComponentExist(ON.text('after click'));
      await driver.pressBack();
      done();
    })

    function sleep(time) {
      return new Promise((resolve) = > setTimeout(resolve, time));
    }
  })
}

說明

只支持應用內使用。暫不支持應用外的場景實現自動化,例如與權限彈窗和SystemUi上的控件進行交互。

執行測試腳本

執行測試腳本可以直接在DevEco Studio中通過點擊按鈕執行,當前支持以下執行方式:

1、測試包級別執行即執行測試包內的全部用例。

2、測試套級別執行即執行describe方法中定義的全部測試用例。

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

image.png

查看測試結果

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

image.png

常見問題

單元測試用例常見問題

1、用例中增加的打印日志在用例結果之后才打印

問題描述

用例中增加的日志打印信息,沒有在用例執行過程中出現,而是在用例執行結束之后才出現。

可能原因

此類情況只會存在于用例中有調用異步接口的情況,原則上用例中所有的日志信息均在用例執行結束之前打印。

解決方法

當被調用的異步接口多于一個時,建議將接口調用封裝成Promise方式調用。

2、執行用例時報error:fail to start ability

問題描述

執行測試用例時候,用例執行失敗,控制臺返回錯誤:fail to start ability。

可能原因

測試包打包過程中出現問題,未將測試框架依賴文件打包在測試包中。

解決方法

檢查測試包中是否包含TestRunner.abc文件,如沒有則重新編譯打包后再次執行測試。

3、執行用例時報用例超時錯誤

問題描述

用例執行結束,控制臺提示execute time XXms錯誤,即用例執行超時

可能原因

1.用例執行異步接口,但執行過程中沒有執行到done函數,導致用例執行一直沒有結束,直到超時結束。

2.用例調用函數耗時過長,超過用例執行設置的超時時間。

解決方法

1.檢查用例代碼邏輯,確保即使斷言失敗場景認可走到done函數,保證用例執行結束。

2.可在IDE中Run/Debug Configurations中修改用例執行超時配置參數,避免用例執行超時。

UI測試用例常見問題

1、失敗日志有“Get windows failed/GetRootByWindow failed”錯誤信息

問題描述

UI測試用例執行失敗,查看hilog日志發現日志中有“Get windows failed/GetRootByWindow failed”錯誤信息。

可能原因

系統ArkUI開關未開啟,導致被測試界面控件樹信息未生成。

解決方法

執行如下命令,并重啟設備再次執行用例。

hdc shell param set persist.ace.testmode.enabled

2、失敗日志有“uitest-api dose not allow calling concurrently”錯誤信息

問題描述

UI測試用例執行失敗,查看hilog日志發現日志中有“uitest-api dose not allow calling concurrently”錯誤信息。

可能原因

1.用例中UI測試框架提供異步接口沒有增加await語法糖調用。

2.多進程執行UI測試用例,導致拉起多個UITest進程,框架不支持多進程調用。

解決方法

1.檢查用例實現,異步接口增加await語法糖調用。

2.避免多進程執行UI測試用例。

3、失敗日志有“dose not exist on current UI! Check if the UI has changed after you got the widget object”錯誤信息

問題描述

UI測試用例執行失敗,查看hilog日志發現日志中有“dose not exist on current UI! Check if the UI has changed after you got the widget object”錯誤信息。

可能原因

在用例中代碼查找到目標控件后,設備界面發生了變化,導致查找到的控件丟失,無法進行下一步的模擬操作。

解決方法

重新執行UI測試用例。

審核編輯 黃宇

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

    關注

    0

    文章

    208

    瀏覽量

    26905
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17475
  • HarmonyOS
    +關注

    關注

    79

    文章

    1973

    瀏覽量

    30143
  • 鴻蒙OS
    +關注

    關注

    0

    文章

    188

    瀏覽量

    4382
收藏 人收藏

    評論

    相關推薦

    OPhone自動化測試技術概述

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

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

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

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

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

    HarmonyOS自動化測試框架—Hypium

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

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

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

    常用軟件測試自動化框架

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

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

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

    基于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 ?4664次閱讀

    Python接口測試框架實戰自動化進階視頻教程免費下載

    本文檔的主要內容詳細介紹的是Python接口測試框架實戰自動化進階視頻教程免費下載主要包括了:第1章 接口測試基礎回顧,第2章 fiddl
    發表于 08-28 15:32 ?75次下載
    Python接口<b class='flag-5'>測試</b><b class='flag-5'>框架</b><b class='flag-5'>實戰</b>與<b class='flag-5'>自動化</b>進階視頻教程免費下載

    什么是自動化測試框架

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

    HarmonyOS測試技術與實戰-音視頻體驗精準自動化測試技術

    HDC 2021華為開發者大會 HarmonyOS測試技術與實戰-音視頻體驗精準自動化測試技術
    的頭像 發表于 10-23 15:51 ?1483次閱讀
    HarmonyOS<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>技術

    自動化測試框架unittes詳解

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

    什么是自動化測試框架

    自動化測試框架,即是應用于自動化測試所用的框架。按照框架
    發表于 04-18 14:44 ?893次閱讀

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

    OpenHarmony 自動化測試框架是 OpenHarmony 提供的支持 JS/TS 語言的單元及 UI 測試框架,支持
    的頭像 發表于 05-15 09:35 ?1379次閱讀
    OpenHarmony<b class='flag-5'>自動化</b><b class='flag-5'>測試</b><b class='flag-5'>框架開發指南</b>
    主站蜘蛛池模板: 国产精品网红女主播久久久| 中国jjzz| 视频一区二区中文字幕| 免费完整版观看| 老湿机一区午夜精品免费福利| 国产骚妇BB网| 国产三区在线成人AV| 国产精品无码亚洲网| 国产精品久久久久精品A片软件| 成人国产在线不卡视频| 扒开腿狂躁女人GIF动态图 | 年轻的搜子8中字在线观看| 久久婷婷色香五月综合激情| 久久机热视频免费| 久久精品天天中文字幕| 久青草国产观看在线视频| 久久久视频2019午夜福利| 毛片在线播放网址| 嫩小性性性xxxxbbbb| 青青草原网址| 日本韩国欧美一区| 视频网站入口在线看| 亚洲成年人影院| 亚洲精品视频在线免费| 亚洲中文日韩日本在线视频| 在线观看视频中文字幕| 99福利在线观看| 白白操在线视频| 国产-第1页-浮力影院| 国产精品爽黄69天堂A片| 茎身铃口调教| 伦理片在线线249| 青青草原在线新免费| 少妇伦子伦精品无码| 亚洲精品久久区二区三区蜜桃臀| 妖精视频在线观看高清| 99国产在线视频有精品视频| 夫妻性姿势真人做视频| 好吊射视频988gaocom| 麻豆AV久久无码精品九九| 秋霞影院福利电影|