`
MyEyeOfJava
  • 浏览: 1152629 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7af2d6ca-4fe1-3e9a-be85-3f65f7120bd0
测试开发
浏览量:71189
533896eb-dd7b-3cde-b4d3-cc1ce02c1c14
晨记
浏览量:0
社区版块
存档分类
最新评论

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

阅读更多
在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
分享到:
评论

相关推荐

    [android]Monkey自动化测试参数

    在Android开发过程中, Monkey 测试是一种常用的自动化测试方法,它由Android系统提供的一个命令行工具执行,用于模拟用户随机操作,以检测应用的稳定性和健壮性。Monkey测试的原理是向应用程序发送伪随机的用户事件...

    android_test.sh.zip_adb 测试_android_android shell_android模拟点击

    对于更复杂的自动化测试需求,开发者可能会转向使用UIAutomator、Espresso等专业的Android测试框架,它们提供了更丰富的API和更完善的测试支持。 总之,`adb shell`结合Shell脚本为Android自动化测试提供了一种基础...

    Android功能测试过程所用到的adb命令操作,通过python编程方式.zip

    Appium基于WebDriver协议,允许使用Python的Selenium库进行Android应用的自动化测试。这不仅限于发送点击、滑动等事件,还能处理复杂的测试场景,如登录流程、页面导航等。 在准备面试时,除了掌握基本的ADB命令和...

    Android Monkey测试执行策略及标准

    在Android应用开发过程中,确保软件的质量和稳定性是至关重要的,其中Monkey测试是一种广泛采用的自动化压力测试工具。本文将深入探讨“Android Monkey测试执行策略及标准”,并结合提供的资源进行详细解析。 首先...

    基于adb框架进行Robotium跨进程操作Demo

    Robotium是一款强大的Android UI自动化测试框架,它使得编写黑盒测试变得简单易行。然而,Robotium默认并不支持跨进程操作,为了实现这一功能,我们可以借助于Android Debug Bridge(ADB)工具。本Demo就是展示如何...

    使用python+poco+夜神模拟器进行自动化测试实例

    POCO是一个基于Python的UI自动化测试框架,专门用于Android和iOS平台上的应用测试。POCO能够通过识别用户界面元素来模拟用户的操作,如点击、滑动等,并支持多种定位方式,包括XPath、ID、Class Name等。此外,POCO...

    解决Android8.0以上运行不了uiautomatorviewer的办法.rar

    在Android开发过程中,UIAutomatorViewer是一款非常实用的工具,用于可视化地检查和选择应用程序的UI组件,便于进行自动化测试。然而,自Android 8.0(API级别26)开始,由于系统权限的更改,uiautomatorviewer可能...

    ARS-AM-1_手机端_内部测试报告1

    - UniActive是一个专门用于安卓应用的自动化测试框架,它允许开发者和测试人员执行各种功能和性能测试,以确保应用的质量和稳定性。 - 在这个测试报告中,0.1版本表明这是该测试工具的一个初步版本,可能包含了...

    adb-for-test adb跨进程

    标题“adb-for-test adb跨进程”指的是使用ADB来处理Android应用的跨进程交互问题,特别是针对自动化测试框架如Robotium时遇到的挑战。在Android系统中,每个应用都运行在自己的进程中,当需要在一个应用中控制另一...

    adb Android SDK Platform-Tools 23

    结合自动化测试框架(如Appium、Espresso),可以实现全面的UI测试。 7. **adb的安全考虑** 虽然adb为开发者提供了极大的便利,但开放USB调试也可能使设备面临安全风险。因此,不使用时建议关闭USB调试,并保持adb...

    C#调用adb传输和与android手机通讯

    C#结合ADB可以实现自动化测试框架,例如模拟用户输入、监控设备状态、执行应用功能测试等。这在持续集成和大规模设备测试中具有广泛的应用。 5. **错误处理和设备管理**: 在C#中,需要处理可能的ADB错误,如设备...

    Android ADB命令的使用

    - **自动化测试**:结合自动化测试框架(如Appium),ADB可以实现对设备的操作控制,方便进行UI自动化测试。 - **故障排查**:当设备出现异常时,可通过ADB获取设备上的日志信息,帮助定位问题所在。 - **数据备份与...

    android4.0 移除导航栏

    一种更合规的替代方案是使用系统级权限,通过编写自定义系统启动服务,在系统启动时动态修改系统UI框架代码,使得导航栏在初始化时不加载或透明化。但这需要设备制造商提供的系统签名权限,并且修改后的系统镜像必须...

    Devops-Testing-8.30AM:Devops-Testing-8.30AM培训

    3. **Appium**:针对移动应用的跨平台自动化测试框架,支持Android和iOS。 4. **JUnit** 和 **TestNG**:Java语言的单元测试框架,提供更灵活的测试配置和报告。 四、测试策略与最佳实践 1. **TDD(测试驱动开发...

    CrashMonkey4Android_tradefederation:AAM关联项目

    它是一个自动化故障注入框架,旨在模拟真实世界中可能出现的各种异常情况,从而帮助开发者检测和修复应用在异常条件下的崩溃问题。通过模拟硬件故障、网络中断、内存不足等异常,CrashMonkey4Android可以帮助开发者...

    email tools

    开发者还可以利用模拟器或真实设备进行测试,使用MonkeyRunner进行自动化测试,以及使用Android Profiler进行性能分析。对于“send to”功能,开发者可能会使用Intent系统,通过ACTION_SEND Intent类型让应用能够...

    Android高级编程--源代码

    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 使用...

Global site tag (gtag.js) - Google Analytics