近期由于工作需要,本小菜在弄appium+ios+iphone真机的移动自动化,在网上找寻各种资料,发现针对IOS方面的资料少之又少,公司其它部门的弄过的同事也寥寥无几,即使有,也是安卓方面的。本次书写此文章,是为了帮助依然在坑里摸爬滚打的伙伴们,早日出坑。
一、环境:
macBook Pro:10.13.4
iphone真机:iphone6 plus 11.3.1
appium 1.8.1
xcode 9.3.1
二、appium原理(转自https://blog.youkuaiyun.com/achang21/article/details/60956618的介绍)
Appium是一个开源、跨平台的测试框架,可以用来测试原生及混合的移动端应用。Appium支持IOS、Android及FirefoxOS平台。Appium使用WebDriver的json wire协议,来驱动Apple系统的UIAutomation库、Android系统的UIAutomator框架。Appium对IOS系统的支持得益于Dan Cuellar’s对于IOS自动化的研究。Appium也集成了Selendroid,来支持老android版本。
Appium支持Selenium WebDriver支持的所有语言,如java、Object-C、JavaScript、Php、Python、Ruby、C#、Clojure,或者Perl语言,更可以使用Selenium WebDriver的Api。Appium支持任何一种测试框架。如果只使用Apple的UIAutomation,我们只能用javascript来编写测试用例,而且只能用Instruction来运行测试用例。同样,如果只使用Google的UIAutomation,我们就只能用java来编写测试用例。Appium实现了真正的跨平台自动化测试。
appium选择了client-server的设计模式。只要client能够发送http请求给server,那么的话client用什么语言来实现都是可以的,这就是appium及webdriver如何做到支持多语言的;
三、环境搭建步骤:
---------------------必要的库安装--------------------------------------
1.xcode安装,app store里安装xcode
2.如果没有安装 过homebrew,请先安装
/usr/bin/ruby -e "$(curl –fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
3.如果没有安装过npm及node.js,请先安装
brew install npm,此命令执行后,npme和node.js会全部安装完毕
4.安装依赖库
brew install libimobiledevice --HEAD
npm install -g ios-deploy #如果是iOS10以上的系统才需要安装
如果没有安装 libimobiledevice,会导致Appium无法连接到iOS的设备,所以必须要安装,如果要在iOS10+的系统上使用app