zoukankan      html  css  js  c++  java
  • 【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的正确姿势

  • 相关阅读:
    库函数的使用:POJ1488-TEX Quotes(getline()的使用)
    字符串:HDU3064-最长回文
    字符串:HDU5371-Hotaru's problem(manacher 的应用)
    字符串-POJ3974-Palindrome
    Oracle数据库编程:在JDBC中应用Oracle
    C++、GDAL创建shapefile文件
    CStdioFile
    Js中获取frames中的元素
    约瑟夫环问题(循环链表)
    【Oracle 函数索引】一次数据库的优化过程
  • 原文地址:https://www.cnblogs.com/Owen-ET/p/10000024.html
Copyright © 2011-2022 走看看