前言:
Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案。由阿里巴巴公司开源:http://macacajs.github.io/macaca/
特点:
同时支持PC端和移动端(Android、iOS)自动化测试。
支持JavaScript(Node.js)、Java、Python。
周边工具:支持用例录制的UI Recorder。
本次教程将介绍如何使用Macaca进行Android端自动化测试。使用编程语言为Python3.5(Macaca只支持Python3.4以上版本)
环境安装:
1、Macaca环境+Android SDK环境+Java环境+Node环境见:Android环境配置
2、通过macaca doctor可以检查环境是否配置成功,如下图所示则表示环境均配置正常,如果有标红提示,则需要对应处理。
>>macaca doctor
![](https://yqfile.alicdn.com/img_d051ceceeea28e0cb2f023f1c0abe0a9.png)
3、安装Macaca Python Client,支持pip安装。
>>python3 -m pip install wd
![](https://yqfile.alicdn.com/img_ff73a0bc89b31ddaa34e0bc7cc640c61.png)
用例编写:
项目目录F:workspacemacaca-androidmacaca-test下创建测试用例:macaca-android-sample.test.py,其中macaca-test为测试目录集。
https://github.com/macaca-sample/sample-python/blob/master/tests/macaca-android-sample.test.py
代码如下:
![](https://yqfile.alicdn.com/img_16a3f720f37218061473a14d8e5b25dc.png)
![](https://yqfile.alicdn.com/img_9d2e8a055193e0306501309351126f21.png)
![](https://yqfile.alicdn.com/img_7084f2735c233d34f983443cde6040b0.png)
![](https://yqfile.alicdn.com/img_168e540597e6eaa76e194ba3d7e04b04.png)
![](https://yqfile.alicdn.com/img_31b868210eb904aad97b65436524b8ad.png)
API详解:
driver.init() 初始化
driver.quit() 退出
driver.back() 返回上一步
driver.element_by_id 根据id来查找元素
driver.element_by_name 跟据name来查找元素
driver.elements_by_class_name 跟据class_name来查找元素
driver.accept_alert() alert弹框确认
driver.touch('tap', {'x':100,'y':100}) 在设备上应用触摸操作,例如:tap/doubleTap/press/pinch/rotate/drag ,操作后面填写对应坐标x,y值
driver.save_screenshot 保存截图
备注:与appium的API极为相似,熟悉appium的同学可以快速上手,定位元素的方法一致。
详细API见官网:https://macacajs.github.io/wd.py/api.html
执行用例:
1、启动macaca服务:
>>macaca server --verbose //加--verbose可以看到详细的执行过程
![](https://yqfile.alicdn.com/img_7b98cfda1aeb33073811d3f66aa3178d.png)
2、执行用例:
>>python3 macaca_testmacaca-android-sample.test.py
![](https://yqfile.alicdn.com/img_d09092d1a9d52c944e9606da188ee3de.png)
![](https://yqfile.alicdn.com/img_7f765aded8736d6a26de15505d4e665b.png)
以上
作者:搁浅
出处: http://www.cnblogs.com/xiaoxi-3-/
如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。