Macaca 实现 iosMonkey (python 版)

孟德功 · April 13, 2017 · Last by captain replied at August 25, 2018 · 2165 hits

1,功能
1.可以模拟 android monkey 执行的方式,在 IOS APP 页面点击 滑动操等作,支持 ios 9 和 ios10
2,支持一台 ios 执行

下载地址: https://github.com/mengdegong/iosMonkey.git

2,准备 macaca 环境
安装 usbmuxd

$ brew install usbmuxd

安装 ios-webkit-debug-proxy

$ brew install ios-webkit-debug-proxy

安装 iso-deploy

$ npm i ios-deploy -g

安装 macacajs 包括,macaca-cli macaca-ios

npm install macaca-cli -g
EVELOPMENT_TEAM_ID=需要填写TeamID npm install macaca-ios -g

检测 macaca 环境,无报错

$ macaca doctor

3,WebDriverAgent 项目重签名
安装 app-inspector

EVELOPMENT_TEAM_ID=需要填写TeamID npm install app-inspector -g

重签名参考帖子
app-inspector 查看器

4,操作指南
1,在 iosMonkey/parameters/configure.py 文件中设置 udid/bundleId/port/proxy,port/proxy 可以默认

bundleId = 'com.bluecity.blued.qy'
port = 3456
proxy = 8900
udid = 'bad980986e328c37e478edcc81c552d291ce4024'
version = '10.2.1'

2,文件中可以修改事件的概率,概率相加应是 100%

TAP = 0.40
SWIPE = 0.30
BACK = 0.10
SUBMIT = 0.05
CONTENT = 0.05
POINT = 0.05
SHARE = 0.05

3,终端启动 macaca 服务

$ macaca server --verbose

4,运行 iosMonkey/run.py,开启无限事件测试之旅

           #######################################
           #                                     #
           #    欢迎使用 Blued iosMonkey测试       #
           #                                     #
           #######################################

[INFO]---------------------------------------------------
[INFO]测试设备: bad980986e328c37e478edcc81c552d291ce4024 
[INFO]测试App : com.bluecity.blued.qy
[INFO]---------------------------------------------------

[ RUN ] sending Event : Content->( 201 , 391 )
[ RUN ] Event number:  1 
[ RUN ] sending Swipe Event : Swipe-> [start(302.0 , 653.0 ), end( 302.0 , 74.0)]
[ RUN ] Event number:  2 
[ RUN ] sending Event : Submit->( 177 , 596 )
[ RUN ] Event number:  3 
[ RUN ] sending Tap Event : Tap->( 303.0 , 376.0 )
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 26 条回复 时间 点赞

python 的版本是 2.x 还是 3.x?

happymff 回复

2.x

孟德功 回复

MengfeifeideMac-Mini:~ mff$ python /Users/mff/Desktop/iosMonkey/run.py
Traceback (most recent call last):
File "/Users/mff/Desktop/iosMonkey/run.py", line 5, in
from parameters.monkey import monkey
File "/Users/mff/Desktop/iosMonkey/parameters/monkey.py", line 5, in
from macaca import WebDriver
ImportError: No module named macaca
MengfeifeideMac-Mini:~ mff$

运行 run.py 时报错,您知道怎么解决么?谢谢~没怎么用过 python,不太理解

happymff 回复

没有导入 macaca 导致的,试一下 pip install wd,非技术类探讨尽量百度,增强自我的解决问题的能力。

你好,感谢楼主的开源,谢谢,有个问题得反馈一下,配置好信息后
然后运行 run.py ,我这里会报错

xctest client proxy received no data

然后,把配置信息的 proxy 以及 monkey.py start() porps['proxyPort'] 注释后,就正常了

重来看雨 回复

可能你的 proxy 8900 端口被占用,执行一下:

pkill -9 proxy

然后取消注释,试一下.
其实这个值不传也可以,不是必传项,多机并行的时候需要传入

感谢反馈! 谢谢....

孟德功 回复

取消注释后,执行政策

安装 iso-webkit-debug-proxy

$ brew install iso-webkit-debug-proxy

============================
LZ 打错单词了

孟德功 #10 · May 04, 2017 Author
Yuri 回复

😂 已做修改

包名必须是 xxx.qy 形式的吗

孟德功 #12 · May 04, 2017 Author
hihi 回复

按照实际的包名就可以。

孟德功 #13 · July 05, 2017 Author

新增 HOME 事件

您好,在执行到 home 键操作的时候,报了个错,进程就停止了
RUN ] sending HOMEKEY Event.

[ ERROR ]---------------------------------------------------
[ ERROR ]'Thread' object has no attribute 'stop'
[ ERROR ]---------------------------------------------------

求教楼主,总是显示 macaca server 启动失败,我看了下我安装的 macaca-ios 驱动工程下没有 webdriveragent 文件夹,我是用命令安装的 macaca,不知道为什么没有这个文件夹,请问如何解决,谢谢~🙏



我也遇到这个问题啦,请问楼主如何解决呢😊

zadmin 回复

问题解决了吗?我也遇到了同样的问题

问题解决了吗?我也遇到了相同的问题

jing 回复

git clone https://github.com/facebook/WebDriverAgent 下载完成后用 xcode 编译下
iOS monkey 用 fashmonkey 吧 还挺好用
https://testerhome.com/topics/9524#reply72


楼主,macaca 导入失败,输入 pip install wd 后还是无效,应该怎么解决?(百度了但是没找到有效的)

孟德功 #21 · April 16, 2018 Author
jing 回复

应该是 mac 上有多个版本的 python, 在环境变量中重新配置一下即可.

vim ~/.bash_profile
孟德功 #22 · April 16, 2018 Author

确实不错, 我也再用, 推荐各位也去尝试一下.😉

楼主您好,我执行 run.py 之后,提示 “macaca server 启动失败”,但是实际上是启动了的,还有另外一个错误,如下图,不知道是什么原因,麻烦楼主解答下~

一直 macaca server 启动失败么,实际是启动的@Test_Sir

macaca server 启动失败 这个怎样解决呢?


求作者大人,解答下这个问题:启动 macaca server 后,运行 run.py, macaca 就死掉了,很困扰,万分感谢

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up