环境:

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



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

  1. 【Mac + Appium + Python3.6学习(二)】之Android自动化测试,appium-desktop配置和简易自动化测试脚本

    上一篇文章介绍安装appium测试环境,这一片研究介绍如何测试Android自动化. 上一篇地址:<[Mac + Appium学习(一)]之安装Appium环境> 这一篇参考:<Ma ...

  2. 【Mac + Appium + Python3.6学习(三)】之IOS自动化测试环境配置

    在做这一节之前先配置我的另一篇文章所需要安装的前提准备条件:<[Mac + Appium学习(一)]之安装Appium环境前提准备> 一.安装IOS自动化测试环境 配置环境: Appium ...

  3. 【Mac + Appium + Python3.6学习(五)】之常用的Android自动化测试API总结

    Github测试样例地址:https://github.com/appium-boneyard/sample-code/tree/master/sample-code/examples ①定位text ...

  4. 【Mac + Appium + Python3.6学习(四)】之常用的IOS自动化测试API总结

    环境: Appium:1.9.1 Appium-desktop:1.7.1 Xcode:10.0 IOS:iPhone5S(10.3.3) Mac:10.13.6 ①获取手机屏幕size:长.宽 &l ...

  5. Appium移动自动化测试(二)--安装Android开发环境

    继续Appium环境的搭建. 第二节  安装Android开发环境 如果你的环境是MAC那么可以直接跳过这一节.就像我们在用Selenium进行web自动化测试的时候一样,我们需要一个浏览器来执行测试 ...

  6. Appium移动自动化测试(二)--安装Android开发环境(转)

    Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节   ...

  7. Appium移动自动化测试(三)--安装Android模拟器(转)

    Appium移动自动化测试(三)--安装Android模拟器 2015-06-08 10:33 by 虫师, 30828 阅读, 9 评论, 收藏, 编辑 当Android SDK安装完成之后,并不意 ...

  8. appium入门级教程(3)—— 安装 Android SDK

    前言 搭建Android平台不是必须的,如果你不想使用 Android 模拟器运行测试的话可以跳过,不过,建议安装:原生 Android 好折腾!关键是它自带的一些工具是做 appium 测试必须要用 ...

  9. Appium移动自动化测试-----(二)安装 Android SDK

    安装Android SDK Android SDK(Software Development Kit,软件开发工具包)提供了 Android API 库和开发工具构建,测试和调试应用程序.简单来讲,A ...

随机推荐

  1. (剑指Offer)面试题37:两个链表的第一个公共结点

    题目: 输入两个链表,找出它们的第一个公共结点. 链表结点的定义如下: struct ListNode{ int val; ListNode* next; ListNode(int x):val(x) ...

  2. OpenCV 之 直方图处理

    1  图像直方图 1.1  定义 统计各个像素值,在整幅图像中出现次数的一个分布函数.        1.2  标准化 $\quad p_r(r_k) = \frac{n_k}{MN} \qquad ...

  3. Android fragment 切换载入数据卡顿问题

    接着上一篇项目的进度.上一篇讲了怎样利用fragment来实现下拉菜单.公用菜单,以实现切换主界面数据的功能,这时候遇到的问题是:使用了fragment的切换界面方法.但载入的数据太多.用户从一个界面 ...

  4. C# Meta Programming - Let Your Code Generate Code - 利用反射重写自动的ToString()

    我们在写一些Model的时候,经常会重写ToString,为了在控制台中进行打印或者更好的单元测试. 但是,如果Model的字段非常多的时候,如此简单的重复劳动经常会变成一件令人头痛的事情,因为大家 ...

  5. 运用Unity实现依赖注入[有参构造注入]

    上一篇章讲到关于使用Unity实现依赖注入的简单功能,针对有博友提出关于有参构造注入的问题; 本文同样通过一个实例来讲解如何实现此功能,文中一些分层讲解可以看上一文章(运用Unity实现依赖注入[结合 ...

  6. <译>Zookeeper官方文档

    apache原文地址:http://zookeeper.apache.org/doc/trunk/zookeeperOver.html ZooKeeper ZooKeeper: A Distribut ...

  7. MySQL的索引及其优化

    前言 索引对查询的速度有着至关重要的影响,理解索引也是进行数据库性能调优的起点.考虑如下情况,假设数据库中一个表有10^6条记录,DBMS的页面大小为4K,并存储100条记录.如果没有索引,查询将对整 ...

  8. HBase ProcedureV2 分析

    Procedure V2, 是hbase1.1版本引入的一套fault-tolerant的执行multi-steps-job的框架, 目前主要用在Master中, 比如创建表,删除表等操作 新旧比较 ...

  9. 实现对数据进行分组小计并计算合计的实例 asp.net

    可以通过数据绑定来实现  通过union all 来实现数据库 SELECT * FROM v3_pay_list2 where ( (ought_date >= '2012-12-06') a ...

  10. golang中使用mongodb的操作类以及如何封装

    mgo简介 mongodb官方没有关于go的mongodb的驱动,因此只能使用第三方驱动,mgo就是使用最多的一种. mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API ...