【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,并且可以定位元素写代码了,如下:
参考:
《【已解决】关于Mac上的Genymotion模拟器的几个问题》
【Mac + Appium + Python3.6学习(六)】之安装Android模拟器(Genymotion)并运行模拟器进行自动化的更多相关文章
- 【Mac + Appium + Python3.6学习(二)】之Android自动化测试,appium-desktop配置和简易自动化测试脚本
上一篇文章介绍安装appium测试环境,这一片研究介绍如何测试Android自动化. 上一篇地址:<[Mac + Appium学习(一)]之安装Appium环境> 这一篇参考:<Ma ...
- 【Mac + Appium + Python3.6学习(三)】之IOS自动化测试环境配置
在做这一节之前先配置我的另一篇文章所需要安装的前提准备条件:<[Mac + Appium学习(一)]之安装Appium环境前提准备> 一.安装IOS自动化测试环境 配置环境: Appium ...
- 【Mac + Appium + Python3.6学习(五)】之常用的Android自动化测试API总结
Github测试样例地址:https://github.com/appium-boneyard/sample-code/tree/master/sample-code/examples ①定位text ...
- 【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 ...
- Appium移动自动化测试(二)--安装Android开发环境
继续Appium环境的搭建. 第二节 安装Android开发环境 如果你的环境是MAC那么可以直接跳过这一节.就像我们在用Selenium进行web自动化测试的时候一样,我们需要一个浏览器来执行测试 ...
- Appium移动自动化测试(二)--安装Android开发环境(转)
Appium移动自动化测试(二)--安装Android开发环境 2015-06-04 17:30 by 虫师, 35299 阅读, 23 评论, 收藏, 编辑 继续Appium环境的搭建. 第二节 ...
- Appium移动自动化测试(三)--安装Android模拟器(转)
Appium移动自动化测试(三)--安装Android模拟器 2015-06-08 10:33 by 虫师, 30828 阅读, 9 评论, 收藏, 编辑 当Android SDK安装完成之后,并不意 ...
- appium入门级教程(3)—— 安装 Android SDK
前言 搭建Android平台不是必须的,如果你不想使用 Android 模拟器运行测试的话可以跳过,不过,建议安装:原生 Android 好折腾!关键是它自带的一些工具是做 appium 测试必须要用 ...
- Appium移动自动化测试-----(二)安装 Android SDK
安装Android SDK Android SDK(Software Development Kit,软件开发工具包)提供了 Android API 库和开发工具构建,测试和调试应用程序.简单来讲,A ...
随机推荐
- docker学习笔记二:常用命令
docker学习笔记二:常用命令 查看docker常用命令 docker --help 返回结果如下: 其中常用的命令如下: 1.image相关操作 展示所有的image: 删除image: rmi ...
- 检索数据(mysqli的面向对象用法)
<?php require('./kwd.php'); $conn=@new mysqli('localhost','root',$kwd,'mytestdb'); if($conn===fal ...
- GOF设计模式之单例模式
定义 单例模式(Singleton Pattern)的定义如下:Ensure a class only has one instance, and provide a global point of ...
- LoadRunner监控Tomcat的几种方法
通过JConsole监控Tomcat 1.打开tomcat5的bin目录中的catalina.bat文件,在头部注释部分的后面加上: set JAVA_OPTS=%JAVA_OPTS% -Dcom.s ...
- SVN:This client is too old to work with working copy…解决方法
昨天升级了一下苹果系统到10.10,扁平化确实不错,高兴之余多少有些不快.我的svn出现故障,总是提示我 SVN:This client is too old to work with workin ...
- margin外边距问题
1 .上下边距会叠加 !DOCTYPE html> <html> <head> <m<etacharset="UTF-8"> < ...
- 利用Redis撤销JSON Web Token产生的令牌
利用Redis撤销JSON Web Token产生的令牌 作者:chszs.版权全部.未经允许,不得转载.博主主页:http://blog.csdn.net/chszs 早先的博文讨论了在Angula ...
- $("#SpecialAptitude").on("change",function(){CheckType($(this))})$("#SpecialAptitude").on("change",CheckType($(this)))
$("#SpecialAptitude").on("change",function(){CheckType($(this))})$("#Specia ...
- Chisel Tutorial(六)——port
下面内容根据2015-7-10版的Chisel 2.2 Tutorial整理 port就是硬件单元对外的接口,须要指明方向(输入还是输出).一个port声明的样例例如以下: class Decoupl ...
- AsyncTask的原理和缺点
番外tips: 特别喜欢一句话.假设你想了解一个人.那你从他出生開始了解吧.相同的道理,想要了解AsyncTask,就从它的源代码開始吧. 进入主题前,在说一下,开发中已经非常少使用AsyncTask ...