Macaca 使用实践——阿里开源自动化解决方案
本次内容包括:Macaca 简介Macaca 安装部署Macaca 使用示例Macaca 常用命令一、Macaca 简介1、Macaca 是由阿里巴巴公司开发的一套自动化解决方案,适用于PC端和移动端2、Macaca 是一套面向用户端软件的测试解决方案,提供了自动化驱动,周边工具,集成方案,旨在解决终端上的测试、自动化、性能等方面的问题。Macaca 是 Monkey 的一种,含义引
本次内容包括:
- 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 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 -h
- macaca server -h
- macaca run -h
- macaca doctor -h
更多推荐
所有评论(0)