用python做自动化测试—Monkeyrunner问题的解决方案
2023-09-11 14:20:34 时间
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)
很多测试用例的检查结果中,我们希望同时检查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/
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)
很多测试用例的检查结果中,我们希望同时检查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/
相关文章
- 小白学 Python 爬虫(27):自动化测试框架 Selenium 从入门到放弃(上)
- python自动化测试之连接几组测试包实例
- Python编程语言学习:包导入和模块搜索路径(包路径)简介、使用方法(python系统环境路径的查询与添加)之详细攻略
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- 〖Python WEB 自动化测试实战篇③〗- python-selenium环境配置搭建
- 〖Python WEB 自动化测试实战篇④〗- selenium 实现浏览器的基本操作
- 〖Python APP 自动化测试实战篇⑧〗- 实战 - appium 模拟手机滑动操控的操作
- 〖Python接口自动化测试实战篇③〗- 什么才是真正的自动化 - 自动化测试的意义又是什么?
- 从零开始学习python | 实例讲解如何制作Python模式程序
- [华为OD机试 2023 ] Linux发行版的数量(C++ Java JavaScript Python)
- Python编程:查看python语法中的关键字keyword
- 不会Python,用JMeter+ANT进行接口自动化测试,同样生成HTML测试报告,拿下20k轻轻松松
- Python 如何使用 HttpRunner 做接口自动化测试 | 干货
- Pytest自动化测试教程-更改标准(Python)测试发现
- python+appium+pytest自动化测试-yaml文件配置Capabilities
- 3年测试工程师不会做自动化测试,用Python+Selenium秀她一脸
- python+pytest接口自动化 —— 自动化用例编写思路 (使用pytest编写一个测试脚本)
- Python测试框架doctest
- Python使用技巧(十四):城市形态模块库osmnx的安装与测试使用
- Python常用内置函数(python 3.x)
- Web自动化——测试实战( 编写京东搜索脚本python+selenium框架)(四)