Appium-ios真机

Appium-ios真机基于WebDriverAgent封装而来,结合W3C web协议,封装多版本接口,开源框架支持iOS、android、win10、Hybrid等等多种平台和应用类型。

基础环境

工欲善其事,先利其器。

基础环境安装如下:

nodejs

node环境是appium运行的基础,直接使用Homebrew安装:

brew install node

libimobiledevice

appium iOS真机调试依赖一个重要的第三方开源包:libimobiledevice,它同iTools一样,都是可以替代iTunes,进行iOS设备管理的工具,使用Homebrew可以轻松获取并安装:

brew install libimobiledevice

ios-deploy

ios-deploy是一个使用命令行安装ios app到连接的设备的工具,原理是根据os x命令行工程调用系统底层函数,获取连接的设备、查询/安装/卸载app。类似的工具有Fruitstrap,ideviceinstaller、node-ios-device等. 可以使用npm直接安装:

npm install g ios-deploy

appium-doctor

appium-doctor是用来检测安装环境是否正常的,可以使用node安装:

npm install appium-doctor -g

检查 appium-doctor --ios or appium-doctor --android or appium-doctor ,分别用来检查ios,android自动化测试环境,或者全部测试环境。

其他依赖可以通过上述检查工具检查安装。

Appium安装

appium GUI的老版本已经在1.5.3以后很久没有更新了,同时更新了新版本的appium-desktop。在此不建议通过 npm install -g appium or npm install [email protected] 安装固定版本(原因被墙及其不稳定即便是通过cnpm+淘宝源安装也不够稳定),建议直接通过appium-desktop安装,下载地址appium-desktop。

完成安装之后打开,加载一次wda。如图:


Appium-ios真机_第1张图片
image.png

点击start server,再点击start inspector session,

Appium-ios真机_第2张图片
image.png

填写关键配置:

"automationName": "XCUITest",
"bundleId": "com.XXX.XXX",
"udid": "XXXXXXXXXXXXXXXX"

"automationName": "XCUITest"新版的xcode切换到XCUITest所以一定要写这个。

点击start Session。此时开始通过inspector查看元素。

配置WebDriverAgent

如果需要真机运行必然需要进行wda的配置,此处紧接着上一步。(上一步通过真机查看元素,必然会导致失败,原因就是wda没有配置)。

通过终端进入目录:/Applications/Appium.app/Contents/Resources/app/node_modules/appium-xcuitest-driver/WebDriverAgent(部分版本可能目录有调整需要根据自己的情况执行),执行./Scripts/bootstrap.sh,更新最新的wda代码。

完成后,打开此文件夹中的WebDriverAgent.xcodeproj工程,进行bundleID及描述文件修改

如果不修改,需要增加配置 :
"xcodeOrgId": "",
"xcodeSigningId": "iPhone Developer"
或者增加.xcconfig文件,文件内容:
DEVELOPMENT_TEAM =
CODE_SIGN_IDENTITY = iPhone Developer

Appium-ios真机_第3张图片
image.png

以及build Setting中的bundleId


Appium-ios真机_第4张图片
image.png

-------------------------------------------分割线---------------------------------------------------------

xcode11更新了机制所以签名方式有变化
如上设置后需要清除 bundle id

Appium-ios真机_第5张图片
11.png

然后在 WebDriverAgentRunnerinfo.plist 中的 Bundle identifier改成你的 bundle id,即可。

可以通过shceme选择WebDriverAgentRunner,然后通过Product–Test来测试是否修改完成。

CI方式启动appium以及结束appium

可以通过在server端机器点击appium-desktop版本的图标进行监听localhost和4723端口进行启动appium,点击关闭按钮进行关闭。

如果通过CI方式这样启动以及推出过于繁琐,而且会存在进程在进行中,无法启动或者关闭的问题。

推荐通过:
node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js启动,或者node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js --port 4725指定端口号的方式启动。

结束进程通过:ps aux |grep appium |grep -v grep |awk '{print $2}' |xargs kill -9来杀进程,安全退出。

Demo

参见我的github:iOSPerformanceTestDemo

你可能感兴趣的:(Appium-ios真机)