【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的正确姿势

posted @ 2019-01-16 12:13  Owen_ET  阅读(1984)  评论(0编辑  收藏  举报