使用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属性值是应用的包名:<manifest package=”com.estrongs.android.pop”>
查找android.intent.action.MAIN和android.intent.category.LAUNCHER对应的activity,该activity对应的android:name属性既是入口activity名称,如下:
<activity android:theme=”@*android tyle/Theme.NoTitleBar” android:label=”@string/app_name” android:name=”com.estrongs.android.pop.view.FileExplorerActivity”>
<intent-filter>
<action android:name=”android.intent.action.MAIN” />
<category android:name=”android.intent.category.LAUNCHER” />
</intent-filter>
</activity>
android.intent.action.MAIN决定应用程序最先启动的Activity
android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里
1. monkeyrunner的位置
学习monkeyrunner的童鞋们应该都有自己安装的android sdk环境,而monkeyrunner的工具位于android sdk/tools/monkeyrunner.bat文件
2.如何快速的在命令行打开monkeyrunner
将android sdk/tools目录加入到环境变量的path中
3.先运行http://developer.android.com/tools/help/monkeyrunner_concepts.html官网上的例子程序
注:monkeyrunner只是一组API,需要使用python脚本去调用
分析:program.py文件
点击(此处)折叠或打开
- # Imports the monkeyrunner modules used by this program
- from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
- import time
-
- # Connects to the current device, returning a MonkeyDevice object
- device = MonkeyRunner.waitForConnection() #连接设备
-
- # Installs the Android package. Notice that this method returns a boolean, so you can test
- # to see if the installation worked.
- device.installPackage('./360explorer-4.2.8-0910.4.apk') #安装apk包,./表示该包和monkeyrunner.bat在同一个目录
-
- package = 'com.qihoo.explorer' #apk包名
- activity = 'com.qihoo.explorer.HomeActivity' #apk的activity名称, 包名和anctivity名称可以通过aapt命令获取
- runComponent = package + '/' + activity
-
- device.startActivity(component=runComponent) #启动应用程序
- device.press('KEYCODE_MENU','DOWN_AND_UP') #KEYCODE_MENU表示菜单键,打开菜单
- time.sleep(10) #暂停10秒
- result =device.takeSnapshot() #截图
- result.writeToFile('./shot1.png','png') #将截图存放到和monkeyrunner.bat同一个目录下的shot1.png中
命令行下执行monkeyrunner program.py
提示错误如下:
Can't open specified script file
Usage: monkeyrunner [options] SCRIPT_FILE
-s MonkeyServer IP Address.
-p MonkeyServer TCP Port.
-v MonkeyServer Logging level (ALL, FINEST, FINER, FINE, CONFIG, INFO, WARNING, SEVERE, OFF)
解决办法:
monkeyrunner program.py的全路径
步骤如下:
1.先把apk包安装到手机上,
2.在android手机或者模拟器上配置Python环境
3.然后编写代码如下:
import android
import pprint
droid=android.Android()
apps=droid.getLaunchableApplications()
pprint.pprint(apps.result)
print '-------------------------------------'
pacs=droid.getRunningPackages()
pprint.pprint(pacs.result)
4.运行上面的代码,就可以获得应用程序的startActivity与package name
5.,通过下面的程序,测试apk
import sys
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
device=MonkeyRunner.waitForConnection()
device.startActivity(component='package name/startActivity name')