关于Appium for IOS

Appium是目前最主流的app自动化测试技术,能够同时支持IOS、Android平台上的移动应用自动化测试,能支持众多语言,包括:Java、Python、Ruby、JavaScript等;并且Appium是开源免费使用的。

目前网上的关于Appium的学习教程绝大多数以Android为主,关于IOS端的比较少,而且很多教程年久失修,已经不再适用于目前的Appium版本了。希望能通过这篇文章解决大家的IOS App自动化环境搭建的问题。

关于WebDriverAgent

WebDriverAgent是Facebook开发的IOS端自动化测试工具,在Github上开源:

https://github.com/facebookarchive/WebDriverAgent

Appium项目采用WebDriverAgent作为IOS端App自动化的引擎(类似于Android平台上的UIAutomator作用),WebDriverAgent通过在IOS端实现了WebDriver协议能够远程控制IOS设备,通过它能够进行启动、杀死应用,点击或者滚动等操作。

WebDriver协议

WebDriver是一套基于HTTP协议的JSON格式规范,因为Android、IOS、web网页端都有自己的UI操作实现逻辑,所以需要统一的规范能够对这些平台进行操作来屏蔽平台的差异。通过WebDriverAgent我们可以通过相同的API来对这些平台进行自动化操作,比如我们熟悉的Selenium、Appium都是实现了WebDriver协议。

在Appium和IOS系统迭代发展过程中,Appium并不是一直使用WebDriverAgent作为IOS端的自动化测试引擎。

在IOS 9之前使用UIAutomation作为自动化引擎,该引擎有许多缺陷,比如只能在单台Mac电脑上测试单台设备
IOS 9.3使用了XCUITest
IOS 9.3之后Appium就开始采用WebDriverAgent方案了

需要注意的是:目前官方Facebook已经没有在维护WebDriverAgent了,所以如果使用Facebook的WebDriverAgent有可能不适配后续的IOS版本及Appium

https://github.com/facebookarchive/WebDriverAgent

Appium项目有内置了WebDriverAgent,而且也在同步修复BUG更新中,所以强烈建议使用Appium内置的WebDriverAgent :

https://github.com/appium/WebDriverAgent

环境部署

环境说明

Mac版本:macOS Monterey 12.4(intel平台)
Xcode版本:V13.4.1
Appium版本:V1.22.3

基础依赖环境

1、Xcode

Xcode是Mac OS平台上的集成开发工具(IDE),用来开发Mac OS应用和IOS移动端应用,在Appium for IOS环境搭建时需要通过Xcode编译WebDriverAgent运行在设备中。Xcode安装比较简单,直接在Apple Store里面搜索下载安装即可。

2、Homebrew

Homebrew是Mac平台的软件管理软件,它可以使我们更加容易安装一些其他软件,仅需要执行简单的安装命令,就能下载安装所需要的软件,省去了下载、解压、拖拽等繁琐的步骤。

官方提供了Homebrew的安装命令,但是因为国内网络的问题导致不能成功

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

通过镜像安装方式:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

(推荐使用中科大的镜像源)

3、Carthage

Carthage用来管理项目依赖, 类似于 Java 中的 Maven;后面编译WebDriverAgent项目时就需要用到它

brew install carthage
carthage version

4、ios-deploy

ios-deploy一个不需要用Xcode安装和调试应用的命令行工具。需要一个有效的开发者证书,需要 Xcode 7以上的版本。终端输入命令进行安装:

brew install ios-deploy

5、ideviceinstaller

ideviceinstaller是一个与iOS设备的installation_proxy交互的工具,允许安装、升级、卸载、存档、还原和列举已安装或存档的app。此工具用于在真机上运行测试,默认是都安装的。

brew install ideviceinstaller

6、libimobiledevice

libimobiledevice是一个跨平台的软件库 ;不依赖任何已有的私有库,不需要越狱。应用软件可以通过这个开发包轻松访问设备的文件系统、获取设备信息,备份和恢复设备,管理 SpringBoard 图标,管理已安装应用,获取通讯录、日程、备注和书签等信息

#安装最新版本libimobiledevice
brew install libimobiledevice --HEAD

Appium环境

1、Node&npm

Node是一个javascript运行时环境,npm是节点包管理器。我们需要这些,因为Appium是一个node应用程序。

brew install node

2、Appium

Appium提供了Appium Desktop(桌面版)和Appium Server命令行版本两种安装方式,前者有带了图形化界面,后者是纯命令行方式。两种方式任选其中一种即可。

2.1、Appium Desktop

下载地址:
https://github.com/appium/appium-desktop/releases

需要注意的是,从Appium Desktop V1.22.0版本开始,Appium Desktop内置的检查器(一个可以用来获取页面元素信息的工具)已经被移除掉了,成为了一个单独的程序。

下载安装过程非常简单,这里我们一般选择新版本就好了。

2.2、Appium Server命令行版本

Appium server通过npm可以下载管理

npm install -g appium

默认将会安装最新版本,如果需要指定版本,通过以下命令:

npm install -g appium@1.7.2

检查appium版本

appium -v

启动appium服务

# -a参数:设置appium工作地址
# -p参数,设置appium工作端口号
appium -a 127.0.0.1 -p 4723

3、安装Appium doctor

Appium doctor可以用于检测Appium所需要的依赖环境是否是成功的

npm install appium-doctor -g
#检测iOS环境是否安装成功
appium-doctor --ios

necessary dependcies 必须全部是打勾状态 ,可选部分依赖可以不用全部安装。

4、安装Appium inspector

前面有提到过,新版本Appium Desktop(从V1.22.0版本开始)已经将Appium inspector(检查器)工具移除了,所以如果想要使用检查器工具我们需要额外再下载Appium inspector:

https://github.com/appium/appium-inspector/releases

下载完之后直接安装dmg文件即可。

配置运行WebDriverAgent

前面我们说过WebDriverAgent是Appium测试IOS应用的自动化引擎,新版本Appium和IOS最好使用Appium内置的WebDriverAgent,当Appium(Appium桌面版或者命令行版本)安装好之后我们可以使用Xcode来编译运行WebDriverAgent。

对于Appium命令行版本,WebDriverAgent在
/usr/local/lib/node_modules/appium/node_modules/appium-webdriveragent/ 路径下

对于Appium桌面版本,WebDriverAgent在
/Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-webdriveragent 路径下

这里以命令行版本为例
点击WebDriverAgent.xcodeproj使用Xcode打开WebDriverAgent工程:

配置WebDriverAgent

第一次配置需要创建开发者账号

选择 WebDriverAgentLib->Signing & Capabilities,输入 apple id 和密码

之后点击Download Manual Profiles,再点击 Manage Certificates

添加证书:

之后回到Xcode工具的Signing & Capabilities再选择刚才添加好的Team:

还需要配置WebDriverAgentRunner,在 Team 中同样选择即可:

运行WebDriverAgent

选择
Product->Scheme->WebDriverAgentRunner

Destination 中选择要测试的设备,这里我选择的是一台iphone8 15.5的模拟器,当然你可以选择其他的设备进行测试

最后点击 Product->Test,经过编译运行成功之后,会启动模拟器并且在模拟器中安装一个无图标的 WebDriverAgent 应用,启动了 WebDriverAgent 应用之后又会返回到桌面。并且可以在 Xcode 控制台日志中看到有 ServerURLHere 提示

在浏览器中输入ServerURLHere中间的http://IP地址:端口/status,出现如下提示则表示WebDriverAgent安装配置成功并准备好接收请求了。

准备IOS测试app

很多小伙伴在学习阶段没有ios的app测试包可供使用,这里我们可以用appium官方提供的ios-uicatalog这个demo项目

https://github.com/appium/ios-uicatalog

该demo项目里面包含了一些操作示例,比如滑动、webview元素、输入、点击操作,我们可以用它来练习IOS自动化

1、克隆项目代码到本地

git clone https://github.com/appium/ios-uicatalog.git

2、运行项目

使用xcode打开项目目录下的UICatalog.xcodeproj文件,直接点击运行按钮,之后会在设备中安装UICatalog应用

Appium inspector识别页面元素

借助Appium检查器工具,我们可以识别app页面元素信息辅助编写自动化测试脚本,将之前安装好的appium检查器工具启动(需要注意的是:使用检查器工具之前需要将appium服务启动)

配置说明:

Remote Host:appium服务工作ip地址
Remote Port:appium服务工作端口号
Remote Path:appium访问地址,默认都是为/wd/hub这个节点
Desired Capabilities(所需能力)配置
platformName:测试平台
platformVersion:系统版本
deviceName:设备名
udid:设备唯一标识符
bundleId:测试app的唯一标识,类似于android应用的包名

说明:在填写所需能力配置时,不需要加前缀:appium:,当保存配置之后,检查器工具会自动为我们加上。

udid参数值如何获取?

选择xcode工具栏上面的Window->Devices and Simulators,选中对应设备即可看到udid

bundleId参数值如何获取?

打开Xcode,对应项目工程中选择General即可看到

参数填写完毕记得保存下,否则下次重新启动appium检查器需要重新填写,点击Start Session启动回话,之后可以通过该工具获取app页面元素信息了。

最后: 可以在公众号:伤心的辣条 ! 自行领取一份216页软件测试工程师面试宝典文档资料【免费的】。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

现在我邀请你进入我们的软件测试学习交流群:746506216】,备注“入群”, 大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,还会有免费直播课,收获更多测试技巧,我们一起进阶Python自动化测试/测试开发,走向高薪之路。

喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一 键三连哦!

软件测试工程师自学教程:

这才是2022最精细的自动化测试自学教程,我把它刷了无数遍才上岸字节跳动,做到涨薪20K【值得自学软件测试的人刷】

接口性能测试 — 软件测试人必会618实战场景分析

软件测试工程师月薪2W以上薪资必学技能 — Python接口自动化框架封装.

美团面试真题_高级测试25K岗位面试 — 软件测试人都应该看看

测试开发之全面剖析自动化测试平台 — 软件测试人的必经之路

软件测试必会_Jmeter大厂实战 — 仅6步可实现接口自动化测试

Jmeter实战讲解案例 — 软件测试人必会

2022主流技术 Appium+IOS 自动化测试环境搭建相关推荐

  1. iOS自动化测试环境搭建

    1 环境准备 1.1 Mac os x 1.2 brew Mac os x的包管理工具,安装方法:终端输入: /usr/bin/ruby -e "$(curl -fsSL https://r ...

  2. iOS自动化测试环境搭建总结

    1.关于iOS真机和模拟器自动化环境搭建 参考博文: Appium+Python3+iOS真机环境搭建 iOS自动化测试:mac下iOS10 appium测试环境的搭建 IOS + Appium自动化 ...

  3. 最新出炉--IOS自动化测试环境搭建(Python Java)

    一.前言 IOS的App自动化测试与Android的一样,也可以用appium来进行.但是IOS自动化依赖苹果的osx系统.Xcode构建等,且封闭的系统需要苹果开发者账号才可以驱动真机.Appium ...

  4. iOS自动化测试-环境搭建

    应用场景 想要进行iOS自动化测试,必须进行环境的搭建 需要的环境 macOS系统电脑 Xcode 待测试的iOS项目 appium Desktop python pycharm Download P ...

  5. android和ios测试环境搭建,iOS自动化测试环境搭建

    macOS相关库安装 * libimobiledevice brew install libimobiledevice 使用本机与iOS设备的服务进行通信的库. * ideviceinstaller ...

  6. appium ios自动化环境搭建

    前言:ios的自动化搭建要比Android的复杂一点,其中配置WebDriverAgent会稍微麻烦一点,但其他步骤总体上和Android差不多 所需环境: macOS电脑 Xcode 待测试的iOS ...

  7. 全网最全appium工作原理以及appium自动化测试环境搭建教程

    目录:导读 一.前言 二.Appium简介 三.搭建Appium+Python自动化测试环境 1.安装JDK并配置JDK的环境变量. 2.安装SDK并配置SDK的环境变量. 3.安装夜神模拟器并在模拟 ...

  8. Win + Appium + Android/IOS + Python环境搭建

    说明:此文章仅为自己学习时记录,比较乱,不推荐读者查阅.  IOS自动化测试: 注意:WebDriverAgent最好下载appium的(而不是facebook下的):GitHub - appium/ ...

  9. 无Mac机IOS开发环境搭建手记

    一直以来都是做Web开发的,说实话时间长了总有些腻烦的感觉.最近一直在关注移动领域的开发,想从这个从未入手过的领域找点新鲜感和激情.在 Android和IOS之间的技术选型上确实犹豫了好久,Andro ...

  10. 手机端自动化测试环境搭建

    移动自动化测试 环境搭建 为什么要搭建环境1. 为了能让响应的程序能识别或运行我编写的程序或命令依赖那些环境?1. JAVA(环境)2. 安卓手机(模拟器)3. SDK命令4. 自动化测试工具(App ...

最新文章

  1. 更换YUM及升级包方法
  2. 如何使用Fiddler调试线上JS代码(转自:http://www.cnblogs.com/RockLi/p/3511132.html)
  3. Visual Studio 中的应用程序开发
  4. php里面12小时制和24小时制的选择方法
  5. CodeForces - 616D Longest k-Good Segment
  6. expdp导出表结构_(转)oracle使用expdp、impdp和exp、imp导入导出表及表结构
  7. 手机短号(hdu2081)
  8. CSS从大图中抠取小图完整教程(background-position应用)【转】
  9. csv是python内置模块吗_Python--CSV模块 - 一只小小的寄居蟹 - 博客园
  10. 类垂直站点插件实现与分享
  11. 快递单用什么打印机比较好?
  12. CRMEB 商城分销功能
  13. 网页播放的本地视频代码
  14. 二维码原理与编码介绍
  15. 亚马逊、谷歌关停业务背后,互联网巨头疯狂扩张时代结束
  16. 网络访问之——HTTP
  17. HttpClient 模拟登录手机版新浪微博
  18. 计算机专业暑假计划,考研计算机:最适合复习的暑假黄金期来了
  19. MATLAB--数字图像处理 车牌识别之简易识别程序
  20. 中华万年历CTO杭建:Java后端技术概览

热门文章

  1. 【托马斯微积分】(12版)阅读笔记1:函数
  2. 用Anaconda下载tensorflow(windows)小白教程
  3. 通过apizza生成python接口测试代码
  4. MES系统的功能详细以及应用价值介绍
  5. Axure RP 8下载
  6. ace admin ajax加载页面,循环加载首页的解决办法
  7. bin文件无法生成,Error: Q0147E: Failed to create Directory ./Flora_GD32.bin\ER$$.ARM.__AT_0x000000C0: File
  8. C语言数据结构与算法 项目实战 教学视频(完整)
  9. 《商务与经济统计》练习:案例8-1:杂志订阅者问卷调查分析
  10. 伍德里奇计量经济学导论第6版笔记和课后习题答案