zoukankan      html  css  js  c++  java
  • Appium移动自动化测试(二)之appuim + 夜神模拟器

    环境搭建起来之后, 就可以开始移动自动化了. 但是使用自带的AVD开启模拟器, 速度实在太慢. 于是用夜神来做替代, 稍微能够有一些提速.

    1. 启动appuim

        打开Appium,点击右上角Start按钮

        

        输出如下信息, 表示启动成功

        

          可以提前获取如下信息:

            主机: 127.0.0.1:4723

            desired_caps['platformName'] = 'Android'

          desired_caps['platformVersion'] = '23'
          desired_caps['deviceName'] = 'Android Emulator'

        2. 链接夜神模拟器

          1). 首先启动夜神模拟器

          2)  进入安装目录, 链接模拟器

            

          注意: 

          如果夜神模拟器的adb版本和androidsdk的adb版本不一致,需将androidsdk中platform-tools目录下的adb.exe拷贝到模拟器的bin目录,并修改为nox_adb.exe

        3.  获取package

          在sdk/tools下面有个uiautomatorviewer.bat工具

          

          启动以后的样子

          

          左上角一共四个按钮,作用分别是打开本地文件、dump页面、dump压缩格式的页面、保存

          选择第三个按钮的dump模式,右侧展示的是树的形式,看上去简介了很多,方便元素的查找和查看。

          

          除此之外页面右侧还有列表的树形结构,点击任意控件可在右下方显示控件的详细信息,树形结构还支持搜索功能,不过搜索的是content-desc的内容。

         4.  获取apk的activity

          在apk/tools目录下有个工具hierarchyview.bat, 它可以获取设备当前页面的package和activity信息

          

          其中,“com.Qunar”是对应的package,“com.mqunar.atom.hotel.ui.activity.HotelListActivity”是当前页面的activity

          备用方案一:

          hierarchy view经常连不上真机或者模拟器,无法获得activity,所以直接用 adb命令来查看当前运行的 activity

          1、cmd命令中输入:adb shell 进入shell命令模式
          2、shell中输入:logcat | grep ActivityManager   真机运行应用,可以实时 查看当前正在运行的Activity;

          I/ActivityManager(  511): START u0 {act=Android.intent.action.INSERT dat=content
          ://com.example.notepad.provider.NotePad/notes cmp=com.example.android.notepad/.N
          oteEditor} from pid 12896
          cmp=com.example.android.notepad/.NoteEditor 中, 
          com.example.android.notepad 是包名, NoteEditor是当前活动的activity;

       

          备用方案二:

         在sdkuilds-tools目录下, aapt是sdk自带的一个工具,命令行切换至该目录下, 运行aapt dump badging ***.apk, 在结果中可以找到package和activity的名字

          

    desired_caps['platformName'] = 'Android'
    desired_caps['platformVersion'] = '23'
    desired_caps['deviceName'] = 'Android Emulator'
  • 相关阅读:
    解决windows上安装TortoiseSVN后不能使用命令行问题
    Python里Pure paths、PurePosixPath、PureWindowsPath的区别
    PHP数组运算符
    global,local,static的区别
    echo和print的区别
    PHP中foreach循环传值问题
    Matlab入门学习(文件读写)
    Matlab入门学习(程序设计)
    IDEA中使用Maven下载依赖时报错:unable to find valid certification path to requested target
    全国县市区编码表
  • 原文地址:https://www.cnblogs.com/xiaowangzi1110/p/8856844.html
Copyright © 2011-2022 走看看