在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
分享到:
相关推荐
在Android开发过程中, Monkey 测试是一种常用的自动化测试方法,它由Android系统提供的一个命令行工具执行,用于模拟用户随机操作,以检测应用的稳定性和健壮性。Monkey测试的原理是向应用程序发送伪随机的用户事件...
对于更复杂的自动化测试需求,开发者可能会转向使用UIAutomator、Espresso等专业的Android测试框架,它们提供了更丰富的API和更完善的测试支持。 总之,`adb shell`结合Shell脚本为Android自动化测试提供了一种基础...
Appium基于WebDriver协议,允许使用Python的Selenium库进行Android应用的自动化测试。这不仅限于发送点击、滑动等事件,还能处理复杂的测试场景,如登录流程、页面导航等。 在准备面试时,除了掌握基本的ADB命令和...
在Android应用开发过程中,确保软件的质量和稳定性是至关重要的,其中Monkey测试是一种广泛采用的自动化压力测试工具。本文将深入探讨“Android Monkey测试执行策略及标准”,并结合提供的资源进行详细解析。 首先...
Robotium是一款强大的Android UI自动化测试框架,它使得编写黑盒测试变得简单易行。然而,Robotium默认并不支持跨进程操作,为了实现这一功能,我们可以借助于Android Debug Bridge(ADB)工具。本Demo就是展示如何...
POCO是一个基于Python的UI自动化测试框架,专门用于Android和iOS平台上的应用测试。POCO能够通过识别用户界面元素来模拟用户的操作,如点击、滑动等,并支持多种定位方式,包括XPath、ID、Class Name等。此外,POCO...
在Android开发过程中,UIAutomatorViewer是一款非常实用的工具,用于可视化地检查和选择应用程序的UI组件,便于进行自动化测试。然而,自Android 8.0(API级别26)开始,由于系统权限的更改,uiautomatorviewer可能...
- UniActive是一个专门用于安卓应用的自动化测试框架,它允许开发者和测试人员执行各种功能和性能测试,以确保应用的质量和稳定性。 - 在这个测试报告中,0.1版本表明这是该测试工具的一个初步版本,可能包含了...
标题“adb-for-test adb跨进程”指的是使用ADB来处理Android应用的跨进程交互问题,特别是针对自动化测试框架如Robotium时遇到的挑战。在Android系统中,每个应用都运行在自己的进程中,当需要在一个应用中控制另一...
结合自动化测试框架(如Appium、Espresso),可以实现全面的UI测试。 7. **adb的安全考虑** 虽然adb为开发者提供了极大的便利,但开放USB调试也可能使设备面临安全风险。因此,不使用时建议关闭USB调试,并保持adb...
C#结合ADB可以实现自动化测试框架,例如模拟用户输入、监控设备状态、执行应用功能测试等。这在持续集成和大规模设备测试中具有广泛的应用。 5. **错误处理和设备管理**: 在C#中,需要处理可能的ADB错误,如设备...
- **自动化测试**:结合自动化测试框架(如Appium),ADB可以实现对设备的操作控制,方便进行UI自动化测试。 - **故障排查**:当设备出现异常时,可通过ADB获取设备上的日志信息,帮助定位问题所在。 - **数据备份与...
一种更合规的替代方案是使用系统级权限,通过编写自定义系统启动服务,在系统启动时动态修改系统UI框架代码,使得导航栏在初始化时不加载或透明化。但这需要设备制造商提供的系统签名权限,并且修改后的系统镜像必须...
3. **Appium**:针对移动应用的跨平台自动化测试框架,支持Android和iOS。 4. **JUnit** 和 **TestNG**:Java语言的单元测试框架,提供更灵活的测试配置和报告。 四、测试策略与最佳实践 1. **TDD(测试驱动开发...
它是一个自动化故障注入框架,旨在模拟真实世界中可能出现的各种异常情况,从而帮助开发者检测和修复应用在异常条件下的崩溃问题。通过模拟硬件故障、网络中断、内存不足等异常,CrashMonkey4Android可以帮助开发者...
开发者还可以利用模拟器或真实设备进行测试,使用MonkeyRunner进行自动化测试,以及使用Android Profiler进行性能分析。对于“send to”功能,开发者可能会使用Intent系统,通过ACTION_SEND Intent类型让应用能够...
9.2.5 紧急响应自动化 306 9.3 小结 314 第10章 访问Android硬件 317 10.1 使用媒体API 317 10.1.1 播放媒体资源 318 10.1.2 录制多媒体 319 10.2 使用摄像头 321 10.2.1 控制摄像头设置 321 10.2.2 使用...