#1.导入模块
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
#2.连接当前设备,并返回一个Monkey Device对象
device=MonkeyRunner.waitForConnection()
#3.安装一个Android包
device.installPackage('*.apk')
#4.启动要测试apk的应用界面,前面是包名,后面是activity名
device.startActivity(component="com.tencent.mobileqq/com.tencent.mobileqq.activity.SplashActivity")
'''
使用android自动化测试工具monkeyrunner启动应用时,需要填写被测程序的包名和启动的Activity,以下有两种查看应用包名package和入口activity名称的方法:
方法一:使用aapt //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下
1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging E:\apk\es3.apk
2.运行后的结果中以下两行分别是应用包名package和入口activity名称
package: name=’com.estrongs.android.pop’
launchable-activity: name=’com.estrongs.android.pop.view.FileExplorerActivity’
注:在android sdk目录搜索可以找到aapt.exe,如果没有可以下载apktool。
方法二:查看AndroidManifest.xml
1.使用apktool反编译app:apktool.bat d es3.apk E:\apk\es
2.打开AndroidManifest.xml
manifest节点的package属性值是应用的包名:
查找android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性既是入口activity名称,如下:
tyle/Theme.NoTitleBar” android:label=”@string/app_name” android:name=”com.estrongs.android.pop.view.FileExplorerActivity”>
'''
#5.截图
result = device.takeSnapshot()
result.writeToFile('C:\\Users\\Martin\\Desktop\\test.png','png')
#6.时延(秒)
MonkeyRunner.sleep(3)
#7.滑动屏幕(Python脚本)
#参数依次是开始,结束,持续时间步骤 for i in range(1,70):device.drag(end,start,0.1,10)MonkeyRunner.sleep(1)
for i in range(1,70):device.drag(start,end,0.1,10)
#8.触击屏幕:
device.touch(94,34,'DOWN_AND_UP')
#9. 执行adb shell命令:
device.shell(“input text goup01”)
'''
例:按下OK键
device.press(‘KEYCODE_DPAD_CENTER’,‘DOWN_AND_UP’)
相应的按键对应的名称如下:
home键:KEYCODE_HOME
back键:KEYCODE_BACK
send键:KEYCODE_CALL
End键:KEYCODE_ENDCALL
上导航键:KEYCODE_DPAD_UP
下导航键:KEYCODE_DPAD_DOWN
左导航:KEYCODE_DPAD_LEFT
右导航键:KEYCODE_DPAD_RIGHT
ok键:KEYCODE_DPAD_CENTER
上音量键:KEYCODE_VOLUME_UP
下音量键:KEYCODE_VOLUME_DOWN
power键:KEYCODE_POWER
camera键:KEYCODE_CAMERA
menu键:KEYCODE_MENU
'''
MonkeyRunner的录制和回放
monkeyrunner的源代码可以在Android源代码里找到,monkeyrunner源代码里有个scripts文件夹,里面有monkey_recorder.py和monkey_playback.py两个python文件,这两个文件就是用来录制和回放的~!
MonkeyRunner的API