[android]am自动化测试框架(原创)

本文介绍了一个使用Python脚本自动化测试Android应用的方法。该脚本能够读取AndroidManifest.xml文件,获取包名及所有Activity的名称,并依次启动这些Activity进行截图保存。
在linux环境该目录下需要一个AndroidManifest.xml文件 

需要一个python脚本就可以完成,功能点,打开某个package的所有activity并截图保存
import os
import logging
file = open("AndroidManifest.xml")
_adb_startActivity="adb shell am start -n "
packageName=""


def _create_cmd(cmd, param1,param2 ):
	res=""
	res=res+cmd+param1+"/"+param2
	print res
        return res

def _pictrue(cmd, param1):
        res=""
        res=res+cmd+param1+".png"
        print res
        return res


 
while 1:
    line = file.readline()
    if not line:
        break
    if "manifest" in line and "package" in line:
	arr=line.split(" ")
	for i in range(len(arr)):
		if "package" in arr[i]:
			names=arr[i].split("\"")
			packageName=names[1]
			print packageName
    if "activity" in line:
    	arr=line.split(" ")
    	for i in range(len(arr)):
		if "android:name" in arr[i]:
			names=arr[i].split("\"")
			#print type(names[1])
			cmd = _create_cmd(_adb_startActivity,packageName,names[1])
		        assert os.system(cmd) == 0
			os.system("sleep 5")
			os.system("adb pull /dev/graphics/fb0 fb0")
			os.system("python rgb565torgb888.py <fb0 >fb0.888")
			cmd = _pictrue("convert -depth 8 -size 320x480 RGB:fb0.888  ",names[1])
		        assert os.system(cmd) == 0
			#os.system("convert -depth 8 -size 320x480 RGB:fb0.888 fb0.png")
			#print names[1]



 import os
  2 from xml.dom import minidom
  3 file = open("AndroidManifest.xml")
  4 _adb_startActivity="adb shell am start -n "
  5 packageName=""
  6 
  7 
  8 def _create_cmd(cmd, param1,param2 ):
  9     res=""
 10     res=res+cmd+param1+"/"+param2
 11     print res
 12         return res
 13 
 14 def _pictrue(cmd, param1):
 15         res=""
 16         res=res+cmd+param1+".png"
 17         print res
 18         return res
 19 
 20 
 21 
 22 doc  =  minidom.parse( "AndroidManifest.xml" )
 23 root  =  doc.documentElement
 24 packageName=root.getAttribute("package")
 25 activities  =  root.getElementsByTagName( "activity" )
 26 for activity in activities:
 27     activityName=activity.getAttribute("android:name")
 28     activity.getAttribute("android:name")
 29     cmd = _create_cmd(_adb_startActivity,packageName,activityName)
 30     assert os.system(cmd) == 0
 31     os.system("sleep 5")
 32     os.system("adb pull /dev/graphics/fb0 fb0")
 33     os.system("python rgb565torgb888.py <fb0 >fb0.888")
 34     cmd = _pictrue("convert -depth 8 -size 320x480 RGB:fb0.888 ",activityName)
 35     assert os.system(cmd) == 0



  • am.zip (1008 Bytes)
  • 下载次数: 34
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值