- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android 自动化测试初探 -1: 捕获 Activity 上的 Element
第一部分:前言
Android 系统下应用程序的测试现在应该还算是个新的领域,网上关于这方面的资料很多都 是基于白盒测试的,一般都是基于 JUn it框架和An droid SDK中等命名空间下的内容进行,
但是有一个前提, 那就是必须要有应用程序的源代码以提供测试接入点, 但是这在很多软件 公司中是 不现实的。很多测试工程师做的工作是完全黑盒,基本接触不到源代码,白盒测 试大部分也是由开发自己完成。
回顾一下 Windows 下的黑盒测试自动化, 先前使用的是微软提供的基于 framework 的 UI Automation 自动化测试框架(要求版本在 framework 以上,即 2008 开发环境),对 与擅长C#语言的人来说,使用起来确认比较好用。本人也写了基于 UI Automation的轻量级
的自动化框架,将在以后的博文中引出。
那在 Android 操作系统中能不能做类似于 UI Automation 的事情呢?不幸的是,
Android 的权限控制分的非常清楚,不同程序之间的数据访问只能通过 Intent, content
provider 类似的功能实现。也就是说你开发的运行在 Android 中的自动化程序想要捕获当前 运行的 AUT (Application under Test)界面上的控件等 Element (该术语引自 UI Automation , 觉得翻译成元素有点生硬,故不作翻译)基本不可能,你也拿不到当前 active activity 的引
用(截止本文发帖为止,个人暂时没有找到办法获得此引用) 。
无路可走了?模拟器里面不能走,外面能不能走?或许可以。
第二部分:捕获 Activity 上的 Element
在An droid的SDK中自带了一个对自动化测试比较有用的工具: hierarchyviewer (位
于SDK的tools目录下)。在模拟器运行的情 况下,使用该工具可以将当前的 Activity上的
Element 以对象树的形式展现出来,每个 Element 所含的属性也能一一尽显。这有点像 Windows上运行的UI SPY唯一遗憾的是不支持事件的触发。 不过没有关系,可以想办法绕,
当务之急是能在自行编写的自动化测试代码里找到 Activity 上的 Element。
第一个想到的办法就是看 hierarchyviewer 源码,不巧,网上搜了一下,没有资源。 或许Google的官网上有,但是上不去。看来只能反编译 了,找来XJad暴力之。虽然反编
译出来的代码很多地方提示缺少 import ,但代码基本上是正确的。 看了一下, 确实也知道了 许多。后来在编写代码的过 程中,确实也证明了如果想引用这个包并调试,还是需要知道 里面的一些设置的。
创建基于这个包的调用,需要将它和另外两个包, (在 同级目录中有)和(需要下 载并安装netbeans,在其安装目录中有)一并导入到工程项目中, 因为hierarchyviewer的
实现依附于这两个包。
想在代码中获取 Activity 上的 Element 需要进行如下几个步骤(如果使用过 hierarchyviewer 这个工具后会发现,自动化代码所要写的就是该工具上的使用步骤) :
1.Ensure adb running
1.
Ensure adb running
Set adb location (因为 hierarchyviewer 和模拟器的沟通完全是依靠 adb 做的,所以设 定正确的 adb 程序的位置至关重要,本人就曾在这个问题上栽了半天多)
Get Active Device (这个等同动作发生在启动 hierarchyviewer 工具时 )
Start View Server (等同于工具上 Start Server 菜单触发事件 )
Load Scene (等同于工具上 Load View Hierarchy 菜单触发事件 )
Get Root View Node (获得对象树的根节点,这个动作在工具上点击 Load View Hierarchy
菜单后会自动加载 )
Get Sub View Node (获得想要查找的 View Node ,这个动作在工具上点击 Load View
Hierarchy 菜单后会自动加载 )
说明:上述步骤中一些名称实际上就是 hierarchyviewer 中所提供的可访问方法名称,如 startViewServer 、 loadScene、rootNode 等。另外 View Node 实际上 hierarchyviewer 中的一 个类,表示的对象树上的一个 Element。
您可能关注的文档
- (精编)人力资源部月招聘分析报告(DOC13页).docx
- (精编)企业承包合同书模板(DOC3页).docx
- (精编)企业招聘管理实操方案(DOC9页).docx
- -团购网站相关外文翻译学士学位论文.docx
- -玫瑰花生奶茶的研制学士学位论文.docx
- -药学专业外文翻译学士学位论文.docx
- 081——7章名词解释简答题.docx
- 09年慈溪中学实验班招生卷科学及答案.docx
- 100个小学生字谜语大全及答案.docx
- 10kV干式变压器技术规范汇总.docx
- 2025年消防员知识真题及答案.docx
- 2026年辽宁经济职业技术学院单招《数学》高频难、易错点题及参考答案详解【黄金题型】.docx
- 2025年向公司领导汇报各产品型检报告选用外部试验室的情况说明.docx
- 2025年郑州金水区招聘社区工作者200名备考题库含答案详解(最新).docx
- 2026年辽宁经济职业技术学院单招《数学》通关题库(培优)附答案详解.docx
- 2026年辽宁石化职业技术学院单招《数学》考前冲刺练习附参考答案详解(B卷).docx
- 2026年辽宁石化职业技术学院单招《数学》综合提升测试卷附参考答案详解【培优】.docx
- 2026年辽宁装备制造职业技术学院单招《数学》测试卷【全优】附答案详解.docx
- 贵商银行考试试卷及答案.doc
- 高分子材料分析与测试(期末复习及答案).pdf
原创力文档


文档评论(0)