玩轉手機自動化測試


大家好,我是皮皮。

前言

之前我們玩過一些手機自動化軟件,比如Airtest,ADB,通過這些軟件我們可以和自己的手機進行關聯,並且使用程序來代替我們本人來操作手機,今天我們要說的是另一款給力的自動化APP,這里要介紹的並不是Windows平台上的可執行文件哦,而是Android平台上的JavaScript IDE,更重要的一點就是這個工具是國人開發的,必須支持一個不是。而且AutoJs兼容性更好,傳統的按鍵精靈,腳本精靈,雖然上手快,門檻低,但是他們是以坐標為基礎,很容易出現分辨率的問題,而AutoJs則是以控件為基礎,因而更強大,並且我們在玩自動化時是不需要Root的;那么,廢話不多說,趕快讓我們一睹為快這款強大的IDE吧。

一、安裝AutoJs

為了運行Autojs腳本,我們需要使用Android平台,這里小編選擇的是夜神模擬器,將我們下載好的AutoJs.apk安裝到夜神模擬器中,下載地址:

https://u062.com/file/7715018-454641893

然后我們開啟無障礙服務,即可打開Autojs並正常運行,如圖:

二、基本使用大全

要想進行腳本的編寫,我們需要點擊藍色圓圈里的加號創建一個腳本文件,下面我們來創建一個簡單的腳本,如下:

1.選擇器

因為AutoJs有着JavaScript的部分特性,因此他也有選擇器可供我們選擇元素,總共有四種,如下:

ID 選擇器
Text 選擇器
ClassName 選擇器
Desc 選擇器

2.打開應用

在打開之前我們需要對Autojs進行授權,很簡單,如下:

auto();//授權auto.js

然后我們就可以打開對應應用,比如我想打開瀏覽器,如下:

launchApp('瀏覽器')#打開瀏覽器

如果我們想自定義打開的應用了,通過輸入的方法,增加一個交互,可以這樣做,如下:

var app=rawInput("","");
launchApp(app);

我們還可以添加一個控制台,顯示我們操作的進度,如下:

auto();
console.show() //顯示控制台
log('hello') //控制台輸出
console.log('開啟瀏覽器') //控制台輸出
sleep(1000)//休眠
var app=rawInput("",""); //自定義輸入
launchApp(app);//運行App

我們還可以檢查是否有Root權限,如下:

if(auto.waitFor()){
    toastLog('有權限')
    }
  else{
   toastLog('無權限')
      }

3.屏幕操作

setScreenMetrics(1080,1920); #屏幕大小
toast("歡迎大家來到我的世界,Helloworld ,520");#屏幕通知
toastLog(‘hello’) #屏幕通知+控制台日志
images.requestScreenCapture() #向系統申請屏幕截圖權限
images.captureScreen() #截圖
swipe(100,200,130,320,230)#滑動屏幕,只支持安卓7.0以上
img=images.load('讀取本地或者網絡圖片')#讀取
images.save('圖片來源','圖片名')#保存
var c=findColor(img.'顏色十六進制')#尋找對應顏色對象
c.x c.y #對應顏色的橫縱坐標
images.findColorEquals(img,color[, x, y, width, height]) #區域找色
images.findColorInRegion(img,color[, x, y, width, height])
device.width #取屏幕寬度
device.height #取屏幕高度
toast('歡迎光臨')
if(requestScreenCapture()){
    console.log('截圖成功')
    }
  else{
      console.log('截圖失敗')
      }

我們還可以保存網絡上的圖片到設備中,如:

var pic=images.load('http://wnk5.fulitmm.cn/comm/2020053009318366378.jpg');
images.save(pic,'/sdcard/mm.jpg')

另外我們還可以通過找色來定位目標,如圖:

可以看到橫縱標125。

4.返回退出

back() #返回
exit() #退出

5.休眠

如果我們想讓程序等待一段時間,可以使用休眠功能,如下:

sleep(3000);#休眠

6.文本操作

有時候我們進入應用需要進行一些操作,這個時候我們可以通過找尋應用中文本的位置來進行精確操作,如下:

text('請輸入網址')#找文本

7.Auto Js UI

這里要說的是,雖然我們之前的操作比較方便,但是如果你想把這些操作做成一個界面的話,就需要用到UI了,這樣就會更方便了,像一些自動化工具,比如自動電擊器就是這個原理了,我們來看一個最簡單的例子,如下:

"ui";
ui.layout(
    <vertical foreground="#BBFFFF" bg='#F5F5F5'> #垂直布局加前景背景色設置
        <input id="name" text="請輸入名字"/>#輸入框
        <button id="one" text="按鈕1" alpha="0.6" w="200dp" textSize="10sp"/>#按鈕
        <button class="two" w="100dp" text="按鈕2"/>
    <horizontal>#水平布局
        <button w="auto" alpha="0.8" text="按鈕3"/>
        <button w="*" text="按鈕4"/>
    </horizontal>
    </vertical>
   
    
);
ui.one.click(function(){#元素點擊事件
    var n=ui.name.getText();
    toast(n)
    })

其實UI控件中的方法基本大部分和JavaScript的方法一樣,掌握了JavaScript你就可以非常輕松的使用UI控件了。

三、總結

Autojs主要就是用於我們的手機設備的腳本編寫,所以與ADB也會有很多相似之處,可以這么說,只要你掌握了ADB和JavaScript,掌握這就跟喝水那么簡單。

對了,還要跟大家補充一句,那就是Autojs的在線官方文檔地址:

https://hyb1996.github.io/AutoJs-Docs/#/

上面介紹的有很多方面,如果你不方便每次都聯網查詢的話,可以結合咱們前幾天講的整站爬取方案哦。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM