好久以前搞过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. c# 基础类型探索

    一.前言 本章节主要是探索 C# 的基本类型,一直以来我本人常用都是 int .double.bool.decimal.string 这五个类型,其对其它类型没有认真了解过.只是以前在学习的时候背了些 ...

  2. Tomcat中不能通过访问自己IP,但可以通过localhost/127.0.0.1访问

    一.问题如下:局域网内,自己机器部署了一个tomcat应用,在本机上可以通过如下方式访问引用.  http://localhost:8080/xxxx http://127.0.0.1:8080/xx ...

  3. python 之 并发编程(进程池与线程池、同步异步阻塞非阻塞、线程queue)

    9.11 进程池与线程池 池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型 池子内什么时候装线程:并发的任务属于I ...

  4. 网页调试js时,如何知道某个事件对应哪段js代码?

    有时候我们需要知道某个事件对应的js代码,比如点击一个div元素时,出现下拉框,我想知道这个功能对应的js代码,那就可以按下图操作: 勾选click事件,重新运行,那么就会在每个click事件那里设置 ...

  5. 模板模式(Template Pattern)

    模板模式(Template Pattern) -- 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. ...

  6. hdu 3265 第一类斯特林数

    先和第二类做一个对比 第一类Stirling数是有正负的,其绝对值是包含n个元素的集合分作k个环排列的方法数目.递推公式为, S(n,0) = 0, S(1,1) = 1. S(n+1,k) = S( ...

  7. LINUX CGROUP总结

    简介: Linux CGroup全称Linux Control Group, 是Linux内核的一个功能,用来限制,控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等).这个项目最早是由Go ...

  8. kafka的生产者配置以及发送信息的三种方式

    1.Fire-and-forget 这种方式是不管发送成功与否,客户端都会返回成功.尽管大多数的时候Kafka 在发送失败后,会自己重新自动再一次发送消息,但是也会存在丢失消息的风险 Producer ...

  9. django.http.response中HttpResponse 子类

    HttpResponse的子类 Django包含许多处理不同类型的HTTP请求的 HttpResponse 子类.像 HttpResponse 一样,这些类在 django.http 中. HttpR ...

  10. vue复制textarea文本域内容到粘贴板

    vue实现复制内容到粘贴板   方案:找到textarea对象(input同样适用),获取焦点,选中textarea的所有内容,并调用document.execCommand("copy&q ...