从“是否原生”的角度来说,App分为3类,即原生App、Web App和混合App。对于不同类型的App,开展自动化测试使用的手段也不同。本节将介绍这3类App,以及它们的区别。
原生App依托于操作系统,它的交互性及可扩展性很强,需要用户下载并安装才能使用,是一个“完整”的App。
原生App是某个移动平台(如iOS或Android平台)所特有的,使用相应平台支持的开发工具(如Xcode、Android Studio)和编程语言(如Swift、Kotlin)开发。一般来说,原生App的UI更好看、运行速度更快(性能更好)。
原生App的优势如下。
● 运行速度快,性能好,用户体验更好。
● 可以调用移动终端硬件设备。
● 可访问本地资源。
● 由于App下载到了本地(安装到移动终端),因此在运行App时可节省带宽成本(本地资源不需从网络端请求)。
原生App的劣势如下。
● 开发成本高,需针对不同平台开发不同的版本。
● 需要维护多个版本。
● 利润需要分给第三方一部分。
● 新版本需重新下载(它会不断提示用户下载更新,导致用户体验差)。
● 发布新版本需通过应用商店确认,而且发布时间长(应用商店审核的周期长),iOS平台App审核一般需要1~3个工作日。
Web App是基于Web的App,它运行于网络和浏览器上,目前多采用HTML5标准开发,无须下载与安装。
HTML5 App使用标准的Web技术,这些技术通常是HTML5、JavaScript和CSS(Cascading Style Sheet,串联样式表)。HTML5 App的运行依赖于Web环境,因此具有只编写一次即可跨平台运行的效果。
Web App的优势如下。
● 跨平台开发,基于浏览器。
● 开发成本低,整体量级轻。
● 无须安装,节约内存空间。
● 可随时上线,不需要等待审核。
● 更新时无须通知用户,自动更新。
● 维护比较简单。
Web App的劣势如下。
● 需要依赖网络,用户体验相对较差。
● 功能受限,无法获取系统级别的通知、提醒、动态效果等。
● 入口强依赖于第三方浏览器,导致用户留存率低。
● 页面跳转费力,稳定性弱。
● 安全性相对较低,数据容易泄露或被劫持。
混合App指的是原生App中包含部分Web页面的混合类App。它需要下载与安装,看上去是原生App,但App中的部分页面是通过UIWebView访问的Web HTML5内容。混合App让开发人员可以把HTML5 App嵌入一个原生容器里,集原生App和HTML5 App的优势(劣势)于一体。
混合App的优势如下。
● 比例自由,如Web App占90%,原生App占10%,或者各占50%。
● 便于调试,开发时可以通过浏览器调试,调试工具丰富。
● 可轻松访问手机的各种功能。
● 可以从应用商店中下载(Web App套用原生App的外壳)。
● 混合App需要在应用商店进行发布,但能自主更新,而原生App的更新必须通过应用商店实现。
● 移动Web对搜索引擎友好,可与在线营销无缝整合。
● 兼容多种平台,可离线使用。
● 页面存放采用本地和服务器两种方式。
● 省去了跳转浏览器的麻烦。
● 支持消息推送,有助于提高用户忠诚度。
● App安装包减小。
混合App的劣势如下。
● 上线时间不确定。
● 性能稍差(需要连接网络)。
● 用户体验不如原生App。
● 混合App可以通过JavaScript API(Application Program Interface,应用程序接口)访问移动设备的摄像头、导航系统,而原生App可以通过原生编程语言访问设备所有功能。
原生App、Web App、混合App技术特性总结如表2-1所示。
表2-1 原生App、Web App、混合App技术特性总结