zoukankan      html  css  js  c++  java
  • 如何使用 adb 命令实现自动化测试

            如何使用 adb 命令实现自动化测试

    一、前提:

    1.打开手机调试模式,确保手机已正常连接电脑,可在电脑上通过adb devices命令查看,结果如下说明连接成功: 
    List of devices attached
    90xxxxc9 device
    2.确保电脑上安装sdk等相关软件,可正常使用adb命令和aapt命令

    3.adb 车看设备品牌、型号、机型等信息

    adb shell getprop ro.product.model

    4.过滤 日志 

    输出包含xxxx关键字的日志到D盘根目录的log.txt文件夹没有则创建

    adb logcat | find “xxxx”  >D:log.txt  

    输出指定app的日志到D盘根目录的log.txt文件夹没有则创建

    adb logcat find “包名” >D:log.txt 

    输出指定级别的日志到D盘根目录的log.txt文件夹没有则创建

    adb logcat *:E > D:log.txt

    ** Log 优先级是下面的字符,顺序是从低到高 **:

    • V — 明细 (最低优先级)
    • D — 调试
    • I — 信息
    • W — 警告
    • E — 错误
    • F — 严重错误
    • S — 无记载 (最高优先级,没有什么会被记载)

    选项解析 :

    "-s"选项 : 设置输出日志的标签, 只显示该标签的日志;

    "-f"选项 : 将日志输出到文件, 默认输出到标准输出流中, -f 参数执行不成功;

    "-r"选项 : 按照每千字节输出日志, 需要 -f 参数, 不过这个命令没有执行成功;

    "-n"选项 : 设置日志输出的最大数目, 需要 -r 参数, 这个执行 感觉 跟 adb logcat 效果一样;

    "-v"选项 : 设置日志的输出格式, 注意只能设置一项;

    "-c"选项 : 清空所有的日志缓存信息;

    "-d"选项 : 将缓存的日志输出到屏幕上, 并且不会阻塞;

    "-t"选项 : 输出最近的几行日志, 输出完退出, 不阻塞;

    "-g"选项 : 查看日志缓冲区信息;

    "-b"选项 : 加载一个日志缓冲区, 默认是 main, 下面详解;

    "-B"选项 : 以二进制形式输出日志;

       输出指定选项的日志到D盘根目录的log.txt文件夹没有则创建

    adb logcat -s unity >D:log.txt 




    二、自动化测试辅助命令

    1.获取要测试的apk包的相关信息,比如
    aapt dump badging

    2.对某个手机执行卸载、安装及启动应用的操作
    adb uninstall 
    adb install 
    adb shell monkey -p -v 1

    3.获取手机所有控件信息,为后面执行操作做准备
    adb shell uiautomator dump /sdcard/ui.xml

    4.实现对具体坐标的点击操作
    adb shell input tap x y

    5.获取手机应用执行时的logcat日志:
    adb logcat | grep adb shell ps | grep <package> | cut -c10-15

    adb logcat | find "Unity" > log.txt

    6.获取应用执行时的CPU、内存等相关信息
    adb shell top -n -1 | grep package
    adb shell dumpsys meminfo package

     

    三、各种辅助命令的详解

    1.aapt dump badging 
    查看apk包的packageNameversionCodeapplicationLabellauncherActivitypermission等各种详细信息,效果图如下:

     

    2.adb shell uiautomator dump /sdcard/ui.xml 
    可以获取手机屏幕上当前所有控件的信息并保存在sdcardui.xml文件里面,之后可通过解析ui.xml文件就可以拿到想要的控件信息,比如拿到坐标就可以做相关的点击操作

    3.adb shell input tap x y
    此命令模拟的是点击屏幕的事件,xy坐标对应的是真实的屏幕分辨率,比如手机屏幕分辨率为1920x1080,你想点击中间位置,假设手机横屏,则(x,y)(960,540)

    4.adb logcat | grep adb shell ps | grep <package> | cut -c10-15
    首先adb shell ps | grep | cut -c10-15命令获取的是你的应用执行时对应的进程id,然后通过adb logcat来抓取对应进程id的日志

     

    5.adb shell top -n -1 | grep package
    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源使用情况。

     

    6.adb shell dumpsys meminfo package

     

    内存说明:
    VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
    RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存)
    PSS - Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)
    USS - Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)
    一般来说内存占用大小有如下规律:VSS >= RSS >= PSS >= USS,此条命令获取的是PSS信息

  • 相关阅读:
    对缓存的思考——提高命中率
    2009年职场上必要做的事
    开始睡觉吧睡觉让人更聪明
    人脸识别和模式识别网址
    英语面试精彩问答摘录
    Some Image Processing related Websites
    转载:研究生应该常去的网站
    人工智能和图像网站
    转载:60个必须知道的生活常识
    《c程序设计》的算法归纳
  • 原文地址:https://www.cnblogs.com/wutaotaosin/p/9647876.html
Copyright © 2011-2022 走看看