开发者社区> 沉默术士> 正文

用python做自动化测试—Monkeyrunner问题的解决方案

简介:
+关注继续查看
Monkeyrunner为Andriod SDK 嫡亲的测试工具,功能还是很强大的,但Andriod的测试技术发展比较晚,所以目前国内的教程和例子比较少,很多功能没有发掘出来。
  Monkeyrunner的例程google下可以有很多,这里就不在重复了,下面说说大家可能遇到的几个问题,及解决方案。
  1. 点击button,选择输入焦点,只能靠坐标来定位,一旦换手机,坐标完全失效了。
  解决方案a: 通过device.getProperty("display.width"),device.getProperty("display.height")得到你调试手机的像素,在新的手机中,通过这2个参数的比例关系,可以得到在新手机的X,Y坐标点。
  解决方案b:通过view server查询ID来定位,这种方法是最好的,肯定不会错。但很多手机上view server不工作,即使被rooted了(可以通过hierarchyviewer.bat来确认view server是否工作).  破解过程有点下复杂,大家可以参考这里,还是可以破解的。http://blog.apkudo.com/tag/viewserver/
from com.android.chimpchat.hierarchyviewer import HierarchyViewer
from com.android.monkeyrunner.easy import By
from com.android.hierarchyviewerlib.device import ViewNode
easy_device.locate(By.id('id/main_button'))
easy_device.touch(By.id('id/main_button'), 'downAndUp')
  2.  测试结果的检查中,用图片来比较精确度不高。
  很多测试用例的检查结果中,我们希望同时检查app的界面是不是我们期望的,但通知栏的电池或者弹出个通知消息不好比较,容易导致结果比较失败。
  解决方案a:通过OCR技术,可以获取到图片里的文字。python里面有https://code.google.com/p/pytesser/,当然这个是cpython的,monkeyrunner用的是jython, 无法直接调用cpython的模块,OCR里面java的开源模块很多,jython直接调用java非常方便。
  解决方案b:还 是通过view server得到界面上内容
hierarchy_viewer = device.getHierarchyViewer()
view_node = hierarchy_viewer.findViewById('id/prompt_text_view')
text = view_node.namedProperties.get('mText').toString()

最新内容请见作者的GitHub页:http://qaseven.github.io/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
基于Ubuntu的zsh: command not found: python错误简单解决方案
基于Ubuntu的zsh: command not found: python错误简单解决方案
120 0
教你python自动识别图文验证码的解决方案!
对于web应用程序来讲,处于安全性考虑,在登录的时候,都会设置验证码,验证码的类型种类繁多,有图片中辨别数字字母的,有点击图片中指定的文字的,也有算术计算结果的,再复杂一点就是滑动验证的。诸如此类的验证码,对我们的系统增加了安全性的保障,但是对于我们测试人员来讲,在自动化测试的过程中,无疑是一个棘手的问题。
471 0
猿创征文|python gevent 执行MySQLdb/mysqlclient连接卡住解决方案
猿创征文|python gevent 执行MySQLdb/mysqlclient连接卡住解决方案
83 0
Python中遍历列表remove漏删解决方案
我有一个需求:保留list_1中含有list_2元素的元素,其他的删除
35 0
python常见报错以及解决方案(持续更新)
使用python难免会出现各种各样的报错,以下是Python常见的报错以及解决方法(持续更新),快进入收藏吃灰吧
91 0
python自动化之BeautifulReport显示异常的解决方案
早起,开心的来到公司,批量运行着我那闪耀的IOS设备,一切正常,非常完美。 我愉快的点开测试报告,出现了以下另我痛彻心扉的一幕~
107 0
PAI Designer Python脚本V2组件使用异常临时解决方案
PAI Designer(Studio 2.0)是基于云原生架构Pipeline Service(PAIFlow)的可视化建模工具, 提供可视化的机器学习开发环境,实现低门槛开发人工智能服务。同时,系统提供丰富且成熟的机器学习算法,覆盖商品推荐、金融风控及广告预测等场景,可以满足您不同方向的业务需求。PAI-Designer提供了自定义Python脚本的功能,您可以使用该组件运行自定义的Python函数,并且支持自定义安装依赖包。但是由于版本的更新Python脚本V2组件目前还有一些bug需要修复。本文为您演示使用Python脚本V2组件常见的一个异常及临时的处理方案,以供参考。
383 0
【python实例6.3】wordcloud库安装出错的解决方案
【python实例6.3】wordcloud库安装出错的解决方案
77 0
Python mapfinance库②中文标题乱码 与 显示负数 解决方案
Python mapfinance库②中文标题乱码 与 显示负数 解决方案
239 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载