51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1757|回复: 0

[讨论] 基于Macaca实现的iOS Monkey测试实现

[复制链接]

该用户从未签到

发表于 2018-4-25 16:00:54 | 显示全部楼层 |阅读模式
一、准备Macaca环境

1、安装usbmuxd

$ brew install usbmuxd

2、安装ios-webkit-debug-proxy

$ brew install ios-webkit-debug-proxy

3、安装ios-deploy

$ npm i ios-deploy -g

4、安装ideviceinstaller

ideviceinstall如果需要用命令行安装的话,使用不了,具体我也没试,既然原作者说了,那就按他建议的来,
直接到GitHub上下载源代码到本地,然后编译运行。

ideviceinstall GitHub地址:https://github.com/libimobiledevice/libimobiledevice

4.1、在编译之前,先将设置以下内容到环境变量中:

LD_LIBRARY_PATH=/usr/local/opt/openssl/lib:"${LD_LIBRARY_PATH}"

CPATH=/usr/local/opt/openssl/include:"${CPATH}"

PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig:"${PKG_CONFIG_PATH}"

export LD_LIBRARY_PATH CPATH PKG_CONFIG_PATH
打开终端,输入 $ sudo vim etc/profile ,然后按i进入编辑模式,将以上内容添加到环境变量,然后按esc退
出编辑模式,输入 “:wq!”保存并退出。

4.2、编译安装ideviceinstall

打开终端并进入到libimobiledevice工程目录,分别执行:

./autogen.sh

make

sudo make install

5、安装carthage
$ brew install carthage

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

$ npm install macaca-cli@1.2.2  -g

$ npm install macaca-ios@1.0.66  -g

原文没有指定安装版本,但实际上隐藏着一个大坑,因为Macaca在近期做了重构,现在新版本是2.几的版本
了,但是iOS monkey作者并没有支持到Macaca的新版本(我之前就毫无意外地掉这个坑了,最后通过跟Ma
caca作者和iOSmonkey原文作者沟通,才晓得),所以如果想要使用这套环境,要么就等iOS monkey的作者
支持Macaca最新版本,要么就安装旧版本了。

好了,安装完成之后,检测macaca环境,确保无报错(至少iOS的环境应该都是好的了)

$ macaca doctor

检查无误之后,到此,我们的Macaca环境就完事了。

二、WebDriverAgent项目重签名

2.1、下载WebDriverAgent

GitHub地址:https://github.com/facebook/WebDriverAgent

2.2、WebDriverAgent项目重签名

2.2.1、使用xcode打开保存在本地的WebDriverAgent项目,在项目资源列表点击工程文件、然后在TARGET
S上,分别点中那五个targets,然后在general或者build setting上修改bundle ID并选择签名的证书,bundle I
D修改就是把原来的“facebook”字样修改掉,比如换成什么abc都行,只要后面选择证书的时候,能够不报错
就行。如下图1:



图1 修改bundle ID和选择签名的证书
记得是5个都要改,一个个检查吧。完了之后,打开终端,进入WDA工程目录,执行

$ ./Scripts/bootstrap.sh

build完成以后,之前以为就可以完成WDA的配置了,就进入下一步了,然后,只是又不知不觉掉了一个坑
而已,好了,继续往下看往下搞。

2.2.2、Xcode->file->Open Quickly,输入/usr/local/lib/node_modules/macaca-ios/node_modules/webdrive
ragent/WebDriverAgent/WebDriverAgent.xcodeproj ,回车

这里会发现,在这个路径下,又有一个WDA工程,然后查看工程设置,发现bundle ID和签名都没修过过,
按照2.2.1步骤里面修过bundle ID 和选择签名,完成之后,才是真的完成了WDA的配置。

三、编译、执行iOS Monkey

3.1、编译iOS Monkey

iOS Monkey开源工程下载地址:https://github.com/baozhida/iosMonkey

下载到本地后,由于这个开源项目是maven工程,所以编译之前先得把maven环境弄好,这里不再赘述。

终端进入到工程目录,执行

$ maven install

结果,发现报错了!!!Failed to execute goal on project iosMonkey: Could not resolve dependencies fo
r project iosMonkey:iosMonkey:jar:1.0: Failure to find macaca.webdriver.client:macacaclient:jar:2.0.4 inht
tps://repo.maven.apache.org/maven2was cached in the local repository, resolution will not be reattempted
until the update interval of central has elapsed or updates are forced

看一下工程上的Maven Dependencies,没有找到macacaclient-2.0.4.jar这个jar包,update maven工程,也仍
然没有下载得回来,但是pom.xml上,是明确配置有这个依赖的;网上一查,原来是macaca在maven默认的
仓库下架了,所以会提示找不到,当时尝试修改maven的settings.xml,使用阿里的镜像,但是好像并没有生
效,搞不懂为啥,尝试多次仍然搞不定之后,就换了个思路,就是把jar包下载回来,从本地导入。

http://jcenter.bintray.com 下载macacaclient 2.0.1版本,然后先修改pom.xml上macacaclient的配置,即
把版本号修改成2.0.1就好(这里说一下为什么要用2.0.1版本,2.0.1是原作者使用的版本,前面也说过,m
acaca进行了重构,使用最新版本可能会有隐藏的坑,为了别再掉入类似的坑,还是直接选择原作者当时使
用的版本了),然后,执行:

$ mvn install:install-file -DgroupId=macaca.webdrivier.client -DartifactId=macacaclient -Dversion=2.0.1 -D
file=你的路径/macacaclient-2.0.1.jar -Dpackaging=jar -DgeneratePom=true

这时候,我们再看一下工程目录下的Maven Dependencies,已经有macacaclient-2.0.1.jar了,这时候再次
终端执行 mvn install 就可以编译成功了,target下生成iosMonkey-1.0.jar。

3.2、执行iOS Monkey

先在xcode把WDA跑起来:xcode->produck->test

终端进入iOS Monkey工程目录,执行

$ macaca server  --verbose

新开另外一个终端窗口,同时也进入iOS Monkey工程目录,执行

$ java -jar [iosMonkey.jar Path] -u [设备的UDID] -b [测试App的BundleID] -port [macaca服务端口,可选]
-proxyport[usb代理端口,可选]

设备的udid可以通过iTunes或者iTools获取,服务端口和代理端口可以不设置,使用默认的就好了,命令执
行之后,应该就能跑起来了,另外,如果需要登录,建议先手动登录成功后,再执行monkey。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-3-29 23:31 , Processed in 0.063885 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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