前面一直没更新技术文章,确实是我懒,但我保证,我会更懒!
只要没人催更,我可以一直偷偷写成私人笔记存本地而不发表 ~
前言
CSDN:
ios自动化-Xcode、WebDriverAgent环境部署
ios获取原生系统应用的包
如果Mac电脑没有配置好Xcode相关环境,可以参考以上文章。
必要条件
Mac电脑,OS版本在12.4及以上(低于这个版本无法安装Xcode14,装不了Xcode14就打包不了IOS16的驱动)
IOS设备手机,IOS版本在11.0及以上
Xcode14.0及以上
公司的IOS开发者账号(如果是个人账号,只能用七天就要重新打包,这就失去了打包的意义了)
为何做这个
在之前写的IOS自动化教程中,我都是采用的Mac电脑连接ios设备,使用Xcode一个个进行打包,非常麻烦。
就这样忍受了不知道多久,一次偶然的机会,我在sonic官网看到了可以将WebDriverAgent打包成ipa包,直接进行安装,这不就是当年我一直想要做的事情却因为查不到资料而放弃了的事情吗。
由于官网写的比较精简,只有一些命令,于是我打算完善和整合一下详细的操作步骤。
这样做了之后,只需要拿着ipa包直接进行安装,然后启动WebDriverAgent服务就可以了。
注:ipa包类似于Android端的apk安装包,ipa是ios的安装包后缀格式。
一、下载WebDriverAgent
appium提供的:https://github.com/appium/WebDriverAgent
Airtest提供的:https://github.com/AirtestProject/iOS-Tagent
直接通过git clone
下载到Mac电脑本地即可。
二、进行打包WDA.ipa
「检查当前是否满足前面的必要条件,没满足请先满足,否则后面无法进行或有各种各样的报错!」
确保Mac电脑已经安装了Xcode14.0及以上版本(此处是为了兼容现在最新的ios16设备)
确认ios设备和Mac电脑已经连接(插上数据线就行,弹出信任按钮点击信任即可)
确保Mac电脑有足够的内存,Xcode很大!
1、指定xcode运行路径
启动终端,运行xcodebuild
进行检查配置 , 如果没报错可以进行第2步,有报错跟着我一起解决
(base)QA-IPv6:Downloadsavidly$xcodebuildxcrun:error:activedeveloperpath("/Applications/Xcode.app/Contents/Developer")doesnotexistUse`sudoxcode-select--switchpath/to/Xcode.app`tospecifytheXcodethatyouwishtouseforcommandlinedevelopertools,oruse`xcode-select--install`toinstallthestandalonecommandlinedevelopertools.See`manxcode-select`formoredetails.
报错解决一:path does not exist
这里报错的错误日志提醒也非常明显,大意就是说没有找到你的Xcode.app
这个路径下的/Contents/Developer
这些文件,所以我们要指定一下Xcode.app
的路径,这个路径就是你下载Xcode解压之后所放的位置,由于我当初下载的是Xcode-beta14.0
版本,所以我就指定的是Xcode-beta.app
,可以按需更改这个文件的名字。
并且在日志中给出了解决办法:
sudoxcode-select--switchpath/to/Xcode.app
用这个命令进行指定你所要使用的Xcode。
「实操指定路径命令」
sudoxcode-select--switch/Users/avidly/Downloads/Xcode-beta.app
实际运行效果:
执行的时候要输入密码,这个密码是你Mac电脑的密码
(base)QA-IPv6:Downloadsavidly$sudoxcode-select--switch/Users/avidly/Downloads/Xcode-beta.appPassword:(base)QA-IPv6:Downloadsavidly$
报错解决二:not contain an Xcode project, workspace or package.
除了第一个报错,我们还可能遇到这个报错
xcodebuild:error:Thedirectory/Users/avidly/DownloadsdoesnotcontainanXcodeproject,workspaceorpackage.
这个报错,如果没有从事过xcode开发或者对xcode不是很熟悉的话,可能不是很清楚他的含义。
这里作为一个门外汉,通过自己的实践经验做个说明:
这个报错表示,「当前所运行的文件目录下,没有找到xcode类型的文件项目。」
「解决方案:」
1、打开Xcode,参考我之前的文章,打开对应的WebDriverAgent文件,选好各项配置,填好开发者账号(公司级别)
2、打开Xcode,File -> Save As Workspace…
3、保存名字可以任意取,我保存的是
xiaozaiTest.xcworkspace
4、将该文件放到和
xcode.app
同一目录下。
2、按步骤执行命令
第一步
执行如下命令前,需要cd到第一步中我们保存的xcode项目文件目录下
$xcodebuildbuild-for-testing-schemeWebDriverAgentRunner-sdkiphoneos-configurationRelease-derivedDataPath/tmp/derivedDataPath
「实操截图展示」
这里需要等一小会,直到出现「TEST BUILD SUCCEEDED」,就表示成功了。
第二步
执行如下命令
$cd/tmp/derivedDataPath$cdBuild/Products/Release-iphoneos$mkdirPayload&&mv*.appPayload
第三步
执行如下命令
$zip-rWDA.ipaPayload
执行完毕后,你在当前目录下可以看到有个WDA.ipa
文件,这就代表我们成功了。
「这个时候我们就可以脱离Mac,直接使用windows操作了。」
之后也不需要再来xcode进行构建WebDriverAgent了,直接安装这个ipa包即可。
三、安装ipa文件
前面我们把ipa文件构建出来了,接下来就是需要进行安装了。
安装ipa文件可以通过iTools,也可以通过其他第三方进行安装,比如我比较推荐的是tidevice,它可以使用python编写批量安装,批量启动的脚本,这些我均已在公司落地。
下载tidevice
直接通过pip进行下载,这里我给大家加个速,我自己配置了全局加速,相关文章可以查看我之前写的pip设置全局镜像源
。
tidevice的相关命令在之前也有写过,可以进行翻阅
$pipinstalltidevice-ihttps://pypi.tuna.tsinghua.edu.cn/simple
安装
「只连接了一台ios设备可以通过如下命令安装」
$tideviceinstallWDA.ipa
「连接了多台设备可以通过如下命令指定设备安装」
$tidevice--udid设备的UDID号installWDA.ipa
四、启动WebDriverAgent服务
这个我之前有写过批量启动的文章:
公众号 :python非阻塞模式批量启动ios设备的WebDriverAgent
博客:python批量启动ios设备的WebDriverAgent
这里给一个示列:
tidevice--udid49687f67a4c70fbd027e19b4a5e40218acdc06e4xctest-Bcom.facebook.WebDriverAgentRunnerxzz.xctrunner-eUSB_PORT:8118
–udid : 表示指定设备运行
49687f67a4c70fbd027e19b4a5e40218acdc06e4 :ios设备的udid
com.facebook.WebDriverAgentRunnerxzz:xcode打包构建时写的包名
USB_PORT:8118 通过8118端口进行连接
看到WebDriverAgent start successfully
则表示WebDriverAgent服务启动成功了!
总结
主要命令如下:
$xcodebuildbuild-for-testing-schemeWebDriverAgentRunner-sdkiphoneos-configurationRelease-derivedDataPath/tmp/derivedDataPath$cd/tmp/derivedDataPath$cdBuild/Products/Release-iphoneos$mkdirPayload&&mv*.appPayload$zip-rWDA.ipaPayload$tideviceinstallWDA.ipa
最后:下方这份完整的软件测试视频学习教程已经整理上传完成,朋友们如果需要可以自行免费领取【保证100%免费】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
软件测试技术交流群社:786229024(里面还有工作内推机会,毕竟我们是关系社会。)
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。