该篇文章能带你初步进行自动化测试环境搭建,以及运行后实现通过Xcode/终端把demo安装到手机上。
0、安装Xcode,v11.3

1、安装类库Homebrew 、 安装carthage
1)Homebrew简介:
是Mac OSX上的软件包管理工具,用以安装和卸载mac上的其他工具,其缩写为brew,那么安装和卸载的语法是:brew install/uninstall xxxx;

如果我没有记错,有些mac自带Homebrew,那样就可以直接使用了,如果没有,则需要安装。如何查看电脑是否安装有Homebrew呢?很简单,终端输入 brew ,如果出现下面的内容,则说明已经安装好了。

2)Homebrew安装:
如果未安装homebrew,则需要Mac必带的ruby来安装homebrew,如下:打开终端,执行:(安装会提示输入mac密码,回车等待安装,需要一点时间,但是速度比浏览器下载快太多了。)---下面是一条命令哟。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3)校验
$ brew -v
4)更新brew:
$ brew update 或⬇️

5)安装carthage
carthage,iOS 第三方库管理工具, 项目依赖管理,主要是 WebDriverAgent 使用,WebDriverAgent 是用它做项目依赖的。类似于 java 的 maven;
$ brew install carthage
$ carthage version 查询版本,目前为0.34.3
$brew uninstall carthage 卸载

2、安装类库:node (同步会自动安装npm)
1)简介:较新版本的node安装后,会附带npm工具。 npm即node package manager,用来搜索、下载、管理node.js相关的套件。对于前端开发者,node、npm是必备安装环境呢。
2)安装(可以先校验下是否已安装,未安装再安装):$ brew install node
3)校验:$ node -v 、$ npm -v

4)npm的一些使用:
$ npm help //查看npm帮助
$ npm find //查找组件
$ npm install //安装组件
$ npm remove //删除组件
3、安装依赖库:libimobiledevice(必装)、ios-deploy (iOS10+还必须安装)
1)安装 libimobiledevice。(必装)
libimobiledevice是跨平台的软件协议,不需要越狱就能访问ios设备;类似android的adb工具,用于获取ios设备信息。

$ brew install libimobiledevice --HEAD 或者 $ brew install --HEAD libimobiledevice

校验:拿上面的命令试下即可,如果安装失败会提示comment not found,如下则安装成功。

⚠️若执行时遇到无权限(如下图所示),则执行如下2个命令后重试 :

$ sudo chown -R $(whoami) /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew/locks
$ chmod u+w /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew/locks
2)下面两个安装哪个,请根据您的ios版本进行安装,因为考虑到ios一直在升级或者要测试低版本兼容性,所以呢,下面两个最好都安装下喽!
2.1)如果你的IOS 版本是10及以上,则需要安装ios-deploy (仅支持IOS10及以上的高版本)
ios-deploy也是一个终端安装和调试iPhone应用的是第三方开源库,使用时需要开发者证书和Xcode7以上版本,(----$ ios-deploy -c如果不报错,说明已安装)

$ npm install -g ios-deploy 或 $ cnpm install -g ios-deploy
⚠️如果提示没权限则执行:
$ sudo chown -R $(whoami) /usr/local/lib/node_modules/ios-deploy
$ chmod u+w //usr/local/lib/node_modules/ios-deploy
2.2)如果你的IOS 版本是9及以下,则需要安装ideviceinstaller(仅支持IOS9及以下的低版本):
$ brew install ideviceinstaller
校验(如果不报错,说明安装成功):
$ ideviceinstaller -l

常用命令,自行
4、Appium-desktop 1.15.1安装
Appium Desktop与Appium不是同一个东西。Appium Desktop是对于Appium而言,是一个拥有更多相关工具的图形化界面。它们各自有各自的Cadence和版本控制系统。我们使用desktop进行实践:
1)下载链接: https://github.com/appium/appium-desktop/releases,可以手动下载或者git,目前最新版本为v1.15.1.
或者直接执行安装:$ brew cask install appium
2)将下载的dmg文件拷贝到文件系统(最好的地方是“应用程序”文件夹)。因为不支持从附加的dmg上运行Appium。

3)双击进行安装
3.1)遇到报错:不能打开软件提示无法打开“appium”,因为Apple无法检查其是否包含恶意软件。

解决:在命令行输入:$ sudo xattr -rd com.apple.quarantine /Applications/Appium.app ----(应用名称),输入密码回车重新打开即可

或者如下图,解锁后选择仍要打开:

3.2)重新双击进行启动即可(里面的端口可以自定义)

appium desktop,也可以使用命令行启动:
1⃣️$ node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js --port 4723
//--port ,Appium的主要端口
2⃣️也可以在命令行中添加--port、--bootstrap-port、--selendroid-port等appium服务命令行参数:
node /Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js --port 4723 --bootstrap-port 4724 --selendroid-port 8090
// --bootstrap-port,也可以写成-bp ,是连接Android设备bootstrap的端口号,默认是4724
// --selendroid-port 8090,当使用了selendroid,用来和 selendroid 交互的本地端口
// --chromedriver-port chromedriver端口(当使用了webviews或者chrome)
3⃣️更多参数:https://www.cnblogs.com/Teachertao/p/10961256.html
5、appium-doctor 安装
appium-doctor用于环境检查,可以查看与iOS相关配置是否完整,下图是全部配置都成功,如果出现有一项不正确在执行一次就可以,或者直接跳过。
安装appium-desktop后一般会默认也安装了,如果执行$ appium-doctor –ios进行环境检查时提示无命令,则可能是部分appium-desktop版本需要手工安装appium-doctor,如下一步步执行即可
1)$ npm install appium-doctor -g
// 若提示无权限,则执行如下:
$ sudo chown -R $(whoami) /usr/local/lib
$ chmod u+w /usr/local/lib
再次执行安装doctor即可:

2)环境检查:(warn可以忽略,未安装的安装下即可)
$ appium-doctor –iOS


6、更新Appium中的WebDriverAgent
WDA: WebDriverAgent的简称,是Facebook为苹果开发的一个自动化测试框架。
WDA的安装移步到另一篇文章中查看(操作完后记得回来哟):https://www.jianshu.com/p/b5bc45362fa0
7、实际运行:利用Appium-Python-Client进行iOS的自动化测试
一般都是使用Python进行客户端的UI自动化,所以在真正运行楼主的case之前,需要先把相关的依赖环境安装完成
1)安装python,一般mac自带
$ brew install python
2)安装Python的appium模块,即下载python-client ,放在那里终端就切换到哪里去git
$ git clone https://github.com/appium/python-client.git
$ cd python-client
$ python setup.py install
//执行时提示没有没权限,则执行如下赋权
$ sudo chown -R $(whoami) /Library/Python/2.7/site-packages/
$ chmod u+w /Library/Python/2.7/site-packages/
3)下载测试demo(appiumSimpleDemo):里面主要写了个简单的iOS工程文件,并包含一个简单的Python测试脚本
$ git clone https://github.com/zhshijie/appiumSimpleDemo
8、运行脚本,开始自动化测试
1)打开下载后的appiumSimpleDemo文件,打开appiumSimpleDemo.xcodepro程序,配置下TARGET的签名

2)在appiumSimpleDemo的根目录执行编译指令,编译出一个app文件xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release,编译成功后app文件的地址会打印在命令行中
$ cd xcode_workspace/appiumSimpleDemo
$ xcodebuild -sdk iphoneos -target appiumSimpleDemo -configuration Release


//编译时如果报错xcode-select: error: tool 'xcodebuild' requires Xcode,这种情况是xcodebuild的路径不正确。执行命令($xcode-select--print-path / $xcodebuild-showsdks)查看路径。

//报错解决:将路径切换到Xcode的目录下(实践成功):
$ sudo xcode-select--switch/Applications/Xcode.app/Contents/Developer/
3)配置python文件
打开appiumSimpleDemo中的appiumSimpleDemo.py文件,将,修改setup中的几个参数,将app的路径,设备的相关信息修改成当前连接设备的信息。----$ ios-deploy -c查看udid&设备名称。


4)运行
法1⃣️:在Xcode中运行:cmd+u,或者project>test。(无需启动appium)
法2⃣️:运行Appium程序,然后运行python测试文件(在终端中执行:在`appiumSimpleDemo.py`所在的目录运行 `$ python appiumSimpleDemo.py` )
------如果提示SyntaxError: Non-ASCII character则在py文件中添加“# encoding: utf-8”或者“# -*- coding:UTF-8 -*-”即可。
-------如果报错链接被拒,则是因为appium未启动,启动再次执行即可。

结果编译成功。并且在手机上安装了demo。

⚠️遇到的问题:如果xcode虽然编译成功而且安装了demo但是报了个错(无法启动“appiumSimpleDemo”-),如下:
解决:在设置〉通用〉设备管理或者描述文件〉信任即可,如果遇到完成信任的问题,请参考 ios13找不到描述文件 一定能解决你的问题!


网友评论