首先需要安装一个模拟器:

前置条件:

1.jdk环境配置

2.eclipse下载安装(直接解压即可)

3.网站上下载ADT:

由于国内禁止google的浏览,所以需要自己上网找资源,下面这个网站有比较全版本的ADT资源:

csdn博客链接:http://blog.csdn.net/cayre/article/details/29624477

提供了三种方式下载ADT,百度云,360网盘,官网下载(网盘的,都是原博主FQ在官网下载直接放上去的,可以放心使用)

4.SDK下载地址:https://dl.google.com/android/android-sdk_r24.0.2-windows.zip

(PS:Android SDK开发包国内下载地址

http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform-sdk-download-mirror.html

操作步骤:

1.启动eclipse.exe

2.打开【help】->【install new software】

3.点击ADD

Name为ADT

Archive选择ADT的zip格式压缩包

4.ok后,一路next(需要耐心等待一段时间)

5.重启eclipse

6.设置SDK路径:选择【windows】->【perferences】->【android】,在SDK location中选择下载的sdk的地址

7.打开【windows】->【android SDK Manger】

PS:如过在【windows】中找不到,点击【Windows】—>【Customize Perspective】,将选项卡切换至【Command Groups Availability】—>【选中Android SDK and AVD Manager】—>点击OK

8.打开android SDK manger之后,如果packages选项非常少,参考下面步骤:

1.打开【tools】 -> 【options】

2.将Proxy Settings 里的HTTP Proxy Server和HTTP Proxy Port分别设置成mirrors.neusoft.edu.cn和80

将Others中的Force https://...sources to be fetched using http://...复选框勾上

3.重启eclipse

4.选择要下载的包进行安装,安装后再重启一次eclipse

9.打开【windows】->【Android Virtual Device Manager】,create一个新的模拟器,在弹出窗口中配置模拟器,ok后,start

(创建AVD 时如果出现了no system images installed for this target,打开SDK manager,安装上ARM EABI v7a System Image,重启AVD,就可以解决问题)

10.模拟器的打开非常慢,一开始界面是闪动的android字样,过好长一段时间后,模拟器就打开了,但是整个运行的过程也是非常慢!

在模拟器上安装需要测试的apk包:

1.将apk包放在platform-tools的文件夹下

2.启动模拟器之后,打开电脑的cmd命令。

3.将路径导向platform-tools文件夹后,输入命令adb install test.apk(不要同时连接两台设备,包括模拟器)

4.看到success,并且在模拟器的界面上可以看到安装的软件就是成功了。(这个过程也是比较慢的)

模拟器上也可以看到

PS:如果测试过程中发现模拟器无法上网,可以在eclipse下设置:

8.8.8.8为可上网的本机的DNS地址,可在cmd中通过语句ipconfig /all来查看。

有的时候没有上网也是因为一些说不清楚的原因,比方说开一下飞行模式再关掉就好了……

5.如果要卸载应用,直接在模拟器上操作会比较慢,用cmd命令中:adb uninstall com.hengtiansoft.test,success后就可以将应用删除了。

真机测试:

前置条件:

1.jdk环境配置

2.SDK下载地址:https://dl.google.com/android/android-sdk_r24.0.2-windows.zip

(PS:Android SDK开发包国内下载地址

http://www.cnblogs.com/bjzhanghao/archive/2012/11/14/android-platform-sdk-download-mirror.html

3.根据上文中SDK manager 设置,更新SDK 配置(主要更新platform-tools中的adb)

以下内容非常重要且经常导致人绕无谓的弯路!

连接真机时一定要把360手机助手关掉,以及手机上不要设置为仅充电,打开USB调试!!

4.设置好以上内容之后,真机和模拟器的操作就类似了

以上,模拟器或者真机都已经准备完成,然后学习使用monkey工具:

使用monkey工具

1.在cmd中进入platform-tools的文件夹,输入命令 adb shell monkey 查看一下monkey的一些固定命令

2.adb devices查看设备连接情况,如果只有一个模拟器,会显示下图

adb shell ls data/data //可以查看全部可用的安装包名称(真机需要root)

adb shell pm list packages -3  //获取我们自己安装应用的包名

3.以com.hengtiansoft.test作为对象进行MonkeyTest

adb shell monkey -p com.hengtiansoft.test -v 500

其中-p表示对象包 –v 表示事件数量

4.在语句后增加 adb shell monkey -p com.hengtiansoft.zhaike -v 500>testlog.txt,就可以将测试的log文件导出到platform-tools中的一个logtest.txt的文件中。

monkey基本命令

1:常用选项

-help:打印帮助信息 -v:指定打印信息的详细级别,一个 -v增加一个级别 , 默认级别为 0 。

日志级别 Level0

示例 adb shellmonkey -p com.hengtiansoft.zhaike –v 100

说明 缺省值,仅提供启动提示、测试完成和最终结果等少量信息

日志级别 Level 1

示例 adb shellmonkey -p com.hengtiansoft.zhaike –v -v 100

说明  提供较为详细的日志,包括每个发送到Activity的事件信息

日志级别 Level 2

示例 adb shellmonkey -p com.hengtiansoft.zhaike –v -v –v 100

说明  最详细的日志,包括了测试中选中/未选中的Activity信息

2:事件选项

-s:指定产生随机事件种子值,相同的种子值产生相同的事件序列。-s 200
--throttle:每个事件结束后的间隔时间(单位:毫秒)  ——降低系统的压力(如不指定,系统会尽快的发送事件序列)。--throttle 100
--pct-touch <指定触摸事件的百分比>,如:--pct-touch 5% 。
--pct-motion <percent> (滑动事件)、 --pct-trackball <percent> (轨迹球事件) 、 --pct-nav <percent> (导航事件 up/down/left/right)、 --pct-majornav <percent> (主要导航事件 back key 、 menu key)、 --pct-syskeys <percent> (系统按键事件 Home 、Back 、startCall 、 endCall 、 volumeControl)、 --pct-appswitch <percent> (activity之间的切换)、 --pct-anyevent <percent>(任意事件)
 

3:约束选项

-p:指定有效的package(如不指定,则对系统中所有package有效),一个-p 对应一个有效package, 如:-p com.ckt -p com.ckt.asura; -c:activity必须至少包含一个指定的category,才能被启动,否则启动不了;
 

4:调试选项

--dbg-no-events:初始化启动的activity,但是不产生任何事件。 --hprof:指定该项后在事件序列发送前后会立即生成分析报告( 一般建议指定该项)。 --ignore-crashes:忽略崩溃 --ignore-timeouts:忽略超时 --ignore-security-exceptions:忽略安全异常 --kill-process-after-error:发生错误后直接杀掉进程 --monitor-native-crashes:跟踪本地方法的崩溃问题 --wait-dbg:直到连接了调试器才执行monkey测试。

eg:  adb shell monkey -p com.xy.android.junit -s 500 --throttle 100 --pct-touch 5 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\java_monkey_log.txt

参考文章:

http://blog.csdn.net/exlsunshine/article/details/22208857  (安装SDK 的镜像文件)

http://jingyan.baidu.com/article/7e440953d3446d2fc0e2efd5.html (ADT的下载和配置)

http://blog.csdn.net/xifeijian/article/details/8580309 (有关monkey测试工具的介绍)

http://www.cnblogs.com/lynn-li/p/5989034.html(monkey常用命令)

http://www.360doc.com/content/14/0814/19/1438920_401863695.shtml(monkey测试结果分析)

android应用程序monkey压力测试(模拟器或真机)的更多相关文章

  1. Android 如何添加一个apk使模拟器和真机都编译进去 m

    添加一个apk都需要将LOCAL_PACKAGE_NAME的值添加到PRODUCT_PACKAGES才行.而PRODUCT_PACKAGES一般在build/target/product/目录下的文件 ...

  2. Android Monkey压力测试

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试. 1为什 ...

  3. Android Monkey 压力测试 介绍

    Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上. Monkey会发送伪随机的用户事件流,适合对app做压力测试 阅读目录 ...

  4. Android Monkey压力测试使用

    一.Monkey简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送伪随机的用户事件流(点击.滑动.Application切换.横竖屏.应用关闭)实现对 ...

  5. Android Monkey压力测试(转)

    参考链接:https://www.cnblogs.com/yyh8/p/6707745.html Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Andr ...

  6. 转 Android Monkey压力测试使用

    转自:https://www.jianshu.com/p/c8844327f5e9 一.Monkey简介: Monkey是Android中的一个命令行工具,可以运行在模拟器里或者现实设备中,向系统发送 ...

  7. Android Monkey压力测试环境搭建及使用

    Android Monkey压力测试学习笔记 步骤:下载SDK -> 解压进入SDK Manager下载系统 -> 配置环境变量 -> 创建虚拟设备或连接真机 -> 进入命令模 ...

  8. Android Monkey压力测试介绍

    monkey:通过Monkey程序模拟用户触摸屏幕.滑动Trackball. 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常. Monkey的构架 Monkey的参数 Monke ...

  9. Monkey (压力测试)-移动端手机压力测试工具 monkey以及monkeyrunner

    4. Monkey (压力测试) 这个是Android提供的系统工具.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey测试是一种 ...

随机推荐

  1. Mysql查询正在运行的事务以及杀掉它

    查询 正在执行的事务:SELECT * FROM information_schema.INNODB_TRX 根据这个事务的线程ID(trx_mysql_thread_id): 可以使用mysql命令 ...

  2. [BZOJ5252][八省联考2018]林克卡特树lct

    bzoj(上面可以下数据) luogu description 在树上选出\(k\)条点不相交的链,求最大权值. 一个点也算是一条退化的链,其权值为\(0\). sol 别问我为什么现在才写这题 首先 ...

  3. Oracle联合查询

    select * from teacher--联合查询 --01.union (并集)select tno from teacher where tno>1080 union(select tn ...

  4. highlight.js 设置行号

    原文地址:highlight.js 设置行号 博客地址:http://www.extlight.com 一.背景 笔者在开发这套博客系统时使用 Editormd 作为 Markdown 编辑器,由于不 ...

  5. 使用C++生成1-33中的6个随机数,无重复

    生成1-33中的6个随机数,无重复 ------------------------------------------------------------------------   方法1.每生成 ...

  6. Form中的keypress事件不能用

    Form中的keypress事件不能用 编写人:CC阿爸 2015-4-8 近期在修改系统时,想给一画面增加一个组合键功能,但在form_keypress事件中加入代码,但无论如何也不能触发该动作. ...

  7. find 和 find_all 用法

    soup = BeautifulSoup(requests.get(url).text, 'html.parser') soup.find('span', class_='item_hot_topic ...

  8. 面试总结之MISC(操作系统,网络,数学,软件开发,测试,工具,系统设计,算法)

    操作系统 解释堆和栈的区别. 分配在堆的内存与分配在堆栈的内存有什么不同 分配在堆的内存要手动去释放 线程与进程的区别 多线程中栈与堆是公有的还是私有的 在多线程环境下,每个线程拥有一个栈和一个程序计 ...

  9. TCL列表

    列表是Tcl的基本可用数据类型之一.它是用于表示项目的有序集合.它可以包括不同类型的在同一列表的项目.此外,一个列表可以包含另一个列表. 需要注意的一个重要的事情是,列表表示为完全串并处理在需要时,形 ...

  10. C++11新特性介绍 01

    阅读目录 1. 概述 2. long long 类型 3. 列表初始化 4. nullptr 空指针 5. constexpr变量 6. constexpr函数 7. using类型别名 8. aut ...