您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码:  验证码,看不清楚?请点击刷新验证码 必填



  求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Model Center   Code  
会员   
   
 
     
   
 订阅
  捐助
Android Monkey压力测试
 
作者:magicianyin
  1768  次浏览      16
2020-8-24 
 
编辑推荐:

本文主要介绍JAVA环境的搭建、Android SDK工具安装、启动一个Android环境、Android Monkey压力测试、分析测试报告。
本文来自于博客园,由火龙果软件Alice编辑、推荐。

一. JAVA环境的搭建

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

2.JAVA环境变量的搭建:

在"我的电脑"-"属性"-"高级"-"环境变量"中,点击新建,填写变量名为JAVA_HOME,变量值为JAVA安装的路径.

在系统变量中找到Path,点击编辑,添加%JAVA_HOME%\bin;后点击确定.

然后完成后,按win+r健打开运行,输入cmd,在cmd运行界面输入Java -version或Java检查是否有安装成功.

二. Android SDK工具安装

1.下载GoogleAndroidSDK,并且安装

2.配置Android环境变量,与JAVA一样,新建ANDROID_HOME环境变量,在Path编辑加入%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

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版本

4.SDK环境变量检查

上面的tool下载完后,打开cmd界面,输入adb,如果能够成功返回,则说明安装和配置成功

三. 启动一个Android环境

打开AVD manager,,在Device Definitions,选择其中一台设备,点击create AVD

然后按照提示操作后,在Android Virtual Device中生成设备后,点击右边的start

然后生成模拟器

注意:如果在生成模拟器的时候,报错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官网下载,地址: ,然后解压后放在 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最后停留的页面

注意:也可以退出shell界面后,可以直接输入adb shell monkey -p com.android.email -v 100 > d:\monkeytest.txt将结果导入到txt文件中

五. 分析测试报告

注意seed值

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

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

无响应问题搜索"ANR"

奔溃问题搜索"CRASH"

内存泄漏问题搜索"GC",并进一步分析

异常问题搜索"Exception",如出现NullpointerException,则出现空指针,需要重视

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

 
   
1768 次浏览       16
相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程
最新课程计划
信息架构建模(基于UML+EA)3-21[北京]
软件架构设计师 3-21[北京]
图数据库与知识图谱 3-25[北京]
业务架构设计 4-11[北京]
SysML和EA系统设计与建模 4-22[北京]
DoDAF规范、模型与实例 5-23[北京]
 
最新文章
Flutter-你还在滥用StatefulWidget吗
移动APP安全测试要点
深入浅出 Kotlin 协程
iOS 组件化 —— 路由设计思路分析
移动端跨平台开发的深度解析
最新课程
Android高级移动应用程序开发
Android应用开发
Android系统开发
Android应用高级开发
移动互联网应用开发(iOS,Android,HTML5)
更多...   
成功案例
北京 iOS开发技术深入研究
某企业 Android高级移动应用程序开发
中体彩 Android产品级测试
移动通信 移动互联网应用开发原理
某电力行 android开发平台最佳
更多...