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


 

 

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



 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Testingba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值