• 第九章 APP项目测试(3) 测试工具


    9.4.2  AAPT

    AAPT是Andriod Asset Packaging Tool的缩写,是Aanriod应用资源打包工具,可以用AAPT工具构件APK文件,也可以用它来列出APK文件里面的详细信息,包括一些组文件与资源文件等AAPT存放在SDK的build-tools目录下,使用时需要在环境变量path中添加AAPT的路径。由于配置adb时添加了环境变量,也可以直接将aapt.exe文件复制到platform-tools目录下即可。介绍一下AAPT工具常用的子命令。

    1、l-list

    list列出应用程序*.apk包 的内容,命令格式:aapt list*.apk;

    例子:aapt listD:\notepad.apk  显示notepad.apk 包里的内容。

    一般apk里面的内容很多,最好用重定向把文件内容定向到一个文本文件里面,方便查看。如:aapt list D:\notepad.apk>D:\apk.txt

    2、d-dump

    dump查看apk基本信息命令格式:aapt d values*apk其中values的值可以选。

    (1)badging

    参数说明:列出应用的基本信息,包括包名package name、版本、应用名。

    例子:查看lmageViewer.apk的基本信息命令:aapt d badging D:\mageViewer.apk.如果只想得到包名,可以用以下命令aapt d badging D:\tenson.apk findstr"package"通过这个发送得到包名是com.love-plusplus.demo.image。

    (2)permissions

    参数说明:查看apk的应用权限

    例子:查看tenson.apk的权限,aapt d permissions D:\tenson.apk.

    (3)configurations

    参数说明:显示apk的配置信息,比如版本号,分辨率等信息。

    例子:查看tenson.apk的配置信息,aapt d configurations D:\tenson.apk

    (4)resources

    参数说明:列出应用里面的资源信息

    例子:查看tenson.apk的资源信息,aapt d resources D:\tenson.apk

    3、其他参数

    p-package:打包生成资源包

    r-remove:从apk包里删除指定文件

    a-add:添加文件到apk包中

    这些参数相对测试基本上用不到,需要的可以上Android官网。

    9.4.3     Monkey工具介绍

    是Andriod中自带的一个命令行工具,可以运行在模拟器或设备中。它向系统发送伪随机的用户事件流(点击、触摸、手势等)实现对正在开发的应用程序进行压力测试。Monkey表面上运行在设备上,其实是在设备的终端中运行,运行Monkey命令前需要加上adb shell,也可以进入shell终端后直接输入命令运行。

    Monkey包括许多选项,大致分以下4大类

    1)基本的配置选项,如设置事件的数量

    2)运行约束选项,如果设置只对单独的包进行测试

    3)事件类型和频率,如点击事件和触屏事件占比多少以及事件之间的间隔时间等。

    4)调试选项,如是忽略crashes、ANR等。

    Monkey运行时会生成事件,并把信息发给系统;同时还对测试中的系统进行检测,对以下3种情况特殊处理。

    1)可以指定一个或几个包上做测试

    2)应用程序奔溃或接收到异常,可以指定命令让Monkey继续运行

    3)应用程序无响应(ANR),Monkey会停止应用,可以指定命令让Monkey继续运行。

    2、Monkey测试使用流程

    Monkey是一个稳定性压力测试工具,通常是在功能测试完成之后,进行稳定性压力测试。其主要用来检测手机是否出现无响应、闪退、奔溃以及死机等。导致这些问题的主要原因就是内存泄露。Monkey测试的使用流程,如图9-7所示。

    首先要利用命令或工具查看手机内存,然后运行Monkey命令,再次查看手机内存,如果出现递增现象,说明存在内存泄露,需要立即解决问题。此时可以借助DDMS来分析定位问题。

    3、Monkey的基本使用

    基本语法:  adb shell monkey[选项]COUNT.。下面介绍Monkey的参数选项

    -help查看monkey的帮助信息。在命令行输入命令:adb shell monkey-help其运行结果,如图9-8所示。

    COUNT设置执行事件的次数。

     例如:adb shell monkey 1000.

    表示monkey模拟设备或模拟器上所有应用,随机执行1000次用户事件。

    【基础参数】主要有-p、-v、-s、--throttle等。

    (1)-p ALLOWED PACKAGE

    参数说明:指定被测试的应用包名,monkey只允许启动包里的Activity,首先可以命令adb shell ls/data/data/来查看这些Activity。

    例如:adb shell monkey-pcom.android.calendar 100.

    表示monkey模拟器上的com.android.calendar应用,随机执行100次用户事件。

    如果要指定多个包,需要使用多个-p选项,每个-p选项只能指定一个包。

    (2)-v

    参数说明:增加反馈信息的级别。共分以下3个级别

    -v:Lecel 0:默认值,除启动提示、测试完成和最终结果外,提供较少信息。

    -v-v:Lecel 1:提供信息的测试信息,如逐个发送应用Activity的事件。

    -v-v-v:Lecel 2:需要详细的日志,包括测试中选中/未选中的Activity信息。

    例子:adb shell monkey-pcom.freshO2O-v-v-v:100

    命令中由3个V,显示信息的级别为Level 2.

    (3)-s<seed>

    参数说明:指定随机数的种子值seed,如果用相同的seed再次运行Monkey将生成相同的时间顺序如果不指定种子值,系统会随机生成一个种子值,在出现Bug时该种子值会和Bug信息一起被输出,这也是为了便于复现该Bug。

    例子:adb shell monkey-pcom.android.music-s 10100

    如果运行2次这个例子,最终运行结果是一样的。因为指定的随机种子值都是10,模拟的用户操作序列相同。所以操作序列是伪随机的。

    (4)--throttle<ms>

    参数说明:在事件(用户操作)之间插入固定延迟,单位是毫秒。通过这个选项可以减缓Monkey的执行速度。如果不指定这个选项,Monkey将不会被延迟。

    例子:adb shell monkey-pcom.android.music--throttle 300100

    说明:指定事件之间的延迟为300ms

    【调试选项】主要有--ignore-crashes、--ignore-timeouts、--pkg-blacklist-file、--pkg-whitelist-file、--ignore-security-exceptions--monitor-native-crashes、--kill-process-after-error、--hprof等。

    (1)--ignore-crashes

    参数说明:用于指定当应用程序奔溃时(crash,或者FC),monkey是否停止运行。如果使用此参数,即使应用程序奔溃,Monkey依然会发送事件,直到事件计数完成。

    例子:adb shell monkey-pcom.android.settings--ignore-crashes 1000

    表示在测试过程中,即使settings程序奔溃,monkey依然会继续发送事件,直到事件数目达到1000为主。

    (2)--ignore-timeouts

    参数说明:用于指定当应用程序发生ANR(应用程序没有相应)时,monkey是否停止运行。如果使用此参数,即使使用程序发生ANR错误,monkey依然会发送事件,直到事件计数完成。

    例子::adb shell monkey-pcom.android.settings--ignore-timeouts 1000

    表示在测试过程中,即使应用程序无响应,monkey依然会继续发送事件,直到事件数目达到1000为主。

    (3)--ignore-security-exceptions

    参数说明:用于指定应用程序发生许可错误时(如证书许可、网络许可等)monkey是否停止运行。如果使用此参数,即使应用程序发生许可错误,monkey依然会发送事件,直到事件计数完成。

    adb shell monkey-pcom.android.music--ignore-security-exceptions 1000
    表示在测试过程中,如果应用程序发生许可错误,monkey依然会继续发送事件直到事件数目达到1000为止。

    (4)--pkg-blacklist-file PACKAGEBLACKLIST FILE

    参数说明:设置应用测试黑名单,黑名单设置里面的应用包不参与测试。

    使用方法:在--Pkg-blacklist-file后面跟的是文件的路径,这个文件里面保存的就是没有参与测试的应用列表,需要把这个文件push到设备或模拟器后,才可以进行测试。这个选项一般用来测试手机整机的稳定性。

    (5)--pkg-whitelist-file PACKAGEWHITELIST FILE

    参数说明:设置测试白名单,只有这些应用可以参与测试,如果采用测试的应用包很多,可以把这些应用包放到一个文件里面,用设置白名单的方法进行测试。

    (6)-monitor-native-crashes

    参数说明:用于指定是否监视并报告应用程序发生奔溃的本地代码。如果应用本身带有本地的代码库,可以带上这个参数。

    例子:adb shell monkey-pcom.android.calendar-monitor-native-crashes 1000

    表示在测试过程中,如果calendar应用程序本身带有本地代码库,monkey会在显示信息中报告本地代码。

  • 相关阅读:
    C++流插入和流提取的重载!
    Springboot快递管理系统1k61h计算机毕业设计-课程设计-期末作业-毕设程序代做
    从零开始,开发一个 Web Office 套件(4):新的问题—— z-index
    pytorch tensorboard
    野火A7学习第十次(状态机相关)
    转置矩阵的性质
    Flink中KeyBy、分区、分组的正确理解
    sh脚本 单独可以执行,放到crontab中不执行(定时清空redis)
    MPC-M501 1Mbit/s 高速晶体管光耦代替 LTV-M501 滞后短,反应速度快
    XGB(有监督学习)和多维时序模型结合——预测风电出力
  • 原文地址:https://blog.csdn.net/zhhzc/article/details/125485014