一、模拟器使用场景

以下两种场景可以使用模拟器:

那么如何在模拟器上安装 APP 呢?且看下文。

二、如何在模拟器上安装公司 APP

以在 iPhone X 模拟器上安装公司 9.6 版本包为例。

2.1 下载 Xcode 9+

下载 Xcode 9+,Xcode 9+ 包含 iPhone X 模拟器。Xcode 的下载地址:https://developer.apple.com/download/,需要登录。下载到 mac 本地后,解压缩、安装即可。

2.2 启动模拟器

2.2.1 使用 Xcode 启动模拟器

打开 Xcode,在 Xcode 菜单栏选择 Xcode - Open Developer Tool - Simulator 可以启动默认模拟器: iPhone X。

2.2.2 xcrun 命令启动具体机型的模拟器

Command Line Tools 是在 Xcode 中的一款工具,可以在命令行中运行 C 程序。安装方法:终端执行 xcode-select --install 即可。

安装 Command Line Tools 后,在终端执行下面的命令,即可启动对应的模拟器

xcrun instruments -w 'iPhone X'

如果你启动模拟器时报如下错误,重启下模拟器即可:模拟器菜单栏选择 simulator - Hardware - Restart。

补充:
如何知道你本地都有哪些系统型号的模拟器,在终端执行如下命令可查看本地所有的模拟器

instruments -w device

三、安装供模拟器使用的 APP

注意:由于 iPhone 模拟器是 x86 架构,iPhone 真机是 ARM 架构,所以模拟器和真机编译的 ipa 包是不同的。所以真机和模拟器的包是不能混用的,即真机的包不能装在模拟器上。由于日常从 app.dp/、灰度平台、MCI 等下载渠道都是供真机使用的包,所以模拟器上使用的包不能从这些渠道下载。那么模拟器安装的包该从哪里获取的?

有两种方法,第一种是拉代码,本地编译一个模拟器的包;还有一种简单的方法是直接用现有的模拟器包,安装到模拟器上。这里介绍第二种方法。

3.1 下载模拟器的安装包

现在 jenkins 有任务支持打模拟器包,打包以及下载包地址:http://******/job/iPhone_Simulator/。我们从这里下载包到本地,下载到本地的是.ipa 文件,我们需要把.ipa 文件解压缩成.app 文件。

3.2 将.ipa 文件解压缩为.app 文件

找到下载到本地的.ipa 文件,右键选择 “打开方式” - “归档实用工具”,操作后你会发现本地多了一个 Payload 文件夹,该文件夹里有一个 DPScope.app 文件。这个文件就是我们需要的公司 APP。

3.3 在模拟器上安装

# Downloads/Payload/DPScope.app 是 .app 文件的路径。
xcrun simctl install booted Downloads/Payload/DPScope.app

四、使用 iOS 模拟器在本地调试 自动化测试 脚本

你还在为没有开发者设备 进行 iOS 性能测试 + 自动化测试而苦恼吗?下面将解决你的苦恼,使用模拟器在本地调试脚本,向可调式真机依赖说拜拜~

4.1 UIAutomation + iOS 模拟器 做 性能测试

启动 instruments - UIAutomation 模板,在模拟器上安装公司 APP,这样就可以基于模拟器录制、调试性能测试脚本了。(是不是简单~

4.2 appium 1.6.x + iOS11.x 做 自动化测试

下面方法是:本地可以用 appium 驱动 iOS9 以下系统做真机自动化操作为前提。

4.2.1 安装 WebDriverAgent

WebDriverAgent 是什么? 2015 年 Facebook 推出了一款新的 iOS 移动测试框架 —— WebDriverAgent。

官方 github —— https://github.com/facebook/WebDriverAgentReadMe。把 搬运过来:
WebDriverAgent 在 iOS 端实现了一个 WebDriver server ,借助这个 server 我们可以远程控制 iOS 设备。你可以启动、杀死应用,点击、滚动视图,或者确定页面展示是否正确。

Appium 封装了 WebDriverAgent。那如何安装 WebDriverAgent 呢?

#进入目录
cd /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent
#执行sh命令
./Scripts/bootstrap.sh

若步骤 1 执行报错,原因可能是 appium 安装目录下的 WebDriverAgent 依赖有问题,需要自己重新下载 WebDriverAgent,尝试以下步骤:

git clone https://github.com/facebook/WebDriverAgent.git
cd WebDriverAgent
./Scripts/bootstrap.sh 

4.2.2 编译 WebDriverAgent(针对模拟器)

进入 WebDriverAgent 目录(在当前目录下执行 sh 命令 open . ),用 Xcode 打开 webDriverAgent.xcodeproj 文件,Xcode 正常打开后项目代码应该是没有问题的,选择一个 iPhone 模拟器调试。然后等待 iPhone 模拟器跑起来后,会看到 iPhone 里面有一个 WebDriverAgentRunner 的 app, 那么恭喜,WebDriverAgent 已经 可以成功的编译起来了。

4.3 Appium 驱动 模拟器 运行 APP

4.3.1 相比以前老的 IOS 测试框架,使用新的框架,只需要做以下两个修改点:

automationName=Appium 改为 automationName=XCUITest

XCUITest 框架可以在用于 iOS 9.0.2 的设备,在 WebDriverAgent 里设置打包的最小可用版本为 iOS9 即可,所以用新框架提交自动化测试任务时不需要指定 iOS 10 以上的设备。

4.3.2 启动 appium 和 模拟器

启动 appium:命令行安装的话执行 appium
本地启动自动化测试工程项目,即可运行脚本执行自动化测试。


↙↙↙阅读原文可查看相关链接,并与作者交流