用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/

时间: 2024-09-12 20:59:21

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

初试selenium用python做自动化测试

搭建平台windows 准备工具如下: ------------------------------------------------------------- 下载python http://python.org/getit/ 下载setuptools [python 的基础包工具] http://pypi.python.org/pypi/setuptools 下载pip [python 的安装包管理工具] https://pypi.python.org/pypi/pip 1.python

python做爬虫时,如何获取下一页的html?

问题描述 python做爬虫时,如何获取下一页的html? 具体网址http://data.10jqka.com.cn/market/yybhyd/![图片说明](http://img.ask.csdn.net/upload/201603/09/1457522333_494323.png) 解决方案 分析网页数据,提取链接先做了再说. 解决方案二: 遍历页面内容中的tag a等内容 然后循环爬出下一层 解决方案三: 一般都通过一个当前页面整数作为请求参数,每次访问的时候递增这个参数就行了 解决方

在做自动化测试之前你需要知道的

什么是自动化测?   做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner.jmeter),或自己所写的一段程序,用于生成1到100个测试数据.狭义上来讲,通工具记录或编写脚本的方式模拟手工测试的过程,通过回放或运行脚本来执行测试用例,从

firefox-QTP支持Firefox38么,我需要做自动化测试

问题描述 QTP支持Firefox38么,我需要做自动化测试 麻烦大神告知QTP如何支持Firefox38的自动化,我用QTP无法识别Firefox,需要怎么配置 解决方案 你是QTP多少版本?

32位-用Python做web 选择什么服务器软件?除了apache

问题描述 用Python做web 选择什么服务器软件?除了apache apapce只能选择32位的Python解释器 ? Apache只有32位的? 用Python写网站 除了apache 还可以用什么服务器软件??? 解决方案 用nginx加uwsgi,然后用flask框架提高web framework.也可以支持64位python. 解决方案二: CGI比较老了.用标准的输入输出直接生成网页.asp与php类似...还有servlet....还支持psp 解决方案三: 用过apache,和

python 做的web 暴力猜解密码程序 出错

问题描述 python 做的web 暴力猜解密码程序 出错 在Linux环境下运行 这是错误: Traceback (most recent call last): File "brute.py", line 15, in response = urllib2.urlopen(req,timeout=100) File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen return _opener.open(

python-为何用Python做爬虫时抓取下来的页面跟源代码不一样?

问题描述 为何用Python做爬虫时抓取下来的页面跟源代码不一样? 代码如下: -*- coding:utf-8 -*- import urllib import urllib2 import re baseURL = 'http://zhidao.baidu.com/question/491268910.html' headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, li

做自动化测试要考虑的问题

一.为什么很多公司都说要组建一个自动化测试团队,但极少能建立起来? ● 太过于相信自动化测试,且没有经过严格的自动化测试流程和前期分析设计就草率的进行脚本的开发,最终的结果一定是失败! ● 国内的公司很少有专属的自动化测试团队,往往都是信心十足最后确又虎头蛇尾!这其中也分两种情况:其一,缺乏真正可以做自动化测试的技术人员,每个成员都是在学习阶段,那还谈什么组建自动化测试团队?这最多也就叫兴趣小组?其二,的确有牛人在团队中,但是我们都知道,国内很少有公司会专门组建一个专职做自动化测试的团队,国内现

python做web的问题,两个函数没有明白

问题描述 python做web的问题,两个函数没有明白 这个是hello.py的内容 def application(environ,start_response): start_response('200 ok',[('Content-Type','text/html')])#我不明白start_resopnse()是做什么的?200 ok是一个什么类型? return '<h1>Hello,web!</h1>' 这个是server.py的内容: from wsgiref.sim