Android自动化测试在monkey runner中怎样获取应用程序的启动名
2014-03-19 17:00
375 查看
查看Android应用包名package和入口activity名称
使用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')
使用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')
相关文章推荐
- Android 怎样获取所有开机自动启动的应用程序?
- 一起学android之怎样获取手机程序列表以及程序相关信息并启动指定程序 (26)
- android 怎样通过暗码启动应用程序
- Android应用程序的快速启动是怎样炼成的
- Android - 安装及卸载应用,启动应用程序,分享,详细信息,设备进程信息获取,获取进程占用RAM,清理进程
- Android获取手机已安装的应用程序并启动
- Android应用程序的快速启动是怎样炼成的
- Android应用程序永久获取root权限方法
- Android应用程序模块详解(任务、启动模式、进程和线程、FLAG_ACTIVITY_NEW_TASK)
- Android应用程序获取ROOT权限的方法(android中如何通过代码检测是否有root权限?)
- Android应用程序组件Content Provider的启动过程源代码分析(6)
- Android中获取应用程序(包)的大小-----PackageManager的使用(二) .
- Android应用程序的Activity启动过程简要介绍
- android中通过代码启动应用程序
- vc++MCF/C++/C中怎样让应用程序获得或以管理员权限运行 ,ShellExecuteEX编程 --- 获取管理员权限
- Android应用程序获取系统权限
- android应用程序中获取view的位置
- android典型代码系列(二十四)------获取某个应用程序所占用的内存
- Android 根据包名,获取应用程序的签名
- (十七)Android获取其他包的Context和在任意位置获取应用程序Context(转载http://blog.sina.com.cn/s/blog_46726d240100usn9.html)