用到的工具整体介绍
- Homebrew:Homebrew 是 macOS 上的软件包管理器,用于在终端上安装、更新和管理各种软件包和工具。---python里的pip差不多
- Node.js:Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,用于运行 JavaScript 代码,通常用于构建后端服务器应用程序。---Appium需使用npm来安装,所以需要下载node解释器
- cnpm:cnpm 是淘宝 NPM 镜像的命令行工具,可以加快 Node 模块的下载速度。
- Carthage:Carthage 是 iOS 的依赖管理工具,用于管理项目中的第三方库和框架的依赖关系。
- ios-deploy:ios-deploy 是一个命令行工具,用于将 iOS 应用程序部署到设备上进行测试和调试。---ios-deploy是一个终端安装和调试iPhone应用的第三方开源库
- libimobiledevice & ideviceinstaller:libimobiledevice 是一个开源库,提供了在非苹果设备上与 iOS 设备通信的功能,而 ideviceinstaller 则是用于安装、卸载和浏览 iOS 应用程序的命令行工具。--跟安卓的adb差不多用来查看连接设备信息
- Xcode:Xcode 是苹果公司开发的集成开发环境(IDE),用于开发 macOS、iOS、watchOS 和 tvOS 应用程序。
- Appium & WebDriverAgent:Appium 是一个用于自动化移动应用程序的开源工具,支持多种平台和编程语言。WebDriverAgent 是 Appium 的一个组件,用于与 iOS 设备通信并执行自动化测试。
- Appium Inspector:Appium Inspector 是 Appium 提供的图形用户界面工具,用于检查元素、录制操作和生成自动化测试脚本。
安装命令
Homebrew:在终端执行以下命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装完成后终端输入brew -v检测,显示版本号即安装成功
Node.js:
brew install node
安装成功后终端输入node -v检测,显示版本号即安装成功
cnpm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装成功后终端输入cnpm --version检测,显示版本号即安装成功
Carthage:
brew install carthage
安装成功后终端输入carthage version检测,显示版本号即安装成功
ios-deploy:
cnpm install -g ios-deploy
安装成功后终端输入ios-deploy -V检测,显示版本号即安装成功
libimobiledevice:
brew install --HEAD libimobiledevice
先连接手机,在终端中输入 ideviceinfo 命令来查看连接到计算机的 iOS 设备的基本信息
ideviceinstaller:
brew install ideviceinstaller
先连接手机,在终端中输入 idevice_id 该命令会列出连接到电脑的 iOS 设备的唯一标识符(UDID)
Xcode:
商店下载就行
安装appium,也可以不通过命令来下载,直接下载图形化的appium界面(Appium Server GUI官网:https://github.com/appium/appium-desktop/releases)
sudo cnpm install -g appium
查看版本:appium -v
启动服务:appium
安装appium-doctor,用来检测appium环境
安装:cnpm install -g appium-doctor
查看:cappium-doctor --ios
安装Appium Inspector:
Appium Inspector官网:https://github.com/appium/appium-inspector(右侧Releases中下载最新版本,点击dmg包下载并安装即可)
配置WebDriverAgent环境
查看appium安装路径终端输入:
ls -l /usr/local/bin/appium
结果如下
lrwxr-xr-x 1 root wheel 44 4 28 15:32 /usr/local/bin/appium ->
../lib/node_modules/appium/build/lib/main.js
进入目录/usr/local/lib/node_modules/appium,给node_modules目录递归给最高权限,有写权限的可以跳过这一步:
cd /usr/local/lib/node_modules/appium -进入appium目录
sudo chmod -R 777 node_modules -给当前用户最高权限
进入node_modules目录下appium-webdriveragent,并打开【WebDriverAgent.xcodeproj】项目
cd node_modules/appium-webdriveragent -进入目录
open . -以窗口形式打开目录
双击【WebDriverAgent.xcodeproj】,会用Xcode打开项目
!!!如果appium下没有appium-webdriveragent,就下载WebDriverAgent包:
官网:https://github.com/appium/WebDriverAgent/releases 下载里面的Source code(zip)
再移动到Appium中WebDriverAgent包:
sudo mv /Users/lichen/Downloads/WebDriverAgent-8.2.1 /usr/local/lib/node_modules/appium//node_modules
通过Xcode配置WebDriverAgent,并安装到连接手机上面 1. 设置【WebDriverAgentLib】、【WebDriverAgentRunner】、【IntegrationApp】的Team,选择自己登录的Apple ID
2.设置【WebDriverAgentRunner】、【IntegrationApp】Build Settings下Packaging目录下Product Bundle Identifier的id,把其中facebook改掉就行,自己随意改
3. 设置【Product】→【Scheme】选择【WebDriverAgentRunner】
4. 选中自己连接的设备,command + u 运行即可,第一次运行需要在真机设置里面给证书设置信任【设置】→【通用】→【VPN与设备管理】选择开发者APP下面刚安装的WebDriverAgent信任即可,在次command+u即可正常运行,启动成功后Xcode下面会出一串URL
5.可以去运行appium了,有时候运行appium会自动删除掉手机下载的WebDriverAgent,那么再重新配置,然后在xcode里运行打开WebDriverAgent,不要关闭了,再去运行appium就好了
还不行就更新xcode,Xcode更新之后需要先下载模拟器,才能显示连接的真机,从Xcode下载模拟器总是失败,而且Xcode下载模拟器不支持断点续传,每次失败了又要重头下载,就可以手动下载
1.先打开并启动控制台应用,用于抓取模拟器的下载链接,打开之后点击开始
2.选择想要下载的模拟器,并点击下载
3.去控制台应用中搜索simulator,将下方的链接复制出来,比如 https://download.developer.apple.com/Developer_Tools/iOS_16.4_Simulator_Runtime/iOS_16.4_Simulator_Runtime.dmg
4.打开浏览器将刚才复制的模拟器下载链接粘贴进去就可以下载了,如果进去了打不开不下载就打开Xcode,点击左上角的xcode,选择open dev tools 再选择 more developer tools 进入后,把刚刚的连接复制到浏览器上面的一小行的地址栏里,打开就可以下载了
5.下载完成之后,打开命令行工具,输入下面命令并回车
sudo xcode-select -s /Applications/Xcode.app
xcodebuild -runFirstLaunch
xcrun simctl runtime add "下载文件的路径以及名字"
appium和appium Inspector的使用
先启动Appium Server,直接startserver就行(jdk和sdk环境要配好)
启动 appium Inspector ,里面的 Remote Path:/wd/hub
参数例子
安卓
{
"platformName": "Android",
"appium:platformVersion": "12",
"appium:deviceName": "设备号",
"appium:appPackage": "com.bbk.calendar",
"appium:appActivity": "com.bbk.calendar.MainActivity",
"appium:unicodeKeyboard": true,
"appium:resetKeyboard": true,
"appium:automationName": "Appium"
}
Ios
{
"platformName": "iOS",
"appium:platformVersion": "16.1",
"appium:deviceName": "iPhone X",
"appium:app": "com.tencent.xin",
"appium:udid": "设备uuid",
"appium:noReset": "true"
}
udid - 连接设备id,终端输入:idevice_id -l 可查连接设备的udid
ios需要将手机设置—开发者中的 Enable UI Automation启用