基于 Autojs 的 APP、小程序自動(dòng)化測試 SDK

autojs sdk

基于 Autojs 的 APP、小程序自動(dòng)化測試 SDK,支持:啟動(dòng)應(yīng)用、停留等待、判斷存在、文本點(diǎn)擊、顏色點(diǎn)擊、循環(huán)點(diǎn)擊、坐標(biāo)拾取、語音播報(bào)、通知欄提示、音量調(diào)節(jié)、震動(dòng)等數(shù)十項(xiàng)能力。

項(xiàng)目主頁

https://github.com/kangour/autojs_sdk

autojs sdk 在 Auto.js 的基礎(chǔ)上,通過大量接口優(yōu)化提升了模塊的通用性,并進(jìn)行豐富的功能擴(kuò)展。

能干啥

使用 autojs sdk,一行代碼就能完成 語音播報(bào)/任意類型文本點(diǎn)擊/循環(huán)點(diǎn)擊/坐標(biāo)拾取/自動(dòng)權(quán)限控制/自動(dòng)類型識(shí)別/自動(dòng)按鍵監(jiān)聽/通知欄實(shí)時(shí)提示/自動(dòng)移除最近任務(wù)/自動(dòng)解鎖 等數(shù)十項(xiàng)能力,更多能力陸續(xù)開放中。

開放的方法

包括但不限于以下方法,更多功能盡情期待:

    start_app: 傳入應(yīng)用名稱,啟動(dòng)應(yīng)用。
    wait_for: 等待文本出現(xiàn)
    has_text: 當(dāng)前屏幕是否存在文本
    click: 點(diǎn)擊文本或坐標(biāo)
    click_item: 點(diǎn)擊文本
    click_color: 點(diǎn)擊顏色
    click_item_each: 點(diǎn)擊當(dāng)前屏幕的所有傳入文本
    click_color_each: 點(diǎn)擊當(dāng)前屏幕的所有傳入顏色
    wait_befor_click: 某文本出現(xiàn)之前的點(diǎn)擊
    get_coord_by_color: 通過顏色獲取坐標(biāo)
    get_coord_by_text: 獲取文本坐標(biāo)
    set_volume: 設(shè)置設(shè)備音量
    log/warn/error: 設(shè)置調(diào)試日志

簡單上手

編寫基于本 sdk 的應(yīng)用分為三個(gè)步驟

  1. 將 autojs_sdk/lib.js 導(dǎo)入運(yùn)行環(huán)境
  2. 在新創(chuàng)建的應(yīng)用中用 require('lib') 引入 auto_sdk
  3. 編寫主函數(shù) main() 并傳入 lib.start_app()

這里展示僅用 5 行代碼開發(fā)一個(gè)基于網(wǎng)易云音樂的自動(dòng)播放測試應(yīng)用,實(shí)現(xiàn)的功能有 啟動(dòng)網(wǎng)易云音樂后的 跳過開屏廣告/播放每日推薦歌曲/調(diào)節(jié)音量

// 導(dǎo)入:從 lib.js 導(dǎo)入需要的方法
let { start_app, click_item, set_volume, wait_befor_click } = require('lib.js');

// 編寫主函數(shù):程序啟動(dòng)后執(zhí)行的邏輯代碼。
function main() {
    wait_befor_click('發(fā)現(xiàn)', '跳過')
    click_item('發(fā)現(xiàn)')
    click_item('每日推薦')
    click_item('播放全部')
    set_volume(30)
}

// 啟動(dòng)應(yīng)用:傳入?yún)?shù)依次為:主函數(shù),要啟動(dòng)的 App 名稱,當(dāng)前應(yīng)用描述,是否語音播報(bào)執(zhí)行狀態(tài)。
start_app(main, '網(wǎng)易云音樂', '播放日推', true)

高頻函數(shù)介紹

入口函數(shù)

start_app(callback, op_app, this_app, use_tts)

程序入口函數(shù),自動(dòng)完成解鎖、啟動(dòng) App、權(quán)限控制、按鍵監(jiān)聽、通知欄提示等操作。

  • callback:軟件啟動(dòng)后執(zhí)行的函數(shù),如 main
  • operation_app:需要啟動(dòng)的軟件,如 網(wǎng)易云音樂
  • this_app:當(dāng)前程序的描述,如 播放每日推薦
  • use_tts:執(zhí)行完畢后是否使用語音提示(默認(rèn)不啟用)

文本點(diǎn)擊

click_item(_text, tip_type)

自動(dòng)識(shí)別文本類型,并點(diǎn)擊文本。

  • _text: 待點(diǎn)擊的文本
  • tip_type:提示類型,如果傳入 no_tip,則不會(huì)在文字尋找失敗后給出提示彈窗(默認(rèn)啟用)

顏色點(diǎn)擊

click_color(_color, x, y, w, h)

在指定的區(qū)域點(diǎn)擊傳入的顏色

  • _color:待點(diǎn)擊的顏色
  • x:區(qū)域左上角的 x 坐標(biāo)
  • y:區(qū)域左上角的 y 坐標(biāo)
  • w:區(qū)域?qū)挾?/li>
  • h:區(qū)域高度

等待前點(diǎn)擊

wait_befor_click(target, source)

在 target 出現(xiàn)前,如果出現(xiàn) source,就點(diǎn)擊。

例如進(jìn)入有開屏廣告的應(yīng)用前,點(diǎn)擊 “跳過廣告” 文本,有效節(jié)約啟動(dòng)時(shí)間:

wait_befor_click('首頁', '跳過')

開發(fā)者的話

還有很多函數(shù)等待你去發(fā)掘,比如日期時(shí)間處理,日志,坐標(biāo)處理等能力,均可參考 autojs_sdk/lib.js 的函數(shù)注釋,同時(shí)也希望你能和我一起來完善它,一起構(gòu)建一個(gè)易用的自動(dòng)化測試工具;你可以將自己基于 autojs_sdk 編寫的應(yīng)用提交到 example 目錄下。

項(xiàng)目交流群

autojs_sdk 群:984025847

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,132評(píng)論 1 32
  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個(gè)線程,因...
    小菜c閱讀 6,497評(píng)論 0 17
  • 今晚突然發(fā)現(xiàn)嗶哩嗶哩網(wǎng)頁底部 fix 了下載 App 的引導(dǎo),這設(shè)計(jì)本身并沒有什么特別的,也比較常見;但這個(gè)改動(dòng)發(fā)...
    韓一尾閱讀 1,470評(píng)論 3 9
  • 《尋夢環(huán)游記》里有句話,“死亡不是生命的終點(diǎn),遺忘才是” 讓人傷感的一句話。 死亡是物理層面的消亡,而遺忘是精神層...
    踐行致知閱讀 12,224評(píng)論 0 0
  • 設(shè)計(jì)模式相關(guān)電子書,鏈接??????? 什么是好的軟件設(shè)計(jì)呢?軟件設(shè)計(jì)的金科玉律:復(fù)用 面向?qū)ο蟮脑O(shè)計(jì)到底有沒有什...
    蕭瀟公舉閱讀 502評(píng)論 0 0