码迷,mamicode.com
首页 > 移动开发 > 详细

【Mac + Appium + Python3.6学习(六)】之安装Android模拟器(Genymotion)并运行模拟器进行自动化

时间:2019-01-16 13:17:26      阅读:355      评论:0      收藏:0      [点我收藏+]

标签:shell   dmi   个人   cap   shel   安全   安装虚拟机   org   dai   

 

环境:

  • 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)并运行模拟器进行自动化

标签:shell   dmi   个人   cap   shel   安全   安装虚拟机   org   dai   

原文地址:https://www.cnblogs.com/Owen-ET/p/10000024.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!