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


 

環境:

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

 

 

 

 

參考:

Genymotion 2.8.1 安裝以及破解》 

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

Mac環境下安裝Genymotion

MAC上安裝Genymotion的正確姿勢


免責聲明!

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



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