51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2183|回复: 1
打印 上一主题 下一主题

[讨论] Macaca实践(基于web端)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-25 16:05:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Macaca

Macaca是阿里开源的一套完整的自动化测试解决方案。同时支持PC和移动端测试,支持的语言有JS,Java,
Python。本文介绍PC端。

安装

1.安装node.js。
2.安装管理工具CNPM
3.安装macaca

安装命令
cnpm i macaca-client -g
装完后查看版本
$ macaca -V
查看环境
$ macaca doctor
确保环境搭建成功。
4.安装macaca-cli

cnpm i macaca-cli -g
5.安装webdriver-client

cnpm install webdriver-client
6.安装maraca-electron

cnpm install macaca-electron -g
7.安装 macaca-chrome

cnpm install macaca-chrome -g
8.安装 macaca python client

python3 install wd
使用官方实例

先去我是链接下载官方实例代码。官方的代码使用的是基于electron开发的Macaca驱动,之后我们使用chrome。
下载好之后,执行脚本。

maraca run -o ./log.html -d ./macaca-test/macaca-desktop-sample.js
如果要使用chrome,修改脚本。



再执行脚本即可。

使用Python来编写脚本

Macaca只支持Python3.4以上版本,官方api。
启动Macaca服务

macaca server --verbose
看到以下输出后,即为成功。



下面编写python脚本,脚本基于python的单元测试框架unites,不熟悉的自行Google。

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. __author__ = 'LiBin'
  5. __mtime__ = '16/9/18'
  6.               ┏┓   ┏┓
  7.              ┏┛┻━━━┛┻┓
  8.              ┃   ☃    ┃
  9.              ┃ ┳┛  ┗┳  ┃
  10.              ┃    ┻    ┃
  11.              ┗━┓      ┏━┛
  12.               ┃       ┗━━━┓
  13.               ┃  神兽保佑  ┣┓
  14.               ┃ 永无BUG! ┏┛
  15.               ┗┓┓┏━┳┓┏┛
  16.                ┃┫┫ ┃┫┫
  17.                ┗┻┛ ┗┻┛
  18. """
  19. import unittest
  20. from macaca import WebDriver
  21. from time import sleep

  22. desired_caps = {
  23.     'platformName': 'Desktop',
  24.     'browserName': 'Chrome',
  25. }

  26. server_url = {
  27.     'hostname': '10.1.1.1',
  28.     'port': 3456
  29. }

  30. class MacacaTest(unittest.TestCase):

  31.     @classmethod
  32.     def setUpClass(cls):
  33.         cls.driver = WebDriver(desired_caps, server_url)
  34.         cls.driver.init()

  35.     @classmethod
  36.     def tearDownClass(cls):
  37.         cls.driver.quit()

  38.     def test_get_url(self):
  39.         self.driver.get('https://www.baidu.com')
  40.         self.assertEqual(self.driver.title, '百度一下,你就知道')

  41.     def test_search_macaca(self):
  42.         self.driver.element_by_id('kw').send_keys('macaca')
  43.         self.driver.element_by_id('su').click()
  44.         sleep(2)
  45.         title = self.driver.title
  46.         self.assertTrue('macaca', title)

  47. if __name__ == '__main__':
  48.     unittest.main()
复制代码

可以从脚本看出,macaca和selenium的api非常的相似,熟悉selenium的可以很快上手。


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2019-1-10 17:25
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]测试排长

    2#
    发表于 2018-12-28 16:31:01 | 只看该作者
    所以为啥要从selenium转到macaca
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-25 07:47 , Processed in 0.064835 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表