1. UI Automator Viewer:在Andriod_SDK安裝路徑下,直接點uiautomatorviewer.bat便可,能夠連真機和模擬器,獲取手機上各個元素的屬性。node
2. ADB: Android Debug Bridge 調試橋,是一個通用命令行工具,容許你與模擬器實例或鏈接的Android設備進行通訊,默認端口:5037python
--adb connect 127.0.0.1:62001 #鏈接模擬器,第一個端口是62001,第二個是62025,第三個是62025+1,以此類推。linux
--adb devices #查看設備android
--adb shell #進入linux系統的字符交互界面web
--adb -s 127.0.0.1:62001 shell #若是開了多臺模擬器,須要用這種方式shell
--exit #退出npm
--adb install #默認安裝瀏覽器
--adb install | -r <apkName> #-r 覆蓋安裝,app
--adb -s 127.0.0.1:62001 install....#-s 指定 設備安裝工具
--adb shell cd /data/app/ ls #查詢安裝的軟件
--adb uninstall <軟件名> #默認系統會在軟件名後加-1,uninstall 的時候不要加-1才能夠uninstall成功
--adb shell pm list package | grep "wadoujia" #查看設備上面安裝的應用包名
--adb push c:\test.txt /sdcard # copy 文件到模擬器手機
--adb pull /sdcard/server.log e:\dan\ #從手機copy文件到電腦
--adb shell screencap /sdcard/screen.png #最好用.png,jpg可能文件會損壞
--adb kill-server #關閉adb服務
--adb start-server #開戶adb 服務
--netstat -ano | findstr "5037" #若是5037端口被佔用,能夠用這個命令查看PID,而後用下面的命令殺掉便可
--taskkill -f -pid xxx
3. Package & Activity:
怎樣獲取package & activity?
a. 啓動一個程序後,打開UI Automator Viewer,點device screenshot button便可得到程序的各類屬性,包括package名
b. Activity,是全部程序的根本,全部程序的流程都運行在activity之中,activity能夠算是開發者遇到的最頻繁,也是android當中最基本的模塊之一, 在android的程序中,activity通常表明手機屏幕的上屏,若是把手機比做一個瀏覽器,那麼activity就至關於一個網頁,在activity當中能夠添加一些button,checkbox等控件,能夠看到activity概念和網頁的概念至關相似。
通常一個android應用是由多個activity組成的,這多個activity之間能夠進行相互跳轉,例如,按下一個button 按鈕後,可能會跳轉到其餘的activity,與網頁跳轉稍微有一點不同的是activity之間的跳轉有可能返回值.
activity的生命週期:即產生,運行, 銷燬,,可是這其中會調用許多方法 onCreate(建立),onStart(激活), onResume(恢復),onPause(暫停), onStop(中止), onDestroy(銷燬), onRestart(重啓)
--aapt (Android Asset Packaging Tool)
--aapt dump badging xxxx.apk | find "launchable-activity"
Activity頁面佈局元素:
FrameLayout:
LinearLayout:
RelativeLayout:
AbsoluteLayout:
TableLayout:
TextView:
ImageView:
4. Monkey:程序是Android系統自帶的,其啓動腳本們於Android系統 /system/bin目錄 的Monkey文件,其jar包位於Android系統的/system/framework, 用戶主要經過 adb命令來啓動Monkey的,Monkey在運行時,會根據命令行參數的配置,生成僞隨機的事件流,並在Android設備上執行對應的測試事件。同時,Monkey還會對測試系統進行監測,錄出現如下三種狀況時會進行特殊處理:
a.如限定了Monkey運行在特定包上,當監測到試圖轉到其餘包的操做,將對其進行阻止。
b.如應用程序崩潰或接收到任何失控異常,Monkey將記錄對應的錯誤日誌,並根據命令行參數判斷是中止運行仍是繼續運行。
c.若是應用程序發生了程序無響應的錯誤,Monkey將記錄對應的錯誤日誌,並根據命令行參數判斷是中止仍是繼續運行。
d.按照選定的不一樣級別的反饋信息,在Monkey中還能夠看到其執行過程 報告和生成的事件。
Monkey的啓動步驟:
1.鏈接移動設備
2.鏈接成功後輸入命令:adb shell
3. 進入/system/bin: cd /system/bin/
4. 執行monkey: monkey [options] <event-count>, e.g.: monkey 2000
強制關閉monkey:
5. Monkey 事件:
6. Monkey參數:
a.常規類參數:包括幫助參數 monkey -h 和 日誌信息參數 monkey -v -v -v 200 # 一個v是0級,兩個v是1級,三個v是2級, 最詳細
b.事件類參數:是對隨機事件進行調控,從而使其遵守設定運行,如設置各類事件的百分比,設置事件生成的使用的種子值等,頻率參數主要限制事件執行的時間間隔。
--monkey -f /mnt/sdcard/test1 #執行指定腳本
--monkey -s 8888 200 # -s 能夠重複執行以前的僞隨機操做, 自己每次執行僞隨機事件操做也會默認生成一個seed種,也能夠本身設定
--monkey --throttle 3000 5 #設置間隔,若是你但願在每個指令之間加上固定的間隔時間,能夠用--throttle,後面接時間,單位爲ms
--monkey -v -v --pct-touch 30 200 # 調整觸摸事件百分比, 能夠經過 --pct-touch參數,後面加百分比
--monkey -v -v --pct-motion 40 --pct-touch 20 200 #調整手勢事件百分比用--pct-motion,後面加百分比
--monkey --pct-appswitch #調整應用啓動事件的百分比, 用--pct-appswtich ,後面加百分比
--monkey --pct-rotation #調整屏幕旋轉事件百分比, 後面加百分比便可。
c.約束類參數:
--monkey -p <包名> -p <包名> #-p後面接一個或多個包名
--monkey -c <main-category> <event-count> #activity 約束, 測試一個或多個類別
d. 調試類參數
--monkey --ignore-crashes <event-count> #若是但願monkey在應用程序崩潰後繼續發送事件,就用這個命令,若是不設置,遇到上述狀況自動中止
實例:考研幫:
7. Appium 安裝:
a. 先安裝node.js (用node -v, npm -v查看是否安裝成功)
b. 安裝appium:能夠用國內的源: npm install -g cnpm --registry=https://registry.npm.taobao.org, 而後用cnpm install -g appium 安裝最新版本(cnpm install appium@1.7.2 -g安裝指定版本), 而後後where appium查看安裝路徑, appium -v查看版本,輸入appium執行.
c. 安裝python
d. 安裝appium desktop ,下載安裝文件安裝便可
e.安裝appium python client: python3 -m pip install Appium-Python-Client (安裝完後在python裏執行from appium import webdriver,若是沒有出錯,表明安裝成功)
f.JDK安裝
g.Android sdk 安裝
h.安裝appium-doctor: cnpm install appium-doctor -g, 安裝完後執行appium-doctor 能夠檢查appium環境是否有問題
d.