好久以前搞过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. 爬虫存储介质之MongoDB存储

    常用数据库 mongoDB4.0: 下载:https://www.mongodb.com/ windows安装.Linux安装见: https://www.runoob.com/mongodb/mon ...

  2. SORRY_FOR_MY_LIFE

    人生最大的痛苦不在于真正的痛苦, 而是没有确切的人生方向, 我们总是想的很多, 但是最后才发现, 我们一直拿自己的弱点与别人的长处竞争, 因为,我们总是得不到自己想要的, 但是最多的是对于没有目标的人 ...

  3. LeetCode 278. 第一个错误的版本(First Bad Version)

    278. 第一个错误的版本 LeetCode278. First Bad Version 题目描述 你是产品经理,目前正在带领一个团队开发新的产品.不幸的是,你的产品的最新版本没有通过质量检测.由于每 ...

  4. myeclipse 相关问题

    [如何设置 Tab 键为四个空格] https://blog.csdn.net/QQ826688096/article/details/90543252

  5. 剑指offer48:不用加减乘除做加法

    1 题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 2 思路和方法 位运算符:两个数异或(^)[1^0=1, 1^1=0, 0^0=0, 0^1=1, 5^5 ...

  6. 机器学习之Bagging与随机森林笔记

    集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能.这对“弱学习器”尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的,而基学习器有时也被直接称为弱学习器.虽然从理论上来 ...

  7. Scratch 少儿编程之旅(四)— Scratch入门动画《小猫捉蝴蝶》(中)

    本期内容概括: 了解Scratch的更多操作,用[无限循环]来更改“小猫”角色的代码: 添加[碰到边缘就反弹]积木块指令: 更改角色的旋转模式和造型,让”小猫”走路更生动: 两种[循环]语句的区别: ...

  8. (超实用)前端地址栏保存&获取参数,地址栏传输中文不在乱码

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://www.cnblogs.com/autoXingJY/p/115965 ...

  9. redis有序集合数据类型---sortedset

    一.概述 redis有序集合和集合一样,也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数. redis正式通过分数来为集合中的重圆进行从小到大的 ...

  10. 翻译-在10行代码之内创建容器化的.net core应用

    本文翻译自Hans Kilian的文章 Creating a containerized .NET core application in less than 10 lines of code htt ...