上文对monkey的简单应用做了简单的整理,本篇就针对monkey的日志收集以及基础信息采集进行整理。在此之前我们就所需要用到的.bat先进行归纳。
我们要做到的功能有哪些,其中要用到那些语法,我们先列出来功能,在通过功能实现我们要用到的方法。
一,要在每次运行的时候获取到使用机器的基本参数:品牌,型号,系统。
二,为了保证运行稳定,需要将软件杀掉之后
三,运行脚本,将monkey操作日志保存下来
四,清空logcat 之后保存运行monkey过程中的logcat文件
1.首先我们来获取手机的基本信息
REM 获得手机信息,显示并保存
adb shell cat /system/build.prop>phone.info
FOR /F "tokens=1,2 delims==" %%a in (phone.info) do (
IF %%a == ro.build.version.release SET androidOS=%%b
IF %%a == ro.product.model SET model=%%b
IF %%a == ro.product.brand SET brand=%%b
)
2.杀掉要运行的软件
adb shell am force-stop %packageName%
3.运行monkey 并保存日志
adb shell monkey -v -p com.package.name --pct-syskeys 0 500 >%logdir%\%logfilename%_monkey.log
4.清空logcat 之后保存运行monkey过程中的logcat文件(其中ping本地是为了暂停)
adb logcat -c
ping -n 2 127.0.0.1>null
adb logcat -d >%logdir%\%logfilename%_logcat.log
整个基础流程基本上就可以了那我们就直接上脚本进行一个说明吧:
@ECHO OFF
ECHO.[ INFO ] 准备Monkey测试
REM 设定软件基础信息
SET packageName="com.package.name"
SET appEnName="testlong"
SET appversion="1.0"
REM 获取日期,格式为:20180123
SET c_date=%date:~0,4%%date:~5,2%%date:~8,2%
REM 获取得小时,格式为:24小时制,10点前补0
SET c_time=%time:~0,2%
IF /i %c_time% LSS 10 (
SET c_time=0%time:~1,1%
)
REM 组合小时、分、秒,格式为: 131420
SET c_time=%c_time%%time:~3,2%%time:~6,2%
REM 将当运行时间点做为日志文件名
SET logfilename=%c_date%%c_time%
REM 创建当天日期目录及测试APP日志保存目录
IF NOT EXIST %~dp0\%c_date% md %~dp0\%c_date%
SET logdir="%~dp0\%c_date%\%appEnName%%appversion%"
IF NOT EXIST %logdir% (
ECHO.[ Exec ] 创建目录:%c_date%\%appEnName%%appversion%
md %logdir%
)
REM 获得手机信息,显示并保存
adb shell cat /system/build.prop>phone.info
FOR /F "tokens=1,2 delims==" %%a in (phone.info) do (
IF %%a == ro.build.version.release SET androidOS=%%b
IF %%a == ro.product.model SET model=%%b
IF %%a == ro.product.brand SET brand=%%b
)
del /a/f/q phone.info
ECHO.[ INFO ] 读取Phone信息
ECHO. 手机品牌: %brand%
ECHO. 手机型号: %model%
ECHO. 系统版本: Android %androidOS%
ECHO.Phone信息>"%logdir%\%logfilename%_%model%.txt"
ECHO.手机品牌: %brand%>>"%logdir%\%logfilename%_%model%.txt"
ECHO.手机型号: %model%>>"%logdir%\%logfilename%_%model%.txt"
ECHO.系统版本: Android %androidOS%>>"%logdir%\%logfilename%_%model%.txt"
ECHO.
ECHO.[ Exec ] 使用Logcat清空Phone中log
adb logcat -c
REM ECHO.[ INFO ] 暂停2秒...
ping -n 2 127.0.0.1>nul
ECHO.
ECHO.[ INFO ] 开始执行Monkey命令
REM ECHO.[ INFO ] 强制关闭准备测试的APP
adb shell am force-stop %packageName%
ECHO.[ Exec ] adb shell monkey -p %packageName% -s %c_time% --throttle 500 -v -v -v 100
adb shell monkey -p %packageName% --pct-syskeys 0 -s %c_time% --throttle 500 -v -v -v 100>%logdir%\%logfilename%_monkey.log
ECHO.[ INFO ] 执行Monkey命令结束
ECHO.
ECHO.[ Exec ] 使用Logcat导出日志
adb logcat -v time -d >%logdir%\%logfilename%_logcat.log
:EXIT
ECHO.
ECHO.[ INFO ] 请按任意键关闭窗口...
该文件保存为 .bat 文件后双击就可以运行 运行完成后会生成3个文件其中包含:
20180123114126_logcat.log 保存logcat 日志
20180123114126_monkey.log 保存monkey 日志
20180123114126_t3.txt 保存设备基本信息(其中内容后期可更具需要做调整,t3为设备名)
到这来monkey运行结果基本上就完了,接下来的文章中我将对日志的自动化分析,以及后续需要拓展性能数据获取及数据分析做进一步的探索。