欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > 自动化monkey测试--批处理+任务计划

自动化monkey测试--批处理+任务计划

2025/6/20 0:11:04 来源:https://blog.csdn.net/weixin_46281518/article/details/148693025  浏览:    关键词:自动化monkey测试--批处理+任务计划

一、思路

利用批处理bat执行monkey测试、生成monkey日志和applog日志,结束monkey测试后,再将monkey日志和applog日志导出保存;

二、步骤

1、需要配置 config.conf文件(新建txt文本填写以下内容)

config.conf
[appinfo]
appCnName=vss
appEnName=vss
appversion=V2.2.1.01
packageName=com.howentech.com

2.编写批处理脚本--打印monkey测试的基本信息 (再新建txt文本依次填写以下内容)

@ECHO OFF
ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::
ECHO.::             vss安卓appMonkey测试         ::
ECHO.::               作者:rebort            ::
ECHO.::               版本  V2.2.0                  ::
ECHO.::            目前进行:第一次策略测试         ::
ECHO.:::::::::::::::::::::::::::::::::::::::::::::::::

3.编写批处理脚本--读取配置文件,如果配置文件不存在,则退出,如果存在,则获取配置文件信息;

IF NOT EXIST %~dp0\config.conf GOTO EXIT
ECHO.[ INFO ] 准备Monkey测试
ECHO.[ INFO ] 读取config.conf中信息REM 从配置文件中获得包名
FOR /F "tokens=1,2 delims==" %%a in (config.conf) do (    
IF %%a == packageName SET packageName=%%b    
IF %%a == appEnName SET appEnName=%%b    
IF %%a == appversion SET appversion=%%b
)

4.编写批处理脚本--获取并设置测试时间

REM 获取日期,格式为:202506016
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%

5.编写批处理脚本--以当前测试时间为准,创建当天目录以及app日志保存目录

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%
)

6.编写批处理脚本--获取手机信息,显示并保存

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.infoECHO.[ 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"

7.编写批处理脚本--清空手机的日志log信息

ECHO.
ECHO.[ Exec ] 使用Logcat清空Phone中log
adb logcat -cREM 
ECHO.[ INFO ] 暂停2秒...ping -n 2 127.0.0.1>nul
ECHO.

8.编写批处理脚本--开始执行monkey命令

ECHO.[ Exec ] adb shell monkey -p %packageName% -s %c_time%  --throttle 500 --randomize-throttle --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --pct-touch 30 --pct-motion 20 --pct-trackball 30 --pct-pinchzoom 20 -v -v -v 20000adb shell monkey -p %packageName% -s %c_time% --throttle 500 --randomize-throttle --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --pct-touch 30 --pct-motion 20 --pct-trackball 30 --pct-pinchzoom 20 -v -v -v 20000>%logdir%\%logfilename%_monkey.log

9.编写批处理脚本--测试完毕,使用logcat导出日志

ECHO.[ INFO ] 执行Monkey命令结束
ECHO.
ECHO.
ECHO.[ Exec ] 使用Logcat导出日志
adb logcat -d >%logdir%\%logfilename%_logcat.log
REM ECHO.
REM ECHO.[ Exec ] 导出traces文件REM 
adb shell cat /data/anr/traces.txt>%logfilename%_traces.log

10.在window控制面板找到任务计划程序

1)在程序库,创建基本任务,命名为monkeytest 
2)触发器选择每天,发生一次,时间任意 
3)操作选择启动程序  
4)启动程序:选择bat批处理所在文件夹的位置,比如:E:\monkey\monkeytest.bat,起始位置选择:E:\monkey;  
5)完成后,进入这个基本任务,点击触发器,编辑其属性,修改其重复任务间隔,持续是无限期;

11.任务计划自动触发monkey测试,开始执行monkey测试并直到monkey测试完毕;

12.用Monkey_Log分析.bat分析monkeylog日志,统计测试结果,汇兑错误日志,分析错误日志,发送给开发,测试完毕;

三、总结

1)只能支持单设备,不支持多设备同时运行;

2)汇兑测试结果,只能人工统计,没有email邮件测试结果的功能;

3)支持多条测试策略先后进行,但无法保证手机的网络环境是否开启wifi,需要在测试脚本增加黑名单设置的执行;

4)实现自动触发monkey测试,但需要事前将手机连接电脑且安装好被测app;

5)实现自动收集被测手机信息、monkey日志和applog日志;

6)开发反馈,大部分闪退问题有monkey日志就足以定位问题,但个别问题,比如内存泄漏,就需要app日志文件辅助,但这文件过大,内容过多,需要过滤无用信息才能定位问题,建议我们做此优化;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词