一篇帶你玩轉(zhuǎn)手機(jī)自動(dòng)化測試
大家好,我是皮皮。
前言
之前我們玩過一些手機(jī)自動(dòng)化軟件,比如Airtest,ADB,通過這些軟件我們可以和自己的手機(jī)進(jìn)行關(guān)聯(lián),并且使用程序來代替我們本人來操作手機(jī),今天我們要說的是另一款給力的自動(dòng)化APP,這里要介紹的并不是Windows平臺(tái)上的可執(zhí)行文件哦,而是Android平臺(tái)上的JavaScript IDE,更重要的一點(diǎn)就是這個(gè)工具是國人開發(fā)的,必須支持一個(gè)不是。而且AutoJs兼容性更好,傳統(tǒng)的按鍵精靈,腳本精靈,雖然上手快,門檻低,但是他們是以坐標(biāo)為基礎(chǔ),很容易出現(xiàn)分辨率的問題,而AutoJs則是以控件為基礎(chǔ),因而更強(qiáng)大,并且我們在玩自動(dòng)化時(shí)是不需要Root的;那么,廢話不多說,趕快讓我們一睹為快這款強(qiáng)大的IDE吧。
一、安裝AutoJs
為了運(yùn)行Autojs腳本,我們需要使用Android平臺(tái),這里小編選擇的是夜神模擬器,將我們下載好的AutoJs.apk安裝到夜神模擬器中,下載地址:
https://u062.com/file/7715018-454641893
然后我們開啟無障礙服務(wù),即可打開Autojs并正常運(yùn)行,如圖:
二、基本使用大全
要想進(jìn)行腳本的編寫,我們需要點(diǎn)擊藍(lán)色圓圈里的加號創(chuàng)建一個(gè)腳本文件,下面我們來創(chuàng)建一個(gè)簡單的腳本,如下:
1.選擇器
因?yàn)锳utoJs有著JavaScript的部分特性,因此他也有選擇器可供我們選擇元素,總共有四種,如下:
- ID 選擇器
- Text 選擇器
- ClassName 選擇器
- Desc 選擇器
2.打開應(yīng)用
在打開之前我們需要對Autojs進(jìn)行授權(quán),很簡單,如下:
- auto();//授權(quán)auto.js
然后我們就可以打開對應(yīng)應(yīng)用,比如我想打開瀏覽器,如下:
- launchApp('瀏覽器')#打開瀏覽器
如果我們想自定義打開的應(yīng)用了,通過輸入的方法,增加一個(gè)交互,可以這樣做,如下:
- var app=rawInput("","");
- launchApp(app);
我們還可以添加一個(gè)控制臺(tái),顯示我們操作的進(jìn)度,如下:
- auto();
- console.show() //顯示控制臺(tái)
- log('hello') //控制臺(tái)輸出
- console.log('開啟瀏覽器') //控制臺(tái)輸出
- sleep(1000)//休眠
- var app=rawInput("",""); //自定義輸入
- launchApp(app);//運(yùn)行App
我們還可以檢查是否有Root權(quán)限,如下:
- if(auto.waitFor()){
- toastLog('有權(quán)限')
- }
- else{
- toastLog('無權(quán)限')
- }
3.屏幕操作
- setScreenMetrics(1080,1920); #屏幕大小
- toast("歡迎大家來到我的世界,Helloworld ,520");#屏幕通知
- toastLog(‘hello’) #屏幕通知+控制臺(tái)日志
- images.requestScreenCapture() #向系統(tǒng)申請屏幕截圖權(quán)限
- images.captureScreen() #截圖
- swipe(100,200,130,320,230)#滑動(dòng)屏幕,只支持安卓7.0以上
- img=images.load('讀取本地或者網(wǎng)絡(luò)圖片')#讀取
- images.save('圖片來源','圖片名')#保存
- var c=findColor(img.'顏色十六進(jìn)制')#尋找對應(yīng)顏色對象
- c.x c.y #對應(yīng)顏色的橫縱坐標(biāo)
- images.findColorEquals(img,color[, x, y, width, height]) #區(qū)域找色
- images.findColorInRegion(img,color[, x, y, width, height])
- device.width #取屏幕寬度
- device.height #取屏幕高度
- toast('歡迎光臨')
- if(requestScreenCapture()){
- console.log('截圖成功')
- }
- else{
- console.log('截圖失敗')
- }
我們還可以保存網(wǎng)絡(luò)上的圖片到設(shè)備中,如:
- var pic=images.load('http://wnk5.fulitmm.cn/comm/2020053009318366378.jpg');
- images.save(pic,'/sdcard/mm.jpg')
另外我們還可以通過找色來定位目標(biāo),如圖:
可以看到橫縱標(biāo)125。
4.返回退出
- back() #返回
- exit() #退出
5.休眠
如果我們想讓程序等待一段時(shí)間,可以使用休眠功能,如下:
- sleep(3000);#休眠
6.文本操作
有時(shí)候我們進(jìn)入應(yīng)用需要進(jìn)行一些操作,這個(gè)時(shí)候我們可以通過找尋應(yīng)用中文本的位置來進(jìn)行精確操作,如下:
- text('請輸入網(wǎng)址')#找文本
7.Auto Js UI
這里要說的是,雖然我們之前的操作比較方便,但是如果你想把這些操作做成一個(gè)界面的話,就需要用到UI了,這樣就會(huì)更方便了,像一些自動(dòng)化工具,比如自動(dòng)電擊器就是這個(gè)原理了,我們來看一個(gè)最簡單的例子,如下:
- "ui";
- ui.layout(
- <vertical foreground="#BBFFFF" bg='#F5F5F5'> #垂直布局加前景背景色設(shè)置
- <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(){#元素點(diǎn)擊事件
- var n=ui.name.getText();
- toast(n)
- })
其實(shí)UI控件中的方法基本大部分和JavaScript的方法一樣,掌握了JavaScript你就可以非常輕松的使用UI控件了。
三、總結(jié)
Autojs主要就是用于我們的手機(jī)設(shè)備的腳本編寫,所以與ADB也會(huì)有很多相似之處,可以這么說,只要你掌握了ADB和JavaScript,掌握這就跟喝水那么簡單。
對了,還要跟大家補(bǔ)充一句,那就是Autojs的在線官方文檔地址:
https://hyb1996.github.io/AutoJs-Docs/#/
上面介紹的有很多方面,如果你不方便每次都聯(lián)網(wǎng)查詢的話,可以結(jié)合咱們前幾天講的整站爬取方案哦。