環境:
- MacOS:10.13.6
- Virtualbox:5.2.22
- Genymotion:genymotion-2.12.2
本文Virtualbox、Genymotion下載地址:
鏈接:https://pan.baidu.com/s/1ACubK3jiCdKBxZ-oiJVLTg 密碼:5nt5
一、下載Virtualbox(Genymotion的運行需要依賴VirtualBox)
①官網地址下載:https://www.virtualbox.org/wiki/Downloads
②參考上面鏈接下載
安裝過程中安裝失敗,如圖:
參考:《macOS 10.13 安裝Virtualbox失敗》
原因:virtualbox在安裝的時候需要安裝內核擴展(Kernel extenstion),而macOS 10.13 High Sierra的新安全特性會阻止外部內核擴展的安裝,所以安裝總是會被系統攔截。
解決辦法:
打開“系統偏好設置”->“安全性與隱私”->“通用”->點擊“允許”
再次安裝,顯示成功!
二、安裝genymotion
兩種方式:
①先登錄,沒賬號先注冊,才能下載
②直接下載參考文章開頭鏈接:下載完成后安裝並啟動登錄:用的網友提供的賬號密碼(賬號 : csdntest 密碼 : admin123456)
設置SDK:/Users/xxx/xxx/android-sdk-macosx
個人使用
添加虛擬設備
安裝虛擬機:
啟動虛擬設備:
打開終端,輸入:
$ adb devices
List of devices attached
192.168.56.101:5555 device
三、appium-desktop結合虛擬機進行自動化
接下來有幾個adb設備的命令操作:
# 進入手機應用交互 adb shell # 當前虛擬設備啟動的app ps # 當前虛擬設備的目錄 ls # 當前虛擬設備連接多少對外的服務 netstat -tn # 當前虛擬設備監聽端口 netstat -tln # 退出 exit
然后下載或者要測試的aapk軟件,下面介紹查看aapk的命令:
但是aapt不存在,解決辦法為:《Mac環境下adb、aapt環境配置和常用指令》、《-bash: aapt: command not found》
# 查看包的內容 aapt dump badging xxx.apk | less # 查看aapt命令 aapt 2>&1 |less # 列舉包有什么文件 aapt list xxx.apk |less #/lib:查看lib下是不是【armeabi】、【x86】,x86的apk可以安裝在模擬器中 # 解壓apk unzip ../xxx.apk # 研發設置各種各樣字符串的資源 aapt dump strings xxx.apk # 進入Android里 cd $ANDROID_HOME # 回到原目錄 cd $OLDPWD
# 在模擬器中安裝apk軟件
*先cd到xxx.apk的路徑下
$ adb install xxx.apk 或者 adb install -r /xxx/xxx/xxx.apk
xxx.apk: 1 file ...ed. 4.6 MB/s (8097679 bytes in 1.692s) pkg: /data/local/tmp/xxx.apk Success
# 卸載模擬器中的apk
adb uninstall com.xueqiu.android
# 刪除存在的包再安裝 adb install -r xxx.apk # 查看模擬器設備的信息 adb logcat # 模糊搜索 adb logcat | grep -i activitymanager.*cmp= # 或 adb logcat | grep --line-buffered -i activitymanager.*cmp= | awk '{print $(NF-6)}'
# 查看模擬器中apk包的版本
adb shell dumpsys package com.xueqiu.android | less
version
# 或
adb shell dumpsys package com.xueqiu.android | grep version
打開軟件,下面cmp是需要的參數:
11-22 01:49:04.484 626 638 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000
cmp=cn.sqm.citymine_safety/.activity.LauncherActivity (has extras)} from uid 10008 on display 0
下面才開始結合appium-desktop設置參數:
參考官方地址:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
{ ①"deviceName": "192.168.56.101:5555", ②"platformName": "Andriod", ③"appPackage": "cn.sqm.citymine_safety", ④"appActivity": ".activity.LauncherActivity" }
①設備號通過adb devices獲取
②平台名
③④通過 adb logcat中的cmp獲取,上面剛講的。
取Launcher后面的cmp{}.
最后點擊session啟動app,並且可以定位元素寫代碼了,如下:
參考: