好久以前搞过monkey,最近看了一个monkey+日志录制的一个分享,准备自己也搞一下。

monkey的doc文档:

https://developer.android.google.cn/studio/test/monkey.html

adb查看包名/Activity名

adb shell "logcat | grep START"
adb shell dumpsys activity | find “mFocusedActivity”
adb shell pm list packages
adb shell dumpsys window | findstr mCurrentFocus

aapt也可以查看,参考 https://www.cnblogs.com/lynn-li/p/5885001.html

命令行中切换到aapt.exe目录,执行命令:aapt dump badging F:\QQyinle_439.apk ,注意,apk路径中一定不能有空格。

把日志存储在特定的文件中,在文件中通过搜索关键字,得到包名及活动名,这里我把结果输出到F盘的log.txt中:

aapt dump badging F:\QQyinle_439.apk > F:\log.txt

到此,已经获取了app的package名和activity。下面,我们真正的启动app。在原有cmd运行窗口,输入命令:

device.startActivity(component=" com.tencent.qqmusic/.activity.AppStarterActivity ")

基本命令介绍:

#-v 事件数量 -v个数越多,时间日志越详细,最多3个
# adb logcat 获取当前应用package名称 #adb shell monkey -v 100
# -f 执行对应的monkey脚本
#adb shell monkey -f /path
# --throttle time
#adb shell monkey --throttle 100
#触摸事件百分比 --ptc-touch
#adb shell monkey --ptc-touch 30
#--ptc-motion 动作down+up --ptc-trackball 随机移动+点击
#--ptc-nav 导航事件 up/down/left/right --ptc-majornav 主要导航事件 ,home back menu
#--ptc-syskeys 系统按键 home/back/call/endCall/volume
#--ptc-appswitch 启动应用事件 startActivity()
#--ptc-anyevent 其他类型事件 #-p 限定在包中,可选多个包,每个包名前需要加-p ,所有包属于一个app,否则只在第一个app里面的包里执行
#adb shell monkey -p com.patech.testApp 1000 -p com.patech.zhizhitest 1000 --throttle 1000 --ptc-trackball 100 #-c 一个或多个main-category参数,即android的activity的类型,不指定则选择Intent.category_Launcher和Intent.category_monkey
#--hprof 生成报告
#adb shell monkey --hprof 100
#--ignore-crashes 无视crash
#--ignore-timeouts 无视超时
#--ignore-security-exceptionis 无视权限错误
#--monitor-native-crashes 监视并报告Android系统native code崩溃事件

  

写了一个bat脚本来执行monkey并记录各种日志

@echo off
rem edit by zhzh.yin
rem 设置放置测试脚本的目录,测试package名称,操作事件总数,思考事件
set FILE_PATH=C:\Users\user\Desktop\testReport
set PACKAGE_NAME=com.android.calendar
set OPERATION_NUM=1000
set THINK_TIME=1000
set ADB_PATH=D:\android_sdk\platform-tools
set ADB_DIR=D:
rem 设置时间百分比,总和需<100,当前设置为50%触摸事件,20%动作事件(down and up),20%轨迹球事件(随机移动+点击)
set TOUCH_PER=50
set MOTHION_PER=20
set TRACKBALL_PER=20
cd %ADB_DIR%
cd %ADB_PATH%
adb devices
adb logcat -c -b main -b events -b radio -b system
rem --ptc-nav 导航事件 up/down/left/right
rem --ptc-majornav 主要导航事件 ,home back menu
rem --ptc-syskeys 系统按键 home/back/call/endCall/volume
rem --ptc-appswitch 启动应用事件
rem --ptc-anyevent 其他类型事件
set NOW_TIME_HH=%time:~0,2%
if "%NOW_TIME_HH%" lss "10" (set NOW_TIME_HH=0%time:~1,1%) else (set NOW_TIME_HH=%time:~0,2%)
for /f %%i in ('powershell -c "Get-Date -uformat '%%Y%%m%%d'"') do (
set "Today=%%i"
)
set NOW_TIME=%Today%%NOW_TIME_HH%%time:~3,2%%time:~6,2%
cd %FILE_PATH%
echo create the folder
rem mkdir %NOW_TIME%
md %FILE_PATH%\%NOW_TIME%
echo the name of folder is %NOW_TIME%
cd %ADB_DIR%
cd %ADB_PATH%
adb shell monkey -p %PACKAGE_NAME% -v -v %OPERATION_NUM% --throttle %THINK_TIME% --ptc-touch %TOUCH_PER% --ptc-motion %MOTHION_PER% --ptc-trackball %TRACKBALL_PER% 1>%FILE_PATH%\%NOW_TIME%\monkey_standard.txt 2>%FILE_PATH%\%NOW_TIME%\monkey_error.txt
echo the monkey log is saved in %FILE_PATH%\%NOW_TIME%,and the fileName is begin with monkey
adb logcat -v time *:E -d >%FILE_PATH%\%NOW_TIME%\logcat.txt
echo the logcat log is saved in %FILE_PATH%\%NOW_TIME%,and the fileName is begin with logcat
pause

  

Android测试-monkey的更多相关文章

  1. android 测试 Monkey 和 MonkeyRunner 的使用

    一.Monkey的使用 Monkey使用起来比较简单,简而言之就是模拟手机点击效果,随机发送N个点击动作给手机,主要对于程序的稳定和承受压力的测试. 1.首先连接上你的手机或者启动模拟器: 2.运行C ...

  2. Android APP压力测试-Monkey

    压力测试-Monkey学习 Monkey测试特点 什么是Monkey test? 如其名,像猴子一样,虽然什么都不懂,但是可以乱点一通,可以理解为压力测试.在规定的时间或次数范围内做任何随机的操作,随 ...

  3. Android软件测试Monkey测试工具

    前言: 最近开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括android测试框架.CTS.Monkey.Monkeyrunner.benchmark.其 ...

  4. 【Android测试】【第七节】Monkey——源码浅谈

    ◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4713466.html 前言 根据上一篇我们学会了Monke ...

  5. 【Android测试】【第六节】Monkey——认识和使用

    ◆版权声明:本文出自carter_dream的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/4688880.html 自动化工具 接触安 ...

  6. android 自动化压力测试-monkey 1 实践

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

  7. Android 使用monkey自动测试

    很简单的一个monkey使用流程: 首先创建一个monkey脚本test.txt,例如一个简单的反复测试拍照功能的脚本: # Start of Script type= user count= 49 ...

  8. android之monkey测试

    本文同时发表于本人个人网站 www.yaoxiaowen.com monkey测试算是android自动化测试当中最简单的一种工具了.虽然简单,不过对于测试app的稳定健壮,减少崩溃还是比较有用的.所 ...

  9. monkey测试===Android测试工具Monkey用法简介(转载)

    Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中.它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等),实现对正在开发的应用程序进行压力测试.Monkey ...

随机推荐

  1. 最近邻与K近邻算法思想

    在关于径向基神经网络的一篇博文机器学习之径向基神经网络(RBF NN)中已经对最近邻思想进行过描述,但是写到了RBF中有些重点不够突出,所以,这里重新对最近邻和K近邻的基本思想进行介绍,简洁扼要的加以 ...

  2. JIRA+JIRA Agile敏捷项目管理工具

    jira插件下载地址 http://www.confluence.cn/pages/viewpage.action?pageId=1671327 下载GreenHopper插件 安装Jira-agil ...

  3. ROS中的通信机制

    http://www.ros.org/core-components/ Communications Infrastructure At the lowest level, ROS offers a ...

  4. idea 默认全局配置maven,避免每次新建项目都需要指定自己的maven目录

      版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/qq_28624243/article/details/84199937 File->Oth ...

  5. 1.IO的演进

      1.Java IO 演进之路 本文围绕着一下几个问题 1.Java 中 BIO.NIO.AIO 之间的区别及应用场景. 2.阻塞(Block)与非阻塞(Non-Block)区别. 3.同步(Syn ...

  6. Request部分知识点小结

    HTTP: * 概念:Hyper Text Transfer Protocol 超文本传输协议 * 传输协议:定义了,客户端和服务器端通信时,发送数据的格式 * 特点: 1. 基于TCP/IP的高级协 ...

  7. BBS项目架构

    数据库设计 用户表(用的是auth_user那张表,通过自定义表继承AbstractUser) phone 电话 avatar 头像 create_time 创建时间#外键 blog 一对一个人站点表 ...

  8. C++语言动态创建对象

    焦头烂额的考试月终于过去了,终于有时间能停下来思考记录一下这一个月学过的东西,首先先总结一下,在自己仿写魂斗罗游戏时遇见的问题之一,人物在移动的时候如何去判断什么时候掉入水中显示水中画面,什么时候敌人 ...

  9. hdu 1075 map的使用 字符串截取的常用手段 以及string getline 使用起来的注意事项

    首先说字符串的截取套路吧 用坐标一个一个的输入 用遍历的方式逐个去检查字符串中的字符是否为符合的情况 如果是的话 把该字符放入截取string 中 让后坐标前移 如果不是的话 截取结束 坐标初始化 然 ...

  10. mysql 系统变量

    show variables; ---------------------------------+-------------------------------------------------- ...