导语


WebDriverAgent 作为新的基于 XCUITest 的测试工具,有其固有优点:

  • 支持USB通信,连接mac的设备都可以测试(走xcodebuild,不走instruments)
  • 任意应用的UI测试
  • 最大的优点跨应用,号称任意界面都可以控制,还在尝试

一、WebDriverAgent下载使用

第一步:git clone https://github.com/facebook/WebDriverAgent.git
第二步:brew install Carthage
第三步:./Scripts/bootstrap.sh

这个时候发现可以build succeeded成功,可是选择Test总是报错Test Failed,具体log为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2016-07-22 15:02:15.057 XCTRunner[5303:2236022] Running tests...
2016-07-22 15:02:15.264 XCTRunner[5303:2236022] The bundle
“WebDriverAgentRunner” couldn’t be loaded because it is damaged or missing
necessary resources. Try reinstalling the bundle.
2016-07-22 15:02:15.264 XCTRunner[5303:2236022] (dlopen_preflight(/var/
containers/Bundle/Application/AE743399-C99B-484A-BB52-A2D71317591B/
WebDriverAgentRunner-Runner.app/PlugIns/WebDriverAgentRunner.xctest/
WebDriverAgentRunner): Library not loaded: @rpath/KissXML.framework/KissXML
Referenced from: /private/var/containers/Bundle/Application/
AE743399-C99B-484A-BB52-A2D71317591B/WebDriverAgentRunner-Runner.app/PlugIns/
WebDriverAgentRunner.xctest/Frameworks/WebDriverAgentLib.framework/
WebDriverAgentLib
Reason: no suitable image found. Did find
/private/var/containers/Bundle/Application/
AE743399-C99B-484A-BB52-A2D71317591B/WebDriverAgentRunner-Runner.app/
PlugIns/WebDriverAgentRunner.xctest/Frameworks/WebDriverAgentLib.framework/
Frameworks/KissXML.framework/KissXML: mmap() errno=1 validating first page
of '/private/var/containers/Bundle/Application/
AE743399-C99B-484A-BB52-A2D71317591B/WebDriverAgentRunner-Runner.app/
PlugIns/WebDriverAgentRunner.xctest/Frameworks/WebDriverAgentLib.framework/
Frameworks/KissXML.framework/KissXML')

二、解决过程

思考1是否跟账号权限相关?
因为苹果总是有各种权限的限制,然后就不停的替换bundle identifier,并且点击
Xcode->Preferences->accounts->view details->downloads all,可是仍然不能解决。

思考2根据错误提示?
错误指向WebDriverAgentLib.framework,我在xcode内全局查找,发现在Products内,仔细查看错误,更加验证了我的想法,是缺少framework,KissXML.framework
WebDriverAgentLib.framework
原来是打包的时候缺少它们。。。。。

解决加上framework
操作如图

三、使用展示

  1. 将mac和手机设备置于同一网段下,然后启动WebDriverAgent工程,选择Test,然后看xcode console,可以看到一个ServerURLHere指向http://192.168.1.1:8100
  2. 在mac网页端输入http://192.168.1.1:8100/inspector
  3. 随意打开一个app,查看界面元素。
    展示