1. 程式人生 > >【Mac + Appium + Python3.6學習(六)】之安裝Android模擬器(Genymotion)並運行模擬器進行自動化

【Mac + Appium + Python3.6學習(六)】之安裝Android模擬器(Genymotion)並運行模擬器進行自動化

註冊 允許 rgba tin 字符 虛擬 macos 運行 class

環境:

  • 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軟件
$ adb install xxx.apk
xxx.apk: 1 file ...ed. 4.6 MB/s (8097679 bytes in 1.692s)
    pkg: /data/local/tmp/xxx.apk
Success

# 刪除存在的包再安裝
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)}

打開軟件,下面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,並且可以定位元素寫代碼了,如下:

技術分享圖片

參考:

《Genymotion 2.8.1 安裝以及破解》

《【已解決】關於Mac上的Genymotion模擬器的幾個問題》

《Mac環境下安裝Genymotion》

《MAC上安裝Genymotion的正確姿勢》

【Mac + Appium + Python3.6學習(六)】之安裝Android模擬器(Genymotion)並運行模擬器進行自動化