Macaca 使用实践——阿里开源自动化解决方案
2017-12-20 14:40
423 查看
本次内容包括:
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-cli4、安装webdriver
cnpm i -g webdriver-client5、安装chrome
npm i macaca-chrome -g6、安装chromedriver
npm i macaca-chromrdrivet -g7、安装uirecorder(录制脚本)
npm i uirecorder -g8、安装Python API
pip install wd三、Macaca 使用示例
1、启动Macaca服务
macaca server –verbose;2、编写一个脚本
import unittest import time from macaca import WebDriver desired_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 -hmacaca server -h
macaca run -h
macaca doctor -h
相关文章推荐
- Masonry介绍与使用实践(快速上手Autolayout)-让IOS自动化相对布局更简单
- 使用iRedMail开源邮件解决方案构建公司内部邮件系统
- Java 实现自动化构建的开源工具和使用技巧,
- 开源的软件自动化测试框架STAF使用特色
- [自动化平台系列] - 初次使用 Macaca-前端自动化测试(2)
- 团队基础生成自动化流程之最佳实践(V) - 使用Desktop Build
- 【PDF下载】阿里研发峰会之阿里巴巴分层自动化实践之路
- JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码(实测可用)
- 使用阿里的开源包进行APNS推送
- 使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码 (jvm性能调优)
- 开源项目SpringOSGINoDM—OSGI环境下使用Spring的唯一完美解决方案
- “云中论道”之——使用开源技术和Azure公有云服务快速搭建云端IoT解决方案(下)
- [目录]Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案
- 学习实践:使用模式,原则实现一个C++自动化测试程序
- JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码
- reactjs 使用异步终级解决方案 async,await实践
- 适合各种使用场景的长URL转短链接的完整解决方案开源了
- 阿里开源的热补丁框架AndFix使用教程
- 在使用阿里的开源数据库同步服务otter时,使用Spring-Cache导致Spring找不到Bean方法时的解决方法