android自动化测试_uiautomator方案实现要点

原创 2014年02月18日 10:01:31


 

 

android的自动化测试方案,弄了好久了。

 


Monkeyrunner对象引用速度太慢,过于简陋;

Robotium不能跨应用(不知道现在最新情况如何),即便能够跨应用我都不是太想用他,太麻烦,而且毕竟不是亲生的,稍微google搞点动作,就够他一阵忙乱的;


Google在sdk4.0以后提供了一个自动化解决方案uiautomator:

优点:可以跨应用了;这可是亲生的;

缺点:必须sdk4.0以上版本;要想实现的好,最好有开发配合;java项目编译为jar后需要push到手机才能运行,也就是说必须打印日志暴力调试。

 

一直有研究和简单使用,但是一直没有推向生产使用,理由很简单,性价比不够高,每行代码都需要自己去查看元素对象的引用方法一点点的编写,太麻烦了。

 

但是这个解决方案毕竟是可以解决android的自动化测试的。

 

不过要想走得顺畅并不容易,需要关注几个要点:

1.      需要一个工具,打开源码文件后,将所有的布局文件打开,写入contentDescription属性,如果不写这个属性也能对象引用,但是会很麻烦,你需要去找各种不同的属性进行引用,既然人家已经提供了这个属性,目的就是让你方便引用的,所以最好充分利用,写完后,要留心,因为listview的行布局文件是一个,也就是说如果代码运行后,你的listview控件的每行的contentDescription属性都会是一样的,需要使用其他的属性进行引用,最好呢是在代码中修改该属性;

2.      上述方法搞定了静态控件后,找到开发,确定哪些是动态生成的,在代码中加入动态对象的属性,编译通过后,提交到版本库;

3.      建立长效机制,这个是最重要的,以后每次增加了新的模块,开发都要给控件提供该属性的唯一值,开发测试可以约定一个命名方式。

 

这个解决方案的成败关键是开发测试的充分沟通和长效机制的运作,要不然就会出现下面的情形:

开发把代码扔给测试就不管了,每次版本发布,都需要给所有的静态对象加上contentDescription属性,动态对象测试历尽千辛万苦才引用到,然后执行。试想想,要是版本频繁发布,这样根本就无法正常运转下去。

 

但是这个方案是一个可行的可用的解决方案。

 

参考工具:

这个vbs脚本是通过指定项目文件目录,自动搜寻下面所有的layout目录,找到所有的布局文件,将布局文件中的每个元素都加上contentDescription属性,以便uiautomator进行对象识别和引用操作。

http://download.csdn.net/detail/testingba/6931865



 

 

 

 

Android进阶--android自动化测试python+uiautomator

android自动化测试常用的一些API,具体的请参考API 导入设备唯一一个设备from uiautomator import device as d导入具体设备from uiautomator i...
  • DG_summer
  • DG_summer
  • 2017年08月09日 20:54
  • 711

android自动化测试Uiautomator源码分析之一

1, 概述 Uiautomator顾名思义,就是UI自动化测试。主要用于仿真UI界面,包括单击,滑动,输入文本等操作。 主要分为三个子命令, rutest/dump/events 同其他大多数a...
  • u012439416
  • u012439416
  • 2017年04月15日 11:46
  • 328

Android自动化测试(UiAutomator)——截图功能

本文主要介绍如何使用takeScreenshot来进行屏幕截图,仅供参考。 以下为主要代码段 // Simulate a short press on the HOME butto...
  • u014409696
  • u014409696
  • 2014年09月03日 14:23
  • 1669

Android自动化测试之UIAutomator(一)

Android程序开发迭代周期短,测试case重复度高,大部分case属于功能验证,常规的测试方法是测试人员按照预先写好的Case手顺进行测试,人工比对操作结果和预期结果。这种测试手段重复度高,效率低...
  • xzy2046
  • xzy2046
  • 2014年09月14日 13:55
  • 5086

android自动化测试Uiautomator测试案例

1, 测试案例 如下是一个简单的测试案例代码,模拟了点击Home键回到主屏,然后点击所以应用按钮打开所有应用列表, 并滚动到时钟应用。打开时钟应用 并选择闹铃界面的第一个闹钟设置,修改该设置的开关...
  • u012439416
  • u012439416
  • 2017年04月15日 11:40
  • 661

uiautomator自动化测试

module:appapply plugin: 'com.android.application' 2 3 android { 4 compileSdkVersion 23 5 ...
  • qq_26818085
  • qq_26818085
  • 2016年12月05日 01:34
  • 799

Uiautomator自动化测试编写和调试---小白入门超详细

Uiautomator建立自动化测试项目 1.建立java项目 (1)选择File-New-JavaProject (注意:是java proect) (2)输入Project Name 输入P...
  • gld824125233
  • gld824125233
  • 2016年10月21日 13:53
  • 3013

uiAutoMator 自动化测试创建步骤

uiAutoMator 自动化测试创建步骤: 1,Android SDK Manager 中下载 Android Support Repository 相关类文件; 2,创建 java 工程,编写...
  • fulinwsuafcie
  • fulinwsuafcie
  • 2016年01月06日 22:33
  • 1197

Android 自动化测试UiAutomator 视频精讲

Android 自动化测试UiAutomator 视频精讲,带你详细学习Android 自动化测试 全套视频精讲推荐学习 https://ke.qq.com/course/274357&from_...
  • u012861732
  • u012861732
  • 2015年04月02日 20:12
  • 1226

在Android Sudio中使用Uiautomator 自动化测试

在AS中自动化执行计算器,比如:7+1 =8 1.AS版本是1.2.2 2.SDK Manager需要安装Android Support Repository,没有安装的需要自己去下,如图: 【...
  • wyh520java
  • wyh520java
  • 2017年01月22日 13:20
  • 313
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android自动化测试_uiautomator方案实现要点
举报原因:
原因补充:

(最多只允许输入30个字)