Macaca [新手入门] Win7+ Macaca + Python+PyCharm+Genimotion:运行 Android App 登录实例

又又 · 2016年10月20日 · 最后由 何剑豪 回复于 2016年12月28日 · 1768 次阅读

环境配置:

1、配置 Java 环境【必须】

2、配置 Android SDK【必须】(系统环境变量 path 中,加入 platforms、platform-tools、tools 路径)(SDK\platform-tools 中必须创建模拟器)(我使用的 SDK 是项目组 Android 开发人员给的,达到 24G,里面有很多东西)

3、Macaca 由 Node.js 开发,所以需要安装 Node.js【必须】

4、安装 macaca-client【必须】:首先切换切换淘宝源,因为国外资源访问很慢,而且有些资源还无法下载。
cmd 命令行先输入 npm install -g cnpm --registry=https://registry.npm.taobao.org
再输入 cnpm i macaca-cli -g

5、至此,命令行输入 macaca doctor,查看环境配置情况,再按需求,继续配置环境

6、安装 webdriver-client【必须】:cmd 命令行输入 cnpm install webdriver-client

7、安装 并配置 Ant【必须】(到官网下载包,然后解压,添加环境变量)(可以参考:http://www.cnblogs.com/yuzhongwusan/archive/2013/03/26/2982411.html

8、命令行输入 macaca doctor,发现 Installed driver list 为空,安装 Android driver【必须】,命令行输入 npm i macaca-android --save
此处,我尝试了多次,在 win7 上安装失败,安装 log 提示 “android unicode” 有问题,然后仔细看了下安装 log 看到说,platforms 下面的 android-N 有问题,因此我就把 Android SDK 中 platforms 下的 android-N 文件夹删除,然后再输入命令,终于安装成功了,当时,我激动的流下了高兴的眼泪。。。安装成功时,如下图

9、再安装 macaca-electron,我不知道这是什么,反正必须要安装就是了,命令行输入 cnpm install macaca-electron -g

10、命令行再次输入 macaca doctor,终于看到希望了,如下图

==============================================================================================

革命尚未成功,同志仍需努力!!!

说明:python,我使用的是 2.7.9

1、安装 wd.py 包,命令行输入 pip install wd

2、pycharm 中,新建 1 个 test.py 文件,代码如下:

import unittest
import os
import time
from macaca import WebDriver

desired_caps = {
    'platformName': 'android',
    #'app': 'F:\\02_PhoneTesting\\Macaca\\macaca-test-sample-master\\app\\android-app-bootstrap.zip',
    'app': 'C:\\Killer-Android-release-test.apk', # apk 在自己PC电脑上的存放路径
    'reuse': 3
}

server_url = {
    'hostname': 'localhost',
    'port': 3456
}


class MacacaTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        cls.driver = WebDriver(desired_caps, server_url)
        cls.driver.init()

    @classmethod
    def tearDownClass(cls):
        cls.driver.quit()

    def test_01_login(self):

        # 输入登录账号
        self.driver.element('id','com.mpr.mprepubreader:id/login_account').send_keys('13168731111')  

         # 输入登录密码
        self.driver \
            .element_by_id('com.mpr.mprepubreader:id/login_password_edit')\
            .send_keys('123456')

        # 点击登录按钮
        self.driver \
            .element_by_id('com.mpr.mprepubreader:id/login_btn_bg_btn') \
            .click()


if __name__ == '__main__':
    unittest.main()

3、启动 Genimotion 中,配置好的 1 个模拟器,我的是 Samsung Galaxy S4,此处连接真机,应该也是可以的(我还没来得及尝试):

4、命令行输入 macaca server,启动服务,如下图所示:

5、pycharm 中,运行 test.py(注意光标放在 main 里面,再运行),运行成功,部分截图如下:

==============================================================================================

总结:

1、看官网文档,认真看,仔细看

https://github.com/macacajs/macaca-test-sample-python

https://macacajs.com/macaca/python.html

2、win 配置环境,坑超级超级多,所以必须要,耐心,耐心,耐心。

3、Good Luck

共收到 8 条回复 时间 点赞
8楼 已删除

能不能把你的 Android driver 文件夹 和 启动 cmd 打包传网盘共享啊 我发现不需要在线安装,直接找个安装好的 copy 一下就行,但是好多人在线安装失败。

#1 楼 @kanchi240 你好,可以看一下这个,http://www.imooc.com/video/12541

折腾了 1 天多还是不能完整运行,心累

请问我这个环境多了这个东西有影响吗

运行就报错了

#5 楼 @304764691 遇到了同样的问题:unhandledpromiserejectionwarning
请问解决的了么?

请问我所有环境都装了,代码提示 macaca 报错是怎么回事

我的也是,环境都搭好, 可是 from macaca import webdriver 这句报错,提示"ImportError: cannot import name webdriver",请问下什么原因

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册