darlingmz
向前看,向前迈!

目的:“盲点”进行monkey自动化测试,检测卡死
注意:设置对应企业证书+APP名称+设置测试时间:
存储log路径:/Users/XXXX/Library/Developer/Xcode/DerivedData/XCTestWD-dodkkvpngiaeisakvpjpjukiraqy/Logs/Test
 
 
教程:
ps :建议使用xcode 10.1, mac系统不升级到最新10.15即可
 (可能中间很多步骤都不需要经历,就能安装成功)
 
1、下载Fastmoney
 
2、下载后检查路径并解压文件
/Users/xxxxx/Fastmonkey
 
3、进入Fastmonkey路径下并更新所需要的依赖
cd /Users/xxxxx/Fastmonkey/XCTestWD-master
 
4、因安装所需的第三库需要先安装Carthage (第三方管理工具) ,若未安装请先安装carthage
brew install carthage
 
-----------------------------------------------------
5、若提示未安装Homebrew,请先安装Homebrew(包管理工具)
 
6、更新brew到最新版本
brew update
注意:如果遇到Error: The /usr/local directory is not writable.错误,就执行以下命令sudo chown -R $(whoami):admin /usr/local,再更新。
-----------------------------------------------------
 
7、继续第4步,安装carthage
 
8、安装carthage成功后,更新所需的第三方库 
1)首先进入cd /Users/xxxxx/Fastmonkey/XCTestWD-master
2)创建carthage文件
touch Cartfile
3)此时项目文件夹中会有一个名字为Carthage的文件
4)使用xcode打开该文件
open -a Xcode Cartfile
-------------------------------------------
5)在文件中输入需要更新的第三库并指定版本(以下为多次尝试可用的第三方库版本)
github "Alamofire/Alamofire" ~> 4.0
github "httpswift/swifter" == 1.4.3
github "SwiftyJSON/SwiftyJSON" == 4.2.0
github "cezheng/Fuzi" ~> 2.1.0
github "tadija/AEXML" == 4.2.2
github "CocoaLumberjack/CocoaLumberjack" == 3.2.0
github "Quick/Nimble"
6)保存文件并退出
7)如遇更新报错 ,打开xcode -> Preferences -> Locations,选择xcode版本为10.1
 
9、更新:carthage update
--------------------------------------------
10、第三方库下载完成后, 开始配置XCTestWD.xcodeproj
1)用Xcode打开XCTestWD.xcodeproj
2)修改为企业证书
XCTestWD->General->Signing->Team
        XCTestWDUITests->General->Signing->Team
3)将XCTestWD->Build Setting->Header Search Paths和XCTestWD->Build Setting->Objective-C Bridging Header里面的XCTestWD/XCTestWD-Bridging-Header.h删掉(解决编译报错:error: bridging header '/Users/xxxxx/Fastmonkey/XCTestWD-master/XCTestWD/XCTestWD/XCTestWD-Bridging-Header.h' does not exist)
4)修改Product ID
 
11、修改XCTestWD项目工程代码中的配置值
1)修改运行模式,将XCTestWDRunner.swift文件中的serverMode设置为false
    2)修改XCTestWDMonkey.swift文件中的bundleID为被测App的值
3)修改Monkey.swift文件中的elapsedTime值确定你需要运行多长时间的Monkey,注意单位是秒
 
12、执行Monkey
方法1:
1)将被测手机连接电脑(注意App事先安装到被测试手机上)
2)xcode选择执行XCTestWDUITests
3)Product - > Test
方法2:
1)将被测手机连接电脑(注意App事先安装到被测试手机上)
2)打开一个终端窗口,执行以下命令
iproxy 8001 8001
3)再打开一个端口,先进入工程所在目录
cd /Users/xxxxx/Fastmonkey/XCTestWD-master/XCTestWD
4)执行以下命令(注意,devidce name 为被测手机名称,注意单引号为英文状态下输入)
xcodebuild -project XCTestWD.xcodeproj -scheme XCTestWDUITests -destination ‘platform=iOS,name=devide name’ XCTESTWD_PORT=8100 clean test
 
13、编译报错的解决办法
1)ideviceinstaller: command not found
Command /bin/sh failed with exit code 127
 
解决办法:安装ideviceinstaller
brew uninstall ideviceinstaller
brew uninstall libimobiledevice
brew install --HEAD libimobiledevice
brew link --overwrite libimobiledevice
brew install ideviceinstaller
brew link --overwrite ideviceinstaller
 
备注:在使用中如果遇到Could not connect to lockdownd. Exiting错误可以试试升级libusbmuxd并重新安装ideviceinstaller
 brew uninstall --ignore-dependencies libimobiledevice
  brew uninstall --ignore-dependencies usbmuxd
  brew install --HEAD usbmuxd
  brew unlink usbmuxd
 brew link usbmuxd
2)可以编译成功,但执行Monkey过程中报错
Assertion Failure: XCTestWDRunner.swift:39: failed: caught "NSInvalidArgumentException", "+[XCAXClient_iOS sharedClient]: unrecognized selector sent to class 0x104afc130"
 
解决办法:一开始搭建环境时使用的xcode版本为10.2。但10.2中XCAXClient_iOS没有sharedClient这个方法。最终降级为10.1
终端执行:sudo xcode-select -switch /Applications/Xcode.app/
备注:10.1和10.2 版本的xcode 可以共存。switch后面为10.1的安装路径
 
14、执行成功后可在对应目录下查找日志
存在的问题:每次运行完成后,在Xcode的Debug Ouput框中会输出相应的日志与截图保存位置,每次运行完成后日志会报错,这个错误是由于Fastmonkey的Bug,主要原因是当执行时长一到时,Monkey测试自行停止,这个停止是强退的,但Xctest没有正常退出造成的,目前还没有找到好的解决方法。
posted on 2019-07-09 11:38  darlingmz  阅读(2087)  评论(0编辑  收藏  举报