您的位置:首页 > 移动开发 > Android开发

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')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐