优点
缺点
脚本分为两部分,头文件和正文。
#头文件
type= raw events
count= 1
speed= 1.0
# 正文
start data >>
LaunchActivity(pkg_name, cl_name)
获取应用包名和入口使用到了appt工具,首先需要配置它的环境变量。
# 编辑.bash_profile 添加appt环境变量
vim ~/.bash_profile
# appt路径在本机sdk/build-tools/版本号/
export PATH=$PATH:~/Library/Android/sdk/build-tools/33.0.0
# 刷新文件
source ~/.bash_profile
# 使用aapt工具解析apk包获取应用包名和入口
# aapt工具在sdk中,如下路径。
cd /Users/edy/Library/Android/sdk/build-tools/33.0.0
# 使用aapt工具获取应用包名和入口
aapt dump badging apk路径/apk包名.apk
例子:aapt dump badging /Users/edy/Documents/temp/apptest.apk
# 解析内容如下
# package键值就是包名
# launchable-activity键值就是入口
package: name='com.apptest.test' versionCode='300' versionName='3.0.0' platformBuildVersionName='11' platformBuildVersionCode='30' compileSdkVersion='30' compileSdkVersionCodename='11'
sdkVersion:'21'
targetSdkVersion:'30'
...
...
...
launchable-activity: name='com.apptest.tset.LoginActivity' label='' icon=''
点击Android的设置–>开发者选项–>打开指针位置 显示当前操作的xy轴坐标
新建一个txt文件,使用Monkey提供的api编写脚本。示例如下
#头文件
type= raw events
count= 1
speed= 1.0
# 正文
start data >>
# 杀掉应用进程
RunCmd(am force-stop com.diandong.toast)
# 启动应用
LaunchActivity(com.diandong.toast, com.diandong.toast.merchant.LoginActivity)
# 等待8秒
UserWait(8000)
# 点击
Tap(379,187)
# 杀掉应用进程
RunCmd(am force-stop com.diandong.toast)
# 将文件放到手机
adb push 本地monkey脚本 /data/local/tmp
# 运行文件
adb shell monkey -f 手机文件地址/文件名称 运行次数
# 运行monkey参数
-p 指定运行的应用apk包名
-v 日志级别,一共有三个级别分别对应三个-v
-s 用于指定伪随机数生成器的seed值,如果seed相同,则两次Monkey测试所产生的事件序列也相同的。
--throttle<毫秒> 用于指定用户操作(即事件)间的时延,单位是毫秒
-f 指定monkey脚本
日志保存到文件 >日志文件名称
#示例
adb shell monkey -f 手机monkey脚本 -v -v -v 10 > monkey.log
monkey输出日志共输出三个文件
输出日志格式如下
adb shell monkey 运行次数 1>./monkey_info.txt 2>./monkey_error.txt|logcat -v time >./logcat_info.txt
# '1'表示输出monkey正常日志到文件
# '2'表示输出monkey错误日志到文件
# logcat表示输出adb的日志到文件
# 创建monkey脚本存放文件夹,连接上Android设备。
adb shell
cd /sdcard
mkdir monkey_script
# monkey脚本放到Android设备
adb push ./addOrder_cancelOrder_pos_3.0.0.txt /sdcard/monkey_script/
# 运行脚本
adb shell monkey -f /sdcard/monkey_script/addOrder_cancelOrder_pos_3.0.0.txt -v -v -v 1 1>/Users/edy/Documents/temp/monkey_info.txt 2>/Users/edy/Documents/temp/monkey_error.txt |adb logcat -v time >/Users/edy/Documents/temp/logcat_info.txt