安卓手机测试中几个批处理小脚本

来源:互联网 发布:eview编程软件下载 编辑:程序博客网 时间:2024/05/30 04:49
摘要: 在做android测试的时候,有时候写几个简单的批处理,能够对工作有事半功倍之效。 下面列举部分工作过程中遇到的命令,供有需要的朋友们参考。 增加一个新的常用脚本: @echo off echo ********************************** echo ***** 测试...

在做android测试的时候,有时候写几个简单的批处理,能够对工作有事半功倍之效。

下面列举部分工作过程中遇到的命令,供有需要的朋友们参考。

增加一个新的常用脚本:

复制代码
@echo offecho **********************************echo ***** 测试小工具---HaoChuang *****echo **********************************pauseadb wait-for-deviceadb devices:startecho "根据需要输入对应ID(1:安装;2:卸载;3:截图;4:导出日志;0:退出)"set /p str=请选择输入数字:if %str% == 1 goto install_app else (if %str% == 2 goto uninstall_app else (if %str% == 3 goto screenshot else (if %str% == 4 goto export_log else (if %str% == 0 goto exit )))) else ((echo "你的输入有误!" && (goto start))rem pauseset DIR=C:\Users\Haochuang\Desktopcd /d %DIR%:install_appadb install -r %DIR%\hao*.apkecho "1.货主端App已安装!"adb install -r %DIR%\truck*.apkecho "1.司机端App已安装!":uninstall_appadb uninstall com.haochuang.test1;echo "1.XXX pp卸载完成!"adb uninstall com.haochuang.app2;echo "1.XXX App卸载完成!":screenshotadb shell /system/bin/screencap -p /sdcard/screenshot.pngecho "1.截图完成!"adb pull /sdcard/screenshot.png %DIR%echo "将截图复制到电脑盘中":export_logadb logcat -v time > %DIR%\test.log:exitpause & exitrem ping 123.45.67.89 -n 1 -w 10000 > nul rem echo "没有找到devices,请检查设备是否连接成功"rem pause & exitrem 截图rem adb shell /system/bin/screencap -p /sdcard/screenshot.pngrem 将截图复制到电脑盘中rem adb pull /sdcard/screenshot.png E:\download 
复制代码

 

1.安装:

复制代码
@echo offecho 等待设备连接adb wait-for-deviceecho **********************************set input=%1echo 已连接if "%input%" neq "" (echo 安装 %input%adb install -r %input%echo %1% 安装完毕) else (for /r %%i in (*.apk) do (echo 安装 %%iadb install -r %%iecho  %%i 安装完毕))pause
复制代码

2.卸载:

复制代码
@echo offecho **********************************echo current path: %cd%set HAO01=co.truckno1.cargoset HAO02=com.yihaohuoche.truckadb wait-for-deviceadb uninstall %HAO01%echo "uninstall Success!"adb uninstall %HAO02%echo "uninstall Success!"pause
复制代码

3.抓日志

复制代码
@echo offecho **********************************echo *****  Test Log---HaoChuang  *****echo **********************************echo current path: %cd%%cd%\bin\adb.exe wait-for-device%cd%\bin\adb.exe logcat -v time > %cd%\files\test.logecho log export succ,path:echo %cd%\filespause & exit
复制代码

 

4.截图

复制代码
@echo offecho **********************************echo *****  ScreenShot---HaoChuang  ***echo **********************************echo current path: %cd%%cd%\bin\adb.exe wait-for-device%cd%\bin\adb.exe shell /system/bin/screencap -p /sdcard/cargo_screenshot.png%cd%\bin\adb.exe pull /sdcard/cargo_screenshot.png %cd%\filesecho "picture export succ,path:"echo %cd%\files
复制代码

 

 

 

用adb获得手机里面某个apk的应用信息、版本信息

 

adb shell dumpsys package com.examle.xxadb shell dumpsys 列出所有

用adb启动apk

adb shell am start -n haochuang.test/haochuang.test.TestActivity

 

 

点火熄火等:

复制代码
@echo offadb wait-for-deviceadb devices:startecho "根据需要输入对应ID(1:点火;2:熄火;3:唤醒;4:初始化;0:退出)"set /p str=请选择输入数字:if %str% == 1 goto acc_on else (if %str% == 2 goto acc_off else (if %str% == 3 goto wake_up else (if %str% == 4 goto init else (if %str% == 0 goto exit )))) else ((echo "你的输入有误!" && (goto start))rem pause:acc_onadb shell am broadcast -a tsd.event.system.acc_onrem pauserem & exitgoto start:acc_offadb shell am broadcast -a tsd.event.system.acc_offrem pauserem & exitgoto start:wake_upadb shell am broadcast -a tsd.command.WAKE_UPrem pauserem & exitgoto start:initadb shell am broadcast -a tsd.init.COMPLETErem pauserem & exitgoto start:exitpause & exitexit 0
复制代码

 

安装所有应用:

复制代码
@echo offecho 等待设备连接adb wait-for-deviceset input=%1echo 已连接if "%input%" neq "" (echo 安装 %input%adb install -r %input%echo %1% 安装完毕) else (for /r %%i in (*.apk) do (echo 安装 %%iadb install -r %%iecho  %%i 安装完毕))pause
复制代码

 

启动系统设置:

@echo offadb wait-for-deviceadb shell am start com.android.settings/.Settings

 

启动桌面应用:

@echo offadb wait-for-deviceadb shell am start -a android.intent.action.MAIN  -c android.intent.category.HOME

 

启动服务:

@echo off:loopadb wait-for-deviceadb shell am startservice -a com.tuyou.tsd.cardvr.service.VideoRec::ping 127.0.0.1 -n 10 > nul::goto loop

 

开始录制视频:

@echo offadb wait-for-deviceadb shell am broadcast -a tsd.event.cardvr.start_record

停止录制视频:

@echo offadb wait-for-deviceadb shell am broadcast -a tsd.event.cardvr.stop_record

 

auto test monkey:

复制代码
@set %repeat=0:BEGIN@set /a repeat=repeat+1@adb shell monkey --ignore-crashes --monitor-native-crashes -v 320000 > monkey_%repeat%.txt@ping -n 8 127.0>nul@adb reboot@ping -n 40 127.0>nul@goto BEGIN
复制代码

 

 

安装应用:

复制代码
@echo offecho ***********************************************echo ***** XXX设备端App安装工具---HaoChuang *****echo ***********************************************pauseadb devicesset DIR=E:\AutoBuild\Version_20150817cd /d %DIR%G:adb install -r %DIR%\TSD-Launcher*.apkecho "1.Launcher 已安装!"adb install -r  %DIR%\TSD-SystemSetting*.apkecho "2.设置 已安装!"adb install  -r %DIR%\TSD-VoiceAssistant*.apkecho "3.语音助手 已安装!"adb install  -r %DIR%\TSD-Update*.apkecho "4.更新 已安装!"adb install  -r %DIR%\TSD-CarDVR*.apkecho "5.行车记录 已安装!"adb install %DIR%\TSD-Nav*.apkecho "6.导航 已安装!"adb install  -r %DIR%\TSD-MUSIC*.apkecho "7.音频 已安装!"adb install  -r %DIR%\TSD-Podcast*.apkecho "8.播客 已安装!"adb install -r  %DIR%\TSD-News*.apkecho "9.新闻 已安装!"rem ping 123.45.67.89 -n 1 -w 10000 > nul rem echo "没有找到devices,请检查设备是否连接成功"pause & exit
复制代码

 

卸载应用:

复制代码
@echo off
echo ***********************************************
echo ***** XXX设备端App卸载工具---HaoChuang *****
echo ***********************************************
pause

adb uninstall com.test.hao;
echo "1.Launcher 已卸载!"

adb uninstall com.test.hao.settings;
echo "2.设置 已卸载!"

adb uninstall com.test.hao.voice;
echo "3.语音助手 已卸载!"

adb uninstall com.test.hao.updatesoft;
echo "4.更新 已卸载!"

adb uninstall com.test.hao.cardvr;
echo "5.行车记录 已卸载!"

adb uninstall com.test.hao.navigation;
echo "6.导航 已卸载!"

adb uninstall com.test.hao.audio;
echo "7.音频 已卸载!"

adb uninstall com.test.hao.podcast;
echo "7.播客 已卸载!"

adb uninstall com.test.hao.news;
echo "7.新闻 已卸载!"

rem ping 123.45.67.89 -n 1 -w 10000 > nul
rem echo "没有找到devices,请检查设备是否连接成功"
pause & exit
复制代码

 

在使用过程中,遇到可能需要点火熄火等操作,需要重复去敲adb shell命令,不如写成批处理,如下;

复制代码
@echo offadb wait-for-deviceadb devices:startecho # "根据需要输入对应ID(1:点火;2:熄火;3:唤醒;4:初始化;)"set /p str=请选择输入数字:if %str% == "1" goto acc_onif %str% == "2" goto acc_offif %str% == "3" goto wake_upif %str% == "4" goto init:acc_onecho "开始点火"adb shell am broadcast -a tsd.event.system.acc_onecho "点火完成"pause & exit:acc_offadb shell am broadcast -a tsd.command.WAKE_UPpause & exit:wake_upadb shell am broadcast -a tsd.command.WAKE_UPpause & exit:initadb shell am broadcast -a tsd.init.COMPLETEpause & exitexit 0
复制代码

 

截图:

复制代码
@echo offrem ok----------------adb shell /system/bin/screencap -p /sdcard/screenshot.pngadb pull /sdcard/screenshot.png C:\Users\HaoChuang\Desktop\rem ok----------------rem ================================rem adb shell /system/bin/screencap -p /sdcard/screenshot.pngrem -------------1--------------rem 方法一:设置变量rem adb shell aa = date '+%m%d%H%M%S'rem adb shell mv /sdcard/screenshot.png /sdcard/screenshot_$aa.pngrem -------------1--------------rem -------------2--------------rem 方法一:直接修改rem adb shell /system/bin/screencap -p /sdcard/screenshot.pngrem adb shell mv /sdcard/screenshot.png /sdcard/screenshot_`date '+%m%d%H%M%S'`.pngrem remn adb pull /sdcard/screenshot_`date '+%m%d%H%M'`*.png C:\Users\HaoChuang\Desktop\rem -------------2--------------rem ================================
复制代码

 

如上,测试可用。

 

附录:

路径相关:参考:http://blog.csdn.net/mangmang2012/article/details/7048945

复制代码
1. .bat文件中获取bat文件所在目录的参数为 %~dp0%~dp0 “d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录cd是转到这个目录,不过我觉得cd /d %~dp0还好些选项语法:~0 -删除任何引号("),扩充%0%~f0 -将%0扩充到一个完全合格的路径名(“f”是file,即文件)%~d0 -仅将%0扩充到一个驱动器号%~p0 -仅将%0扩充到一个路径%~n0 -仅将%0扩充到一个文件名(“n”是name文件名)%~x0 -仅将%0扩充到一个文件扩展名%~s0 -扩充的路径只含有短名(“s”为Short,短的)%~a0 -将%0扩充到文件的文件属性(“a”为attribute,即属性)%~t0 -将%0扩充到文件的日期/时间(“t”time)%~z0 -将%0扩充到文件的大小(Size大小)%~$PATH:0 -查找列在路径环境变量的目录,并将%0扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串可以组合修饰符来得到多重结果:%~dp0 -仅将%0扩充到一个驱动器号和路径%~nx0 -仅将%0扩充到一个文件名和扩展名%~fs0 -仅将%0扩充到一个带有短名的完整路径名%~dp$PATH:0 -查找列在路径环境变量的目录,并将%I扩充到找到的第一个驱动器号和路径。%~ftza0 -将%0扩充到类似输出线路的DIR%0为当前批处理文件如果0换成1为第一个文件,2为第2个****************************************************%0代指批处理文件自身%~d0是指批处理所在的盘符%~dp0是盘符加路径cd %~dp0就是进入批处理所在目录2.添加永久环境变量用reg add 向HKLM\system\controlset001\control\session manager\environment添加变量即可如:添加添加值为hedalixin变量NAMEreg add "HKLM\system\controlset\control\session manager\environment" /v NAME /t REG_SZ /d hedalixin
复制代码

 

 ×××××××××××××××××××××××

 杀进程类:

#!/bin/bashPROID=`ps -fe|grep 包名|awk '{print $2}' | head -n 1`kill -9 $PROID

两步操作:

adb shell ps -fe|grep uiautomator获取到PID之后adb shell kill $PID$

 

×××××××××××××××××××××××××

在控制台输入命令$adb shell pm

可以看到adb shell pm的相关用法,详细信息请自己看输出

要看一个apk文件的相关信息最简单实用的方法是:

aapt dump badging [yourapp.apk]

如果只是想查看手机上应用的packageName,则输入命令:

adb shell pm list packages

如果想知道应用对应的apk文件在手机上的安装位置则可以在上面的命令后加-f参数

adb shell pm list packages -f

×××××××××××××××××××××××××

其他常见adb命令:http://www.cnblogs.com/SharkBin/p/3993231.html

 

更多,待继续补充。

转载请注明出处:http://www.cnblogs.com/haochuang/ 8年IT工作经验,5年测试技术与管理,2年产品与项目管理,曾参与过云计算\云存储\车联网产品研发工作; 业余自媒体人,有技术类垂直微信公众号;如有招聘或求职方面需求,请Mail to uetest@qq.com ;或通过 QQ:363573922 微博:@念槐聚 联系;
0 0