Macaca 使用实践——阿里开源自动化解决方案
来源:互联网 发布:2017大数据峰会 编辑:程序博客网 时间:2024/06/05 07:32
本次内容包括:
- Macaca 简介
- Macaca 安装部署
- Macaca 使用示例
- Macaca 常用命令
一、Macaca 简介
1、背景
- 随着移动时代和智能终端时代的到来,我们的产品已经遍布各终端,单一的运行时架构往往不能满足工程的需要,为给用户带来更优质、完整的体验,Macaca 支持主流的移动技术平台 iOS,Android,以及两大平台的混合运行时 Webview,也支持以往的桌面端浏览器。
2、优点
Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。
Macaca 是 Monkey 的一种,含义引自(Monkey Test),取灵动、敏捷之意。
Macaca 的底层设计便于端的横向扩展,会根据开发平台提供的测试驱动及时调整集成方案。
- Macaca 提供 Node.js, Java, Python 三大主流的语言栈,方便工程师和所在团队选择合适的开发语言。
3、发展趋势
- Macaca 是由阿里巴巴公司开发的一套自动化解决方案,于2016年开源,社区人数日益增多,
二、Macaca 安装部署
1、安装nodejs: https://nodejs.org/en/
(1)什么是Node.js?
看了很多解释,觉得这样总结比较通俗易懂:node.js是一种Javascript的运行环境,能够使得JavaScript脱离浏览器运行,从而节省了写后台的时间。
(2)为什么要安装Node.js?
因为macaca是用node.js工具开发的,所以需要安装其开发平台。
(3)怎么安装Node.js?
到官网http://nodejs.org/下载安装包,下一步,下一步,直接安装即可。(so easy,就不详细介绍了~)
安装成功后,在DOS窗口中测试是否安装成功。
在DOS窗口输入node –version 命令回车,出现版本号,证明安装成功;如下图:
2、安装cnpm
(1)npm是什么?
npm是NodeJS 的包管理工具,能解决NodeJS代码部署上的很多问题;大家用Python的话,应该使用过pip工具,npm之于NodeJS就类似于pip之于Python;也类似于yum之于CentOS。
新版的nodejs已经集成了npm,所以安装nodejs的时候npm也一并安装好了。同样可以通过输入 “npm -v” 来测试是否成功安装。命令如下,出现版本提示表示安装成功:
(2)cnpm是什么?
- 因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常。阿里自己做了一个npm镜像,方便小伙伴使用,就是cnpm了;
(3)安装cnpm
- npm install cnpm -g –registry=https://registry.npm.taobao.org
(4)检查是否安装成功
- 输入cnpm -v,回车,显示如下图:
3、安装命令行工具 macaca-cli
- cnpm i -g macaca-cli
4、安装webdriver
- cnpm i -g webdriver-client
5、安装chrome
- npm i macaca-chrome -g
6、安装chromedriver
- npm i macaca-chromrdrivet -g
7、安装uirecorder(录制脚本)
- npm i uirecorder -g
8、安装Python API
- pip install wd
三、Macaca 使用示例
1、启动Macaca服务
- macaca server –verbose;
2、编写一个脚本
import unittestimport timefrom macaca import WebDriverdesired_caps = { 'platformName': 'Desktop', #// iOS, Android, Desktop 'browserName': 'Chrome', #// Chrome, Electron}# 对应Macaca服务的ip和端口号。server_url = { 'hostname': 'localhost', #127.0.0.1 'port': 3456 #macaca server 启动端口}class MacacaTest(unittest.TestCase): @classmethod def setUpClass(cls): cls.driver = WebDriver(desired_caps, server_url) cls.driver.init() cls.driver.set_implicitly_wait(20) @classmethod def tearDownClass(cls): cls.driver.close() def test_get_url(self): self.driver.set_window_size(1280, 800) self.driver.get("https://www.baidu.com") self.assertEqual(self.driver.title,"百度一下,你就知道") def test_search_macaca(self): self.driver.element_by_id('kw').send_keys('macaca') self.driver.element_by_id('su').click() time.sleep(5) eles = self.driver.elements('xpath','//div[contains(@class, "result")]/h3/a') for ele in eles: res = ele.text.lower() print(res) self.assertTrue('macaca'in res)if __name__ == '__main__': unittest.main()
3、运行脚本
PyCharm运行结果如下图
在命令行运行结果如下图
部分截图
4、脚本分析
- 引入unittest和Macaca的WebDriver的包
- 设定启动参数,是Web还是移动端;使用哪个浏览器
- 设定Macaca的server,包括ip和端口
- 后面的代码就是业务逻辑了
四、Macaca 常用命令
1、服务端
- macaca server (正常模式)
- macaca server -p 3456 (设置端口)
- macaca server -p 3456 & (设置端口后台运行)
- macaca server –verbose(输出详细日志)
2、测试
- macaca run (运行当前目录用例集)
- macaca run -d ./test (运行指定目录下用例集)
3、检查
- macaca doctor (环境检查)
4、帮助
- macaca -h
- macaca server -h
- macaca run -h
- macaca doctor -h
阅读全文
0 0
- Macaca 使用实践——阿里开源自动化解决方案
- 《开源自动化测试实践》编著团队招募
- 开源自动化测试工具selenium的使用
- 8月自动化测试课程 - Selenium开源自动化测试实践
- 页面静态化解决方案
- 操作系统虚拟化解决方案
- 开源自动测试框架Tellurium
- 开源自动测试框架Tellurium
- KDATFFS 开源自动化测试框架
- 开源自动测试框架Tellurium
- 开源自动化测试框架Tellurium
- Android主流开源自动化框架
- 开源自动化学习博客
- TestNG 开源自动化测试框架
- 开源自动导航系统 ArduPilot/APM
- 网站HTML静态化解决方案
- ASP网站静态化解决方案研究
- freemarker网站纯静态化解决方案
- [游戏数据表]Rimworld环世界职业不同年龄阶段特征
- 亲测有效,解决Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2) ";
- 经典题目总结
- 读书笔记:NOSQL 菜鸟教程
- 理解 goroutine 的并发
- Macaca 使用实践——阿里开源自动化解决方案
- lx 安装ubuntu系统在外接的U盘中,使用ros
- JS/JavaScript中 != 和 !== 的用法区别
- static_cast <new_type> (expression)
- 关于树的冷知识
- 手机网站的几点注意
- Linux教程____Linux下RPM包管理
- Spark SQL 初识1(2.0)
- 介绍几种常用的插值方法以及代码-双三次插值