Android Monkey压力测试

Stella981
• 阅读 387

一. JAVA环境的搭建

  1. 安装jdk-8u151-windows-x64,可以到官网或者应用中心下载.

  2. JAVA环境变量的搭建:

    • 在"我的电脑"-"属性"-"高级"-"环境变量"中,点击新建,填写变量名为JAVA_HOME,变量值为JAVA安装的路径. Android Monkey压力测试
    • 在系统变量中找到Path,点击编辑,添加%JAVA_HOME%\bin;后点击确定. Android Monkey压力测试
    • 然后完成后,按win+r健打开运行,输入cmd,在cmd运行界面输入Java -version或Java检查是否有安装成功.

    C:\Users\Administrator>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:\Users\Administrator>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%\tools;%ANDROID_HOME%\platform-tools; Android Monkey压力测试
    Android Monkey压力测试
  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版本 Android Monkey压力测试
    Android Monkey压力测试
  4. SDK环境变量检查
    上面的tool下载完后,打开cmd界面,输入adb,如果能够成功返回,则说明安装和配置成功 Android Monkey压力测试

三. 启动一个Android环境

  • 打开AVD manager,,在Device Definitions,选择其中一台设备,点击create AVD Android Monkey压力测试
  • 然后按照提示操作后,在Android Virtual Device中生成设备后,点击右边的start Android Monkey压力测试
  • 然后生成模拟器 Android Monkey压力测试
    注意:如果在生成模拟器的时候,报错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 ,然后解压后放在 sdk\extras\intel\Hardware_Accelerated_Execution_Manager 文件夹中安装,则可以打开模拟器.

四. Android Monkey压力测试

  • 打开模拟器中,打开cmd界面,输入adb devices,看是否连接了模拟器设备

    C:\Users\Administrator>adb devices List of devices attached emulator-5554 device

  • 然后输入adb shell进入到shell界面

    C:\Users\Administrator>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最后停留的页面 Android Monkey压力测试
    注意:也可以退出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,则出现空指针,需要重视

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

点赞
收藏
评论区
推荐文章
秃头王路飞 秃头王路飞
5个月前
webpack5手撸vue2脚手架
webpack5手撸vue相信工作个12年的小伙伴们在面试的时候多多少少怕被问到关于webpack方面的知识,本菜鸟最近闲来无事,就尝试了手撸了下vue2的脚手架,第一次发帖实在是没有经验,望海涵。languageJavaScript"name":"vuecliversion2","version":"1.0.0","desc
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
技术小男生 技术小男生
5个月前
linux环境jdk环境变量配置
1:编辑系统配置文件vi/etc/profile2:按字母键i进入编辑模式,在最底部添加内容:JAVAHOME/opt/jdk1.8.0152CLASSPATH.:$JAVAHOME/lib/dt.jar:$JAVAHOME/lib/tools.jarPATH$JAVAHOME/bin:$PATH3:生效配置
光头强的博客 光头强的博客
5个月前
Java面向对象试题
1、请创建一个Animal动物类,要求有方法eat()方法,方法输出一条语句“吃东西”。创建一个接口A,接口里有一个抽象方法fly()。创建一个Bird类继承Animal类并实现接口A里的方法输出一条有语句“鸟儿飞翔”,重写eat()方法输出一条语句“鸟儿吃虫”。在Test类中向上转型创建b对象,调用eat方法。然后向下转型调用eat()方
刚刚好 刚刚好
5个月前
css问题
1、在IOS中图片不显示(给图片加了圆角或者img没有父级)<div<imgsrc""/</divdiv{width:20px;height:20px;borderradius:20px;overflow:h
小森森 小森森
5个月前
校园表白墙微信小程序V1.0 SayLove -基于微信云开发-一键快速搭建,开箱即用
后续会继续更新,敬请期待2.0全新版本欢迎添加左边的微信一起探讨!项目地址:(https://www.aliyun.com/activity/daily/bestoffer?userCodesskuuw5n)\2.Bug修复更新日历2.情侣脸功能大家不要使用了,现在阿里云的接口已经要收费了(土豪请随意),\\和注意
晴空闲云 晴空闲云
5个月前
css中box-sizing解放盒子实际宽高计算
我们知道传统的盒子模型,如果增加内边距padding和边框border,那么会撑大整个盒子,造成盒子的宽度不好计算,在实务中特别不方便。boxsizing可以设置盒模型的方式,可以很好的设置固定宽高的盒模型。盒子宽高计算假如我们设置如下盒子:宽度和高度均为200px,那么这会这个盒子实际的宽高就都是200px。但是当我们设置这个盒子的边框和内间距的时候,那
艾木酱 艾木酱
5个月前
快速入门|使用MemFire Cloud构建React Native应用程序
MemFireCloud是一款提供云数据库,用户可以创建云数据库,并对数据库进行管理,还可以对数据库进行备份操作。它还提供后端即服务,用户可以在1分钟内新建一个应用,使用自动生成的API和SDK,访问云数据库、对象存储、用户认证与授权等功能,可专
NVIDIA安培架构下MIG技术分析
关键词:NVIDIA、MIG、安培一什么是MIG2020年5月,NVIDIA发布了最新的GPU架构:安培,以及基于安培架构的最新的GPU:A100。安培提供了许多新的特性,MIG是其中一项非常重要的新特性。MIG的全名是MultiInstanceGPU。NVIDIA安培架构中的MIG模式可以在A100GPU上并行运行七个作业。多实
helloworld_28799839 helloworld_28799839
5个月前
常用知识整理
Javascript判断对象是否为空jsObject.keys(myObject).length0经常使用的三元运算我们经常遇到处理表格列状态字段如status的时候可以用到vue