初探

在Android的SDk提供了以下的工具来支持我们进行UI自动化测试:

uiautomatorviewer:用来扫描和分析Android应用程序的UI控件的工具。

uiautomator:一个包含创建测试、执行自动化测试API的java库。

谷歌Uiautomator文档:http://android.toolib.net/tools/help/uiautomator/index.html

要使用这些工具,你必须安装Android开发工具以下版本:

Android SDK Tools:API 21 版本或者21以上版本;

Android SDK Platform:API 16 版本或者16以上版本.

分析控件

在你开始写测试用例之前,使用uiautomatorviewer可以帮助你熟悉你的UI组件(包括视图和控件)。

你可以使用它对当前连接到你电脑上的手机屏幕进行一个快照,然后可以看到手机当前页面的层级关系和每个控件的属性。利用这些信息,你可以写出针对特定UI控件的测试用例。

在 ..\sdk\tools\ 目录下打开 uiautomatorviewer.bat (打开前请手机连接电脑,手机开启USB调试)。

家看了上面的动态图,基本上已经了解了一些用法了,再进一步说明一下: 

1、获取快照:

当你要分析一个页面时,首先将手机的页面停留在你要分析的页面,然后用数据线连接电脑。

然后点击uiautomatorviewer左上角的第二个图标按钮 Device Screenshot,点击之后会将当前手机界面的快照更新到这里来。

2、页面层级:

右上方的整个区域,就是当前页面布局的层级关系。如果对Android五大布局比较熟悉的话,理解这一层应该不是问题。

3、不可用区域:

右上方的整个区域中的第二个按钮Toggle NAF Nodes,按下后出现的黄色区域代表,这些控件是不被Uiautomator工具识别,无法获取到这些控件的实例。以QQ首页为例。

我们可以看到,当按下该按钮的时候,下方的三个tab出现黄色区域,这就代表这三个区域的控件,如果你想通过Uiautomator提供的API来获得他们的属性,或者对其进行点击操作,是做不到的,因为你没办法拿到这些控件的实例。

4、属性详情:

右下方的整个区域,是当前选中的页面或者是控件的属性信息。这部分比较重要,我们以后写代码的时候就是需要通过查看属性中的控件的id或者是text等来获取控件的实例,然后点击操作它。

以QQ左上角的头像控件为例:

点击左上角的头像控件之后,右下方区域就会显示这个控件的详细信息。比如这里我们可以得知它的resource-id就是com.baidu.searchbox:id/baidu_searchbox。

然后利用Uiautomator的API方法就可以得到该控件的实例。

上面的方法就是知道了该控件的id之后,模拟向该控件输入文本的过程,当然Uiautomator还提供了根据text来获取控件。

这种点击的方法比起Monkeyrunner来说它的好处就是:Monkeyrunner是坐标点击,当一个脚本写好后,换一个分辨率的手机去执行,点击的位置可能就会出错,而Uiautomator点击是先找到该控件,然后再点击该控件,因此可移植性比Monkeyrunner要好;另外代码的易读性也更好一些。

Appium移动自动化测试(五)--app控件获取之uiautomatorviewer的更多相关文章

  1. app控件获取之uiautomatorviewer

    初探 在Android的SDk提供了以下的工具来支持我们进行UI自动化测试: uiautomatorviewer:用来扫描和分析Android应用程序的UI控件的工具. uiautomator:一个包 ...

  2. 安卓控件获取器uiautomatorviewer初体验:"unable to connect to the adb. check if adb is installed correctly"

    解决方法:转自:https://plus.google.com/108487870030743970488/posts/2TrMqs1ZGQv Challenge Accepted:1. Screen ...

  3. App控件定位

    本文将分享Android相关基础知识和Android APP控件定位工具的使用方法. Android基础知识 Android布局 Android是通过容器的布局属性来管理子控件的位置关系(iOS去掉了 ...

  4. 《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)

    1.简介 理想很丰满现实很骨感,在应用selenium实现web自动化时,经常会遇到处理日期控件点击问题,手工很简单,可以一个个点击日期控件选择需要的日期,但自动化执行过程中,完全复制手工这样的操作就 ...

  5. app控件唯一相对Xpath自动生成(增强版uiautomatorviewer)

    作者:cryanimal QQ:164166060 工具由来 前面的一篇博文较详细地介绍了uiautomatorviewer:扫描和分析Android应用程序的UI控件的工具. 熟悉控件获取的同学都知 ...

  6. 《手把手教你》系列技巧篇(三十七)-java+ selenium自动化测试-日历时间控件-上篇(详解教程)

    1.简介 我们在实际工作中,有可能遇到有些web产品,网页上有一些时间选择,然后支持按照不同时间段范围去筛选数据.网页上日历控件一般,是一个文本输入框,鼠标点击,就会弹出日历界面,可以选择具体日期.这 ...

  7. CheckBoxList控件获取多选择,需要遍历

    CheckBoxList控件获取多选择,需要遍历,环境:vs2008 在页面上添加CheckBoxList控件,输入项值 a,b,c,d.然后添加按钮 Button2确定,如何获取CheckBoxLi ...

  8. JavaScript经典代码【一】【javascript HTML控件获取值】

    javascript HTML控件获取值 1.下拉列表框选定值 ddlPageSize.options[ddlPageSize.selectedIndex].value ddlPageSize.opt ...

  9. 通过控件获取cell

    #pragma mark - 通过控件获取cell -(UITableViewCell*)GetCellFromTableView:(UITableView*)tableView Sender:(id ...

随机推荐

  1. c++模板使用及实现模板声明定义的分离

    c++模板是编译器构造具体实例类型的模型,使类型参数化,是泛型编程的基础,泛型就是独立于特定类型. 一.模板分为函数模板和类模板两种. 函数模板:template <class 形参名,clas ...

  2. SQL SERVER 索引名前缀代表的意思

    PK - Primary Key IX - Non-Unique Index AK - Unique Index (AX should have been AK (Alternate Key)) CK ...

  3. [原创]手把手教你写网络爬虫(4):Scrapy入门

    手把手教你写网络爬虫(4) 作者:拓海 摘要:从零开始写爬虫,初学者的速成指南! 封面: 上期我们理性的分析了为什么要学习Scrapy,理由只有一个,那就是免费,一分钱都不用花! 咦?怎么有人扔西红柿 ...

  4. 【转】C++ Vector(向量容器)

    转自:https://blog.csdn.net/studentyyl/article/details/21177445 vector是一个线性顺序结构.相当于数组,但其大小可以不预先指定,并且自动扩 ...

  5. hadoop中集群节点ID不一致( java.io.IOException: Incompatible clusterIDs )

  6. Shell的基本命令(第一天),根据w3c学习得

    Shell是一种应用程序,提供一个界面访问操作系统内核的服务. 1:编写shell脚本 vi test.sh #!/bin/bash #指定这个脚本需要什么解释器来执行 echo "Hell ...

  7. rmdir&rm

    rmdir删除空目录,非文件 rmdir [选项] 目录名   rmdir -p 路径 删除路径里子文件夹后父文件夹若为空也一并删除   rmdir -v 目录名 显示删除信息   rm删除文件,非目 ...

  8. HDU 5909 Tree Cutting

    传送门 题意: 有一棵n个点的无根树,节点依次编号为1到n,其中节点i的权值为vi, 定义一棵树的价值为它所有点的权值的异或和. 现在对于每个[0,m)的整数k,请统计有多少T的非空连通子树的价值等于 ...

  9. codefroces 612E Square Root of Permutation

    A permutation of length n is an array containing each integer from 1 to n exactly once. For example, ...

  10. [Codeforces]852I - Dating

    题目大意:给定一棵n个点的树,每个点上有一个汉子或妹子,每人有一个权值,每次询问一条链上选出一对权值相等的男女有多少种选法.(n,q<=10^5) 做法:比较显然的树上莫队,熟悉序列莫队那套理论 ...