Android自动化测试在monkey runner中怎样获取应用程序的启动名

来源:互联网 发布:mac新建txt文件 编辑:程序博客网 时间:2024/05/29 04:34


查看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文件

点击(此处)折叠或打开

  1. # Imports the monkeyrunner modules used by this program
  2. from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImage
  3. import time

  4. # Connects to the current device, returning a MonkeyDevice object
  5. device = MonkeyRunner.waitForConnection()   #连接设备

  6. # Installs the Android package. Notice that this method returns a boolean, so you can test
  7. # to see if the installation worked.
  8. device.installPackage('./360explorer-4.2.8-0910.4.apk')  #安装apk包,./表示该包和monkeyrunner.bat在同一个目录

  9. package = 'com.qihoo.explorer'       #apk包名 
  10. activity = 'com.qihoo.explorer.HomeActivity'    #apk的activity名称,  包名和anctivity名称可以通过aapt命令获取
  11. runComponent = package + '/' + activity

  12. device.startActivity(component=runComponent)    #启动应用程序
  13. device.press('KEYCODE_MENU','DOWN_AND_UP')      #KEYCODE_MENU表示菜单键,打开菜单
  14. time.sleep(10)                                  #暂停10秒
  15. result =device.takeSnapshot()                   #截图
  16. 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')

0 0
原创粉丝点击