ios 应用ios开发基础好后怎么进行大面积真机测试

在上一篇文章中我对本系列教程的项目背景进行了介绍,并对自动化测试平台的建设进行了规划

在本文中,我将在已准备就绪的iOS自动化测试环境的基础上通过Appium调用模拟器运行iOS应用。内容很是基础熟悉的同学可直接略过。

iOS应用安装包的基础知识

作为完全的iOS新手困惑的第一个問题就是iOS安装包文件。

在Android系统中安装App的途径很多,除了各类应用市场普通用户也经常直接下载apk安装包文件后手动进行安装,因此大家對Android的安装包文件都比较熟悉

但是对于iOS系统就不一样了,由于我们普通用户在iOS上安装应用的时候基本上只能通过Apple Store进行安装(未越狱)没囿机会接触原始的安装包文件,因此往往连iOS应用的安装包到底是什么格式后缀都不清楚

现在我们想在Appium App中通过模拟器运行被测应用,需要指定iOS app的安装包路径因此需要首先获得一个iOS app安装包。

那么iOS app的安装包长啥样呢

或者在这个问题之前,我们先来看下另一个问题:对于iOS设备來说如果不通过Apple Store,我们可以怎样安装一个应用

针对这个问题,我搜了些资料也请教了周围的同事,了解到的途径有如下几个:

  • 企业證书:该种方式适用于企业内部;通过企业证书编译出的iOS应用无需上传至Apple Store,即可无限制的安装到企业员工的iOS设备中只是需要解决的一個问题是,由于iOS设备没有文件管理器没法将安装包拷贝到iOS设备中,因此常用的做法是将安装包(.ipa文件)上传至一些下载服务器(例如fir.im)并生成二维码,然后用户扫描二维码后即可通过浏览器下载安装包并进行安装由此联想到另外一个方法,通过微信文件传输助手将安裝包(.ipa)传输至iOS设备然后再进行安装应该也是可以的吧?这种方法不知在原理上是否可行因为在试验时由于安装包大于30M,微信无法传輸所以没能进行验证。
  • Xcode:该种方式适用于iOSios开发基础者;ios开发基础者在Xcode中连上iOS设备对源码进行编译编译生成的应用会自动安装至iOS设备。當然该种方式也是需要iOSios开发基础者证书。
  • PP助手:该种方式适用于普通用户;PP助手是一个非苹果官方的设备资源管理工具可以实现对未樾狱的iOS设备进行应用管理,也可以安装本地.ipa文件前提是.ipa文件具有合适的签名。

在上面列举的安装应用的途径中反复提到了.ipa文件,那.ipa应該就是iOS应用程序的后缀了吧暂且这么认为吧。

再回到前面的场景要在iOS模拟器中运行iOS应用,我们是否可以找研发人员要一个.ipa安装包文件然后就能在模拟器中加载运行应用呢?

刚开始的时候我是这么认为的于是我获取到.ipa文件后,在App Path中填写该文件的路径然后启动Appium Server;接着峩再打开Inspector时,发现iOS模拟器启动了但是在应用启动的时候就出问题了,始终无法正常启动感觉像是启动崩溃,反复尝试多次仍然如此

洅次经过Google,总算是明白出现问题的原因了总结下来有如下几点:

  • 不管是从Apple Store或iTunes上下载的应用,还是在Xcode中针对真机设备编译生成的.ipa文件都昰面向于ARM处理器的iOS设备,只能在真机设备中进行安装;
  • 而在Mac OSX系统中运行的iOS模拟器运行环境是基于Intel处理器的;
  • 因此,若是针对真机设备编譯生成的.ipa文件是无法在iOS模拟器中正常运行的,毕竟处理器架构都不一样;
  • 要想在iOS模拟器中运行应用则必须在Xcode中编译时选择模拟器类型;编译生成的文件后缀为.app

接下来就说下如何获取.app文件。

虽然是测试人员不会对被测iOS项目贡献代码,但是也不能总是找研发幫忙编译生成.app文件所以,在本地搭建完整的iOS项目ios开发基础环境还是很有必要的

对于iOSios开发基础环境的搭建,当前社区中应该已经有了很哆完整的教程我在这儿就不详细描述了,只简单说下我搭建过程中涉及到的几个点

然后,申请项目源码的访问权限git clone到本地;

接着是項目依赖环境的问题;通常一个较大型的iOS项目都会引用许多第三方库,而这些依赖库并不会直接保存到项目仓库中通常是采用CocoaPods进行管理;简单地说,CocoaPods是针对SwiftObjective-C项目的依赖管理器类似于Java中的Maven,Ruby中的GemPython中的pip

当然iOS项目的依赖管理工具也不是只有CocoaPods一个,如果是采用的别的依賴管理器请自行查找对应的资料。

采用CocoaPods管理的项目在项目根目录下会包含PodfilePodfile.lock文件,里面记录了当前项目依赖的第三方库以及对应的版夲号

然后,进入到iOS项目的目录执行pod install命令即可安装当前项目的所有依赖。

 

关于CocoaPods的更多信息请自行查看

在依赖安装完成后,正常情况下就可以在Xcode中编译项目了。

没有别的需要注意的将target选择为模拟器(iOS Simulator)即可。而且针对模拟器进行编译时也不会涉及到ios开发基础者证书嘚问题,项目配置上会简单很多待后续讲到真机上的自动化测试时,我再对证书方面的内容进行补充

编译完成后,在Products目录下就可以看到XXX.app文件,这里的XXX就是项目名称;然后选中XXX.app文件,【Show in Finder】即可在文件目录中定位到该文件。

接下来将XXX.app文件拷贝出来,或者复制该文件嘚Full path怎样都行,只要在AppiumApp Path中能定位到该文件就行

模拟器中运行iOS应用

被测应用.app准备就绪后,接下来就可以在iOS模拟器中运荇了

回到前面的那张图。启动Appium app后对于模拟器运行的情况,在iOS Settings中必须设置的参数项就3个App PathForce DevicePlatform Version。对于真机运行的情况后续再单独进行說明。

然后点击图中红框处的按钮,即可通过Inspector启动模拟器并在模拟器中加载iOS应用。

在模拟器中我们可以像在真机中一样,体验被测應用的各项功能;并且在Appium的日志台中,可以实时查看到日志信息

整个过程是挺简单的,不过在探索过程中我还是有遇箌一个坑。

通过Inspector启动模拟器时总是弹框报错,报错形式如下

刚开始出现这问题时百思不得其解,因为提示的信息并不明显Google了好一阵吔没找到原因。最后只有详细去看日志信息才发现问题所在。

在日志中发现的报错信息如下:

 

再来看日志中提示的可用设备,发现“iPhone 6”设备对应的Platform Version只有“9.2”和“9.3”然后回到iOS Settings,发现Platform Version的下拉框可选项就没有“9.2”和“9.3”最新的一个可选版本也就是“8.4”。

这应该是Appium app的一个bug吧不过好在Platform Version参数虽然是通过下拉框选择,但是也可以在框内直接填写内容于是我在Platform Version设置框内填写为“9.3”,然后再次启动时发现iOS模拟器僦可以正常启动了。

现在我们已经成功地通过Appium Inspector调用模拟器并运行iOS应用,接下来我们就要开始尝试编写自动化测试用例了。

在下一篇攵章中我们将对Appium Inspector的功能进行熟悉,通过Inspector来查看iOS应用的UI元素信息并尝试采用脚本语言与UI进行交互操作。

长江、黄河、淮河、济水在古代稱为“四渎”如今济水哪里去了?

公元1278年时年42岁的文天祥以俘虏身份乘船经过零丁洋。

我要回帖

更多关于 ios开发基础 的文章

 

随机推荐