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

本文涉及的产品
阿里云百炼推荐规格 ADB PostgreSQL,4核16GB 100GB 1个月
简介:
在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
相关实践学习
阿里云百炼xAnalyticDB PostgreSQL构建AIGC应用
通过该实验体验在阿里云百炼中构建企业专属知识库构建及应用全流程。同时体验使用ADB-PG向量检索引擎提供专属安全存储,保障企业数据隐私安全。
AnalyticDB PostgreSQL 企业智能数据中台:一站式管理数据服务资产
企业在数据仓库之上可构建丰富的数据服务用以支持数据应用及业务场景;ADB PG推出全新企业智能数据平台,用以帮助用户一站式的管理企业数据服务资产,包括创建, 管理,探索, 监控等; 助力企业在现有平台之上快速构建起数据服务资产体系
目录
相关文章
|
9天前
|
敏捷开发 Java 测试技术
探索软件测试中的自动化测试框架
在软件开发的生命周期中,软件测试扮演着至关重要的角色。随着技术的不断进步和软件项目的日益复杂化,传统的手动测试方法已经无法满足高效、准确的测试需求。自动化测试作为一种提高测试效率和质量的有效手段,越来越受到开发者和测试者的青睐。本文将深入探讨自动化测试框架的重要性、常见的自动化测试工具以及如何选择合适的自动化测试框架。
34 10
|
11天前
|
设计模式 前端开发 JavaScript
自动化测试框架设计原则与最佳实践####
本文深入探讨了构建高效、可维护的自动化测试框架的核心原则与策略,旨在为软件测试工程师提供一套系统性的方法指南。通过分析常见误区,结合行业案例,阐述了如何根据项目特性定制自动化策略,优化测试流程,提升测试覆盖率与执行效率。 ####
35 6
|
11天前
|
人工智能 前端开发 测试技术
探索软件测试中的自动化框架选择与优化策略####
本文深入剖析了当前主流的自动化测试框架,通过对比分析各自的优势、局限性及适用场景,为读者提供了一套系统性的选择与优化指南。文章首先概述了自动化测试的重要性及其在软件开发生命周期中的位置,接着逐一探讨了Selenium、Appium、Cypress等热门框架的特点,并通过实际案例展示了如何根据项目需求灵活选用与配置框架,以提升测试效率和质量。最后,文章还分享了若干最佳实践和未来趋势预测,旨在帮助测试工程师更好地应对复杂多变的测试环境。 ####
36 4
|
10天前
|
监控 jenkins 测试技术
自动化测试框架的构建与实践
【10月更文挑战第40天】在软件开发周期中,测试环节扮演着至关重要的角色。本文将引导你了解如何构建一个高效的自动化测试框架,并深入探讨其设计原则、实现方法及维护策略。通过实际代码示例和清晰的步骤说明,我们将一起探索如何确保软件质量,同时提升开发效率。
25 1
|
16天前
|
机器学习/深度学习 前端开发 测试技术
探索软件测试中的自动化测试框架选择与优化策略####
本文深入探讨了在当前软件开发生命周期中,自动化测试框架的选择对于提升测试效率、保障产品质量的重要性。通过分析市场上主流的自动化测试工具,如Selenium、Appium、Jest等,结合具体项目需求,提出了一套系统化的选型与优化策略。文章首先概述了自动化测试的基本原理及其在现代软件开发中的角色变迁,随后详细对比了各主流框架的功能特点、适用场景及优缺点,最后基于实际案例,阐述了如何根据项目特性量身定制自动化测试解决方案,并给出了持续集成/持续部署(CI/CD)环境下的最佳实践建议。 --- ####
|
3天前
|
人工智能 监控 测试技术
探索软件测试中的自动化框架选择与优化策略####
【10月更文挑战第21天】 本文深入剖析了软件测试领域面临的挑战,聚焦于自动化测试框架的选择与优化这一核心议题。不同于传统摘要的概述方式,本文将以一个虚拟案例“X项目”为线索,通过该项目从手动测试困境到自动化转型的成功历程,生动展现如何根据项目特性精准匹配自动化工具(如Selenium、Appium等),并结合CI/CD流程进行深度集成与持续优化,最终实现测试效率与质量的双重飞跃。读者将跟随“X项目”团队的视角,直观感受自动化框架选型的策略性思考及实践中的优化技巧,获得可借鉴的实战经验。 ####
13 0
|
5天前
|
JavaScript 安全 编译器
TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法
本文深入探讨了 TypeScript 与 Jest 测试框架的结合使用,从 TypeScript 的测试需求出发,介绍了 Jest 的特点及其与 TypeScript 结合的优势,详细讲解了基本测试步骤、常见测试场景及异步操作测试方法,并通过实际案例展示了其在项目中的应用效果,旨在提升代码质量和开发效率。
23 6
|
1天前
|
机器学习/深度学习 人工智能 Java
探索软件测试中的自动化框架选择与优化策略####
本文深入探讨了在软件测试领域,面对众多自动化测试框架时,如何根据项目特性、团队技能及长远规划做出最佳选择,并进一步阐述了优化这些框架以提升测试效率与质量的策略。通过对比分析主流自动化测试框架的优劣,结合具体案例,本文旨在为测试团队提供一套实用的框架选型与优化指南。 ####
|
1天前
|
敏捷开发 前端开发 Java
软件测试中的自动化测试框架选择与实践
在当今软件开发生命周期中,自动化测试已成为提升软件质量和开发效率的关键手段。本文旨在探讨自动化测试框架的选择标准及其在实际项目中的应用实践。通过对主流自动化测试框架的分析比较,结合具体案例,本文将阐述如何根据项目需求和团队特点选择合适的自动化测试工具,并分享实施过程中的经验教训。
8 1
|
7天前
|
jenkins 测试技术 持续交付
自动化测试框架的构建与优化:提升软件交付效率的关键####
本文深入探讨了自动化测试框架的核心价值,通过对比传统手工测试方法的局限性,揭示了自动化测试在现代软件开发生命周期中的重要性。不同于常规摘要仅概述内容,本部分强调了自动化测试如何显著提高测试覆盖率、缩短测试周期、降低人力成本,并促进持续集成/持续部署(CI/CD)流程的实施,最终实现软件质量和开发效率的双重飞跃。通过具体案例分析,展示了从零开始构建自动化测试框架的策略与最佳实践,包括选择合适的工具、设计高效的测试用例结构、以及如何进行性能调优等关键步骤。此外,还讨论了在实施过程中可能遇到的挑战及应对策略,为读者提供了一套可操作的优化指南。 ####
下一篇
无影云桌面