zoukankan      html  css  js  c++  java
  • Android Monkey压力测试

    一. JAVA环境的搭建

    1. 安装jdk-8u151-windows-x64,可以到官网或者应用中心下载.
    2. JAVA环境变量的搭建:
      • 在"我的电脑"-"属性"-"高级"-"环境变量"中,点击新建,填写变量名为JAVA_HOME,变量值为JAVA安装的路径.
        ALT
      • 在系统变量中找到Path,点击编辑,添加%JAVA_HOME%in;后点击确定.
        ALT
      • 然后完成后,按win+r健打开运行,输入cmd,在cmd运行界面输入Java -version或Java检查是否有安装成功.
    C:UsersAdministrator>java -version
    java version "1.8.0_91"
    Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
    Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)
    C:UsersAdministrator>java
    用法: java [-options] class [args...]
               (执行类)
       或  java [-options] -jar jarfile [args...]
               (执行 jar 文件)
    其中选项包括:
        -d32          使用 32 位数据模型 (如果可用)
        -d64          使用 64 位数据模型 (如果可用)
        -server       选择 "server" VM
                      默认 VM 是 server.
        -cp <目录和 zip/jar 文件的类搜索路径>
        -classpath <目录和 zip/jar 文件的类搜索路径>
                      用 ; 分隔的目录, JAR 档案
                      和 ZIP 档案列表, 用于搜索类文件。
        -D<名称>=<值>
    

    二. Android SDK工具安装

    1. 下载GoogleAndroidSDK,并且安装
    2. 配置Android环境变量,与JAVA一样,新建ANDROID_HOME环境变量,在Path编辑加入%ANDROID_HOME% ools;%ANDROID_HOME%platform-tools;
      ALT
      ALT
    3. 打开Android SDK Manager,选择默认下载的工具包
      一般默认是选择Tools底下前3个,然后是Android最新的SDK Platform,Android TV Intel x86 Atom System Image,Google Play Intel x86 Atom System Image,Google APIs Intel x86 Atom System Image(然后悲剧的发现这几个是访问dll.google.com的,然后华丽丽的被墙了,无奈就选择低版本的Intel x86 Atom System Image下载,可以顺利下载并且能打开avd...)
      所以,可以按需选择要下载的api,不一定下载最新的Android版本
      ALT
      ALT
    4. SDK环境变量检查
      上面的tool下载完后,打开cmd界面,输入adb,如果能够成功返回,则说明安装和配置成功
      ALT

    三. 启动一个Android环境

    • 打开AVD manager,,在Device Definitions,选择其中一台设备,点击create AVD
      ALT
    • 然后按照提示操作后,在Android Virtual Device中生成设备后,点击右边的start
      ALT
    • 然后生成模拟器
      ALT
      注意:如果在生成模拟器的时候,报错emulator: ERROR: x86 emulation currently requires hardware acceleration ?可以在SDK manager最下面的extras中找到intel x86 emulator accelerator(HAXM installer)来安装.然后如果在sdk manager中显示haxm installer not compatible with windows,则需要在intel官网下载,地址:https://software.intel.com/sites/default/files/managed/c8/be/haxm-windows_v6_2_1.zip ,然后解压后放在 sdkextrasintelHardware_Accelerated_Execution_Manager 文件夹中安装,则可以打开模拟器.

    四. Android Monkey压力测试

    • 打开模拟器中,打开cmd界面,输入adb devices,看是否连接了模拟器设备
    C:UsersAdministrator>adb devices
    List of devices attached
    emulator-5554   device
    
    • 然后输入adb shell进入到shell界面
    C:UsersAdministrator>adb shell
    root@generic_x86:/ #
    
    • 选择com.android.email这个程序作为对象进行MonkeyTest,在shell界面中输入
    #monkey -p com.android.email -v 100
    
    其中,-p表示指定一个或者多个包,没有这个参数则不指定包;-v表示指定反馈信息级别,100表示启动该app并发送100个随机事件  
    
    root@generic\_x86:/ # monkey -p com.android.email -v 100
    WARNING: linker: libdvm.so has text relocations. This is wasting memory and is a
     security risk. Please fix.
    :Monkey: seed=1518372908154 count=100
    :AllowPackage: com.android.email
    :IncludeCategory: android.intent.category.LAUNCHER
    :IncludeCategory: android.intent.category.MONKEY
    // Event percentages:
    //   0: 15.0%                      触摸事件百分比,即参数–pct-touch
    //   1: 10.0%                      滑动事件百分比,即参数–pct-motion
    //   2: 2.0%                        缩放事件百分比,即参数–pct-pinchzoom 
    //   3: 15.0%                      轨迹球事件百分比,即参数–pct-trackball 
    //   4: -0.0%                       屏幕旋转事件百分比,即参数–pct-rotation 
    //   5: 25.0%                      基本导航事件百分比,即参数–pct-nav 
    //   6: 15.0%                      主要导航事件百分比,即参数–pct-majornav 
    //   7: 2.0%                        系统事件百分比,即参数–pct-syskeys 
    //   8: 2.0%                        Activity启动事件百分比,即参数–pct-appswitch 
    //   9: 1.0%                        键盘翻转事件百分比,即参数–pct-flip 
    //   10: 13.0%                    其他事件百分比,即参数–pct-anyevent
    :Switch: #Intent;action=android.intent.action.MAIN;category=android.intent.categ
    ory.LAUNCHER;launchFlags=0x10200000;component=com.android.email/.activity.Welcom
    e;end
        // Allowing start of Intent { act=android.intent.action.MAIN cat=[android.in
    tent.category.LAUNCHER] cmp=com.android.email/.activity.Welcome } in package com
    .android.email
    :Sending Touch (ACTION\_DOWN): 0:(176.0,915.0)
    :Sending Touch (ACTION\_UP): 0:(172.51561,943.72437)
    :Sending Trackball (ACTION\_MOVE): 0:(-2.0,1.0)
        // Allowing start of Intent { act=android.intent.action.EDIT dat=content://u
    i.email.android.com/settings cmp=com.android.email/.activity.setup.AccountSettin
    gs } in package com.android.email
        // Allowing start of Intent { cmp=com.android.email/.activity.setup.AccountS
    etupBasics } in package com.android.email
        // activityResuming(com.android.email)
    :Sending Touch (ACTION\_DOWN): 0:(559.0,844.0)
    :Sending Touch (ACTION\_UP): 0:(494.87607,782.93036)
    :Sending Touch (ACTION\_DOWN): 0:(717.0,136.0)
    :Sending Touch (ACTION\_UP): 0:(705.3432,121.778885)
    :Sending Trackball (ACTION\_MOVE): 0:(-4.0,4.0)
    :Sending Touch (ACTION\_DOWN): 0:(658.0,1007.0)
    :Sending Touch (ACTION\_UP): 0:(638.68384,998.59467)
    :Sending Touch (ACTION\_DOWN): 0:(443.0,542.0)
    :Sending Touch (ACTION\_UP): 0:(419.82828,558.96)
    :Sending Touch (ACTION\_DOWN): 0:(280.0,666.0)
    :Sending Touch (ACTION\_UP): 0:(275.95532,654.7703)
    :Sending Touch (ACTION\_DOWN): 0:(18.0,979.0)
    :Sending Touch (ACTION\_UP): 0:(14.776767,980.841)
    :Sending Trackball (ACTION\_MOVE): 0:(0.0,-3.0)
    :Sending Touch (ACTION\_DOWN): 0:(253.0,1043.0)
    :Sending Touch (ACTION\_UP): 0:(255.71083,1034.4076)
    :Sending Trackball (ACTION_MOVE): 0:(2.0,3.0)
    :Sending Trackball (ACTION\_UP): 0:(0.0,0.0)
    :Sending Touch (ACTION\_DOWN): 0:(388.0,699.0)
    :Sending Touch (ACTION\_UP): 0:(396.3903,699.357)
    :Sending Trackball (ACTION\_MOVE): 0:(0.0,-1.0)
    Events injected: 100
    :Sending rotation degree=0, persist=false
    :Dropped: keys=0 pointers=5 trackballs=0 flips=0 rotations=0
    ## Network stats: elapsed time=2857ms (0ms mobile, 0ms wifi, 2857ms not connected)
    // Monkey finished
    
    • com.android.email最后停留的页面
      ALT
      注意:也可以退出shell界面后,可以直接输入adb shell monkey -p com.android.email -v 100 > d:monkeytest.txt将结果导入到txt文件中

    五. 分析测试报告

    1. 注意seed值
      :Monkey: seed=1518372908154 count=100 没有指定seed值是,会随机生成,可以通过设定seed值使得测试产生的随机操作序列完全相同

    2. 查找有无日志中的无响应问题和崩溃问题

      • 无响应问题搜索"ANR"
      • 奔溃问题搜索"CRASH"
      • 内存泄漏问题搜索"GC",并进一步分析
      • 异常问题搜索"Exception",如出现NullpointerException,则出现空指针,需要重视

      有这类的情况再进行具体分析

  • 相关阅读:
    Apache配置虚拟主机的三种方法(基于IP、端口、域名)
    shell中嵌套执行expect命令实例(利用expect实现自动登录)
    Shell脚本实现SSH免密登录及批量配置管理
    搭建本地yum源服务器
    awk之腾迅面试题1
    16个tomcat面试题
    tomcat常见面试题1
    Mysql经典面试题
    10个超有趣的linux命令
    Codeforces Beta Round #79 (Div. 2 Only)
  • 原文地址:https://www.cnblogs.com/magicianyin/p/8529179.html
Copyright © 2011-2022 走看看