精华内容
下载资源
问答
  • 移动app
    千次阅读
    2020-11-30 09:28:13

    前端最常用的移动App开发方式及技术栈详解

    混合App相关技术

    共同点:

    • 把网页打包成移动 App,使 Web 程序可以访问手机原生能力。

    Cordova

    Cordova 是Apache软件基金会的一个产品。其前身是PhoneGap,由Nitobi开发,2011年10月,Adobe收购了Nitobi,并且PhoneGap项目也被贡献给Apache软件基金会。Apache在2012年12月,发布了Cordova,截止到2015年12月,最新版面是3.0。

    该框架的目标用户群体是原生开发者,其设计初衷是希望用户群体能够通过跨平台开发的方法降低原生开发的成本。为此,开发人员需要安装原生开发环境,配置工程,使用HTML5、CSS3、JS和原生SDK生成应用。

    优点

    Cordova的优势很明显,可以使用的框架、原生接口、支持平台都很多。

    缺点

    1. 外国人写的东西,公司使用后,出现的技术问题难以解决。同时,
    2. 在使用 jQuery Mobile、Sencha Touch等前端框架的时候,特效启动慢、页面切换慢、数据请求慢。

    APPCan

    APPCan 成立于2010年,2011年推出产品并测试,2012年正式推出品牌,2013年商业模式成型,2014年开发者注册约70w。AppCan不是开源平台,同时,企业版和部分插件是收费的。换句话说,AppCan只是一个卖软件的商业公司。我们认为:这会对其市场的占有率有着直接影响,闭源而没有垄断,所以前景不会太好。

    DCloud

    DCloud 大部分产品开源,W3C会员单位,HTML5中国产业联盟的发起公司之一,在HTML5这个行业有一定的江湖地位。旗下四款产品:HBuilder、5+ Runtime、MUI、流应用都是弥补并扩展HTML5特性的产品。该公司的理念就是解决HTML5的性能、工具、能力三方面的问题。

    MUI是一款不错的前端框架,性能比 jQuery Mobile、Bootstrap好很多,主要区别:

    • 设计思路不同,MUI坚持用原生JS做,不依赖jQuery或者Angularjs。
    • MUI调用了5+ Runtime的底层原生加速,比不带原生加速的框架更快。

    缺点

    DCloud毕竟是个新平台,发展才2年,新产品内部存在的Bug还需要很多的测试。在其官方社区中,不少开发者也在呼吁DCloud尽快完善文档和框架。

    API Cloud

    API Cloud 提供原生应用的功能模块(设备访问,界面布局,开放SDK等),开发者可以通过JS调用。前端工程师负责页面布局,UI展现,及简单的交互,原生模块负责性能方面和功能实现,两者结合形成一个完整的应用。同时APICloud提供了云数据库的功能,前端不必了解PHP,Node.js等后端语言,通过JS接口或Restful API实现数据库的增删改查。

    缺点

    APICloud的更新速度很快,版本不太稳定。而且,它是为不懂APP开发的人士准备的,不适合科技公司和程序员。

    混合开发四种方式对比

    cordovaappcanDCloudAPICloud
    目标为原生开发者解决平台差异性问题提供跨平台移动应用快速开发一体化解决方案解决HTML5的工具,性能,能力三个重要问题重新定义移动应用开发。提供云/端两项服务
    功能简单丰富丰富丰富
    支持平台大部分平台ios/andriodios/andriodios/andriod
    开发环境不同平台需要不同环境EClipseHBuildersublime/eclipse/webstorm
    开发语言html5/css3/jshtml5/css3/jshtml5/css3/jshtml5/css3/js
    UI框架第三方第三方mui/第三方自带
    打包方式离线在线在线/离线在线
    优点跨平台、框架多,插件多,发展早,社区资源多做了性能优化,app比较流畅对html5的性能,工具,能力都做了相关的产品即使不懂原生开发,不懂后台语言,也可以完成APP
    缺点在webview性能低下的情况下,使用第三方UI框架,用户体验会变差闭源收费,过多封装,自由度不足新产品,还需改进。需要具备原生开发的经验版本更新过快,不稳定,外包公司过度依赖,会降低技术实力

    跨平台开发

    用一种语言写一套代码,在ios,andriod上都可以运行。

    特点

    使用类似于 Web 技术的方式来开发 Native App。

    优点

    效率体验接近Native App,发布和开发成本低于Native App

    1. 开发成本大于Hybrid模式,小于原生模式,大部分代码可复用

      相比于原生模式,这种模式是统一用JS写代码,所以往往只需要一名成员投入学习,即可完成跨平台app的开发,而且后续代码封装的好,很多功能可复用。

    2. 性能体验高于Hybrid,不逊色与原生

      这种模式和Hybrid不一样,Hybrid中的view层实际上还是dom,但是这种模式的view层是虚拟dom,所以性能要高于Hybrid,距离原生差距不大。

      这种模式可以认为是用JS写原生,即页面用JS写,然后原生通过Bridge技术分析JS,将JS内容单独渲染成原生Android和iOS,所以也就是为什么性能不逊色原生。

    3. 开发人员单一技术栈,一次学习,跨平台开发

      这种模式是统一由JS编写,有着独特的语法,所以只需要学习一次,即可同时开发Android和iOS。

    4. 社区繁荣,遇到问题容易解决

      这应该是React Native的很大一个优势,不像Hybrid模式和原生模式一样各自为营,这种模式是Facebook统一发起的,所以有一个统一的社区,里面有大量资源和活跃的人员,对开发者很友好。

    缺点

    学习有一定成本,且文档较少,免不了踩坑

    1. 虽然可以部分跨平台,但并不是Hybrid中的一次编写,两次运行那种,而是不同平台代码有所区别

      这种模式实际上还是JS来写原生,所以Android和iOS中的原生代码会有所区别,如果需要跨平台,对开发人员有一定要求。

      当然了,如果发展了有一定时间,组件库够丰富了,那么其实影响也就不大了,甚至会比Hybrid更快

    2. 开发人员学习有一定成本

      虽然社区已经比较成熟了,但是一个新的普通前端学习起来还是有一定学习成本的,无法像Hybrid模式一样平滑

    3. 学习成本大,对开发人员技术要求比较高

    4. 不懂原生开发很难驾驭好

    5. 说是使用 Web 技术进行开发,还是多少得学点儿原生 App 开发,才能处理好跨平台。

    6. 前期投入比较大,后劲很足。

    React Native

    • 公司:Facebook
    • 技术栈:React
    • 开源的一套新的App开发方案React Native。使用JSX语言写原生界面,js通过JSBridge调用原生API渲染UI交互通信。
    • React-Native 就是用js的方式 去开发 原生应用, 一套代码生成 安卓,ios应用。

    Weex

    • 公司:Apache 开源基金会

    • Weex 致力于使开发者能基于通用跨平台的 Web开发语言和开发经验,来构建 Android、iOS 和 Web 应用。简单来说,在集成了 WeexSDK 之后,你可以使用 JavaScript 语言和前端开发经验来开发移动应用。

    • Weex的定位则是替代h5使用场景,在保证动态性的情况下,提升性能,开发者大多为前端工程师。

    • 阿里巴巴的weex-ui

    Flutter

    • 公司:Google
    • 它提供了官方的原生 UI 组件
    • 比 RN、Weex 之类的体验更好
    • 开发语言:Dart
    • 商业应用:闲鱼
    • 跨平台原理:高性能渲染引擎来绘制widget。

    多端开发

    taro

    taro是一套遵循 React 语法规范的 多端开发 解决方案。使用 Taro,开发者可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动/QQ/京东小程序、快应用、H5、React-Native 等)运行的代码。

    uni-app

    uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台。

    开发方式小结

    对比

    Native AppWeb AppHybrid AppReact Native App
    原生功能体验优秀良好接近优秀
    渲染性能非常快接近快
    是否支持设备底层访问支持不支持支持支持
    网络要求支持离线依赖网络支持离线(资源存本地情况)支持离线
    更新复杂度高(几乎总是通过应用商店更新)低(服务器端直接更新)较低(可以进行资源包更新)较低(可以进行资源包更新)
    编程语言Android(Java),iOS(OC/Swift)js+html+css3js+html+css3主要使用JS编写,语法规则JSX
    社区资源丰富(Android,iOS单独学习)丰富(大量前端资源)有局限(不同的Hybrid相互独立)丰富(统一的活跃社区)
    上手难度难(不同平台需要单独学习)简单(写一次,支持不同平台访问)简单(写一次,运行任何平台)简单(学习一次,写任何平台)
    开发周期较短中等
    开发成本昂贵便宜较为便宜中等
    跨平台不跨平台所有H5浏览器Android,iOS,h5浏览器Android,iOS
    APP发布App StoreWeb服务器App StoreApp Store

    选择

    目前有多种开发模式,那么平时开发时如何选择用哪种模式呢?如下

    • 选择纯Native App模式的情况

      • 性能要求极高,体验要求极好,不追求开发效率
      • 正常来说如果要求不是特别高,会有Hybrid
    • 选择Web App模式的情况

      • 不追求用户体验和性能,对离线访问没要求。正常来说,如果追求性能和体验,都不会选用web app
      • 没有额外功能,只有一些信息展示。因为web有限制,很多功能都无法实现,所以有额外功能就只能弃用这种方案了
    • 选择Hybrid App(混合开发)模式的情况:大部分情况下的App都推荐采用这种模式

      这种模式可以用原生来实现要求高的界面,对于一些比较通用型,展示型的页面完全可以用web来实现,达到跨平台效果,提升效率。当然了,一般好一点的Hybrid方案,都会把资源放在本地的,可以减少网络流量消耗

    • 选择React Native App模式的情况

      追求性能,体验,同时追求开发效率,而且有一定的技术资本,舍得前期投入

      React Native这种模式学习成本较高,所以需要前期投入不少时间才能达到较好水平,但是有了一定水准后,开发起来它的优势就体现出来了,性能不逊色原生,而且开发速度也很快

    • 选择其它方案

      小程序:(目前移动 App 中开发难度最低的,体验也是仅次于原生+跨平台NativeApp)

    更多相关内容
  • 移动APP移动推广计划方案(标准格式模板).pdf移动APP移动推广计划方案(标准格式模板).pdf移动APP移动推广计划方案(标准格式模板).pdf移动APP移动推广计划方案(标准格式模板).pdf移动APP移动推广计划方案(标准格式模板...
  • 移动App 安全测试

    千次阅读 2022-02-19 12:38:12
  • CONTENTS 移动APP市场分析 移动APP安全现状 移动APP漏洞类型 移动APP漏洞案例 移动APP安全思考 Q&A
  • 移动app商业计划书.pdf

    2022-06-25 22:38:17
    移动app商业计划书.pdf移动app商业计划书.pdf移动app商业计划书.pdf移动app商业计划书.pdf移动app商业计划书.pdf移动app商业计划书.pdf移动app商业计划书.pdf移动app商业计划书.pdf
  • 移动app商业计划书.docx移动app商业计划书.docx移动app商业计划书.docx移动app商业计划书.docx移动app商业计划书.docx移动app商业计划书.docx移动app商业计划书.docx移动app商业计划书.docx
  • 移动App的类别 app就是可以运行在移动设备(手机,平板电脑)上的应用。移动是相对于运行在台式电脑,笔记本电脑这种“固定”的设置而言。 常见的APP类别: 原生App(navtive app) 网页App (WebApp ) 混合App ...

    移动App的类别

    app就是可以运行在移动设备(手机,平板电脑)上的应用。移动是相对于运行在台式电脑,笔记本电脑这种“固定”的设置而言。

    在这里插入图片描述

    常见的APP类别:

    1. 原生App(navtive app)
    2. 网页App (WebApp )
    3. 混合App (HybridApp)
    4. 其他类型(小程序/快应用等等) 微信 /支付宝 /百度/抖音/头条/qq/钉钉/高德…快应用

    NativeApp(原生App)

    原生App 是最纯真的开发方式,可以直接运行在手机操作系统中。

    原生应用程序是某一个移动平台(比如iOS或安卓)所特有的,使用相应平台支持的开发工具和语言(比如iOS平台支持Xcode和Objective-C,安卓平台支持Eclipse和Java)开发。原生应用程序看起来(外观)和运行起来(性能)是最佳的。

    • 它针对不同的手机操作系统,开发不同的软件。历史上存在过的手机操作系统:
      • Symbian(中国大陆译名为“塞班”,其他地区则直接使用英文名称“Symbian”),一种移动操作系统,由诺基亚公司拥有,广泛使用于诺基亚手机上,2013年后停止发展。
      • Windows Phone。微软公司。
      • BlackBerry。2016年7月4日,黑莓宣布正式放弃BlackBerry 10系统。
      • IOS。2007年初苹果推出iPhone,搭载iOS操作系统 。
      • Android。2007年9月谷歌推出Android操作系统,并开放源代码。
    • 现在就只有iOS和Android两大系统,需要使用各自语言开发各自App。 (需要两拨人员各做的,但是各做各的功能,其代码完全不能复用)

    原生App的现状

    iOS:

    • 语言:Object-C、Swift
    • 开发工具:XCode
    • 操作系统:macOS

    Android:

    • 语言:Java、Kotlin
    • 开发工具:Eclipse、Android Studio
    • 操作系统:Windows、macOS、Linux 都支持

    原生App的优点

    优点是速度快,性能高,用户体验效果好。 根据硬件操作系统不同,来开发不同的程序。

    性能和体验都是最好的, 用的都是本系统的原生组件,没有网络渲染问题。

    原生App的缺点

    开发和发布成本高 ,需要专业的安卓 和 ios开发人员 ,ios 系统闭环 , 应用需要上传appStore。更新麻烦,无法跨平台,Android和iOS都需要单独开发,而且开发比较复杂,所以开发成本非常高、开发周期也比较长。升级比较麻烦,每次升级都需要下载安装包,而且iOS每个版本还得经过App Store的审核,Android和iOS很难同步发布。

    webApp(网页App)

    移动端的网站,常被称为H5应用,说白了就是特定运行在移动端浏览器上的网站应用。一般泛指 SPA(Single Page Application)单页面应用模式开发出的网站,与MPA(Multi-page Application)对应。

    M站演示

    在这里插入图片描述

    WebApp的优点

    1. 开发成本低,可以跨平台,调试方便,开发速度最快。

      webapp一般只需要一个前端人员开发出一套代码,然后即可应用于各大主流浏览器(特殊情况可以代码进行下兼容),没有新的学习成本,而且可以直接在浏览器中调试。

    2. 维护成本低:

      同上,如果代码合理,只需要一名前端就可以维护多个web app。

    3. 更新最为快速:

      由于web app资源是直接部署在服务器端的,所以只需要替换服务器端的文件,用户访问时就已经更新了(当然需要解决一些缓存问题)。

    4. 无需安装App,不会占用手机内存:

      通过浏览器即可访问,无需安装,用户就会比较愿意去用。

    WebApp的缺点

    1. 性能低,用户体验差:

      由于是直接通过浏览器访问,所以无法使用原生的API,操作体验不好。

    2. 依赖于网络,页面访问速度慢,耗费流量:

      Web App每次访问都需要去服务端加载资源访问,所以必须依赖于网络,而且网速慢时访问速度很不理想,特别是在移动端,如果网站优化不好会无故消耗大量流量。

    3. 功能受限,大量功能无法实现:

      只能使用Html5的一些特殊api,无法调用原生API,所以很多功能存在无法实现情况。

    4. 临时性入口,用户留存率低

      这既是它的优点,也是缺点,优点是无需安装,缺点是用完后有时候很难再找到,或者说很难专门为某个web app留存一个入口,导致用户很难再次使用。通过挂在微信公众号的链接中,可以定下来入口。

    应用技术

    1. VueJS
    2. ReactJS
    3. AngularJS

    HybridApp(混合App)

    混合模式移动应用,介于Web App、Native App这两者之间的App开发技术,兼具“Native App良好交互体验的优势”和“Web App跨平台开发的优势” ,原生客户端的壳WebView,其实里面是HTML5的网页

    在这里插入图片描述

    WebView是什么

    WebView 是原生浏览器的内置浏览器,里面是h5的网页,所有的业务都是h5网页,外面是一个安卓或者 ios的 只提供 API,提供SDK(调用原生能力的包) / 拍照/录像/录音/ ,不做具体业务。 h5网页 通过 js 调用 外面壳提供的原生能力。

    • 把网页打包成移动 App,使Web 程序可以访问手机原生能力。

    HybridApp的优点

    1. 开发成本较低,可以跨平台,调试方便

      Hybrid模式下,由原生提供统一的API给JS调用,实际的主要逻辑由Html和JS来完成,而由于最终是放在webview中显示的,所以只需要写一套代码即可,达到跨平台效果,另外也可以直接在浏览器中调试,很为方便

      最重要的是只需要一个前端人员稍微学习下JS api的调用即可,无需两个独立的原生人员

      一般Hybrid中的跨平台最少可以跨三个平台:Android App,iOS App,普通webkit浏览器

    2. 维护成本低,功能可复用

      同上,如果代码合理,只需要一名前端就可以维护多个app,而且很多功能还可以互相复用

    3. 更新较为自由

      混合开发 实际上 就是 安卓的壳 /ios壳 + html/js/css

      更新的话 只需要 下载最新的 html+js+css(本地模式)

      安卓的壳 /ios壳 + webview(线上地址)(线上模式) => 更新只需要部署到服务器即可 (性能和效率是比较低)

      虽然没有web app更新那么快速,但是Hybrid中也可以通过原生提供api,进行资源主动下载,达到只更新资源文件,不更新apk(ipa)的效果 (进入之后热更新)

    4. 针对新手友好,学习成本较低

      这种开发模式下,只需要前端人员关注一些原生提供的API,具体的实现无需关心,没有新的学习内容,只需要前端人员即可开发。

    5. 功能更加完善,性能和体验要比起web app好太多

      因为可以调用原生api,所以很多功能只要原生提供出就可以实现,另外性能也比较接近原生了

    6. 部分性能要求的页面可用原生实现

      一般来说 壳+html+js+css , 壳+ 部分原生 + html/js+css

      这应该是Hybrid模式的最多一个好处了,因为这种模式是原生混合web,所以我们完全可以将交互强,性能要求高的页面用原生写,然后一些其它页面用JS写,嵌入webview中,达到最佳体验

    HybridApp的缺点

    1. 相比原生,性能仍然有较大损耗

      这种模式受限于webview的性能桎梏,相比原生而言有不少损耗,体验无法和原生相比

    2. 不适用于交互性较强的app

      这种模式的主要应用是:一些新闻阅读类,信息展示类的app;但是不适用于一些交互较强或者性能要求较高的app(比如动画较多就不适合)

    其他类型App

    小程序

    • 微信小程序
      • mpvue:使用vue.js 开发小程序的前端框架
    • 百度小程序
    • 头条小程序
    • 支付宝小程序

    微网页

    • 微信公众号
    • 百度直达号

    快应用

    • 国内各大手机厂商联合制定推出的一种新型应用。无需安装,秒开,体验媲美原生,还提供了像原生应用一样的入口。

    • iphone不参与。

    • 使用web技术进行开发,而且提供了在web中访问手机硬件等底层交互的api。

    • 属于混合app的一种。

    • 支付宝小程序

    微网页

    • 微信公众号
    • 百度直达号

    快应用

    • 国内各大手机厂商联合制定推出的一种新型应用。无需安装,秒开,体验媲美原生,还提供了像原生应用一样的入口。
    • iphone不参与。
    • 使用web技术进行开发,而且提供了在web中访问手机硬件等底层交互的api。
    • 属于混合app的一种。
    • 开发工具:hap-toolkit。
    展开全文
  • 移动端应用可以细分为三大类:Web App、Native App 和 Hybrid App。以下主要介绍这三类移动应用的测试方法,以及移动专项测试的思路与方法。 文章目录三类移动应用的特点三类不同移动应用的测试方法移动应用专项测试...

    移动端应用可以细分为三大类:Web App、Native App 和 Hybrid App。以下主要介绍这三类移动应用的测试方法,以及移动专项测试的思路与方法。

    三类移动应用的特点

    Web App 指的是移动端的 Web 浏览器,和 pc 端的 Web 浏览器无差,只是依附的操作系统不再是 Windows 或 Linux了,而是 IOS 和 Android。Web App 采用的技术主要 HTML5、JavaScript、CSS 等 Web 技术栈,另外,Web App 所访问的页面内容都是放在服务器端的,本质上就是 Web 网页,所以天生就是跨平台的。

    Native App 指的是移动端的原生应用,对于 Android 是 apk,对于 IOS 就是 ipa。Native App 是基于手机操作系统,并使用原生程序编写运行的第三方应用程序。

    Hybrid App 是介于 Web App 和 Native App 两者之间的一种 App 形式,它利用了 Web App 和 Native App 的优点,通过一个原生实现的 Native Container 展示 HTML5 页面。即在原生移动应用中嵌入了 Webview,然后通过该 Webview 来访问。

    Hybrid App 具有维护更新简单,用户体验优异以及较好的跨平台特性,是比较主流的移动应用开发模式。从下图中可简单看出三类移动应用的架构原理。
    在这里插入图片描述

    三类不同移动应用的测试方法

    对 Web App 本质就是 Web 浏览器的测试,典型的 GUI 自动化测试的方法和技术,如 数据驱动、页面对象模型、业务流程封装等都适用。如果 Web 页面时基于自适应网页涉及 (即符合 Responsive Web 设计的规范),而且测试框架如果支持 Responsive Page,那么原则上之前开发的运行在 PC Web 端的 GUI 自动化测试用例不做任何修饰旧可以直接在移动端的浏览器上执行,前提时移动浏览器是支持 Web Driver

    其中,自适应网页设计(Responsive Web Design)是指,同一个网页能够自动识别屏幕分辨率、并做出相应调整的网页设计技术。

    对 Native App 的测试,虽然不同的平台会使用不同的自动化测试方案(比如,iOS 一般采用 XCUITest Driver,而 Android 一般采用 UiAutomator2 或者 Espresso 等),但是数据驱动、页面对象以及业务流程封装的思想依旧适用,也可以把这些方法应用到测试用例设计中。

    对 Native Container 的测试,可能需要用到 XCUITest 或者 UiAutomator2 这样的原生测试框架,而对 Container 中 HTML5 的测试,基本和传统的网页测试没什么区别,所以原本基于 GUI 的测试思想和方法都能继续适用。

    值得注意的是,Native Container 和 Webview 分别属于两个不同的上下文(Context),Native Container 默认的 Context 为“NATIVE APP",而 Webview 默认的 Context 为“WEBVIEW_+ 被测进程名称”。

    移动应用专项测试的思路和方法

    移动端的测试除了使用的测试框架不同以外,测试设计本身和 GUI 测试有异曲同工之妙,但还有很多新的内容。对于移动应用,若只关注业务功能测试,那当被大量用户安装和使用时,就会暴露很多问题:

    • 流量使用过多
    • 耗电量大
    • 某些设备中断上无法顺利安装或卸载
    • 弱网下无法正常使用
    • Android 环境下,经常出现ANR(Application Not Responding) 等

    这样的问题还有很多,为了避免或减少此类情况的发生,所以移动应用除了进行常规的功能测试外,通常还会进行很多移动应用所特有的专项测试。

    这里主要从交叉事件测试、兼容性测试、流量测试、耗电量测试、弱网络测试、边界测试这 6 个最主要的专项测试来展开。

    交叉事件测试

    交叉事件测试也叫中断测试,是指 App 执行过程中,有其他事件或者应用中断当前应用执行的测试。

    比如,App 在前台运行过程中,突然有电话打进来,或者收到短信,再或者是系统闹钟等等情况。所以,在 App 测试时,就需要把这些常见的中断情况考虑在内,并进行相关的测试。另外,此类测试目前基本还都是采用手工测试的方式,并且都是在真机上进行,不会使用模拟器。

    采用手工测试的原因是,此类测试往往场景多,而且很多事件很难通过自动化的方式来模拟,比如呼入电话、接收短信等,这些因素都会造成自动化测试的成本过高,得不偿失,所以工程实践中,交叉事件测试往往全是基于手工的测试。之所以采用真机,是因为很多问题只会在真机上才能重现,采用模拟器测试没有意义。

    交叉事件测试,需要覆盖的场景主要包括:

    • 多个 App 同时在后台运行,并交替切换至前台是否影响正常功能
    • 要求相同系统资源的多个 App 前后台交替切换是否影响正常功能,比如两个 App 都需要播放音乐,那么两者在交替切换的过程中,播放音乐功能是否正常
    • App 运行时接听电话、接收信息
    • App 运行时提示系统升级
    • App 运行时发生系统闹钟事件
    • App 运行时进入低电量模式
    • App 运行时第三方安全软件弹出告警
    • App 运行时发生网络切换,比如,由 Wifi 切换到移动 4G 网络,或者从 4G 网络切换到 3G 网络等

    其实这些需要覆盖的场景,也是做测试的测试用例集,每一场景都是一个测试用例的集合。

    兼容性测试

    即要确保 App 在各种终端设备、各种操作系统版本、各种屏幕分辨率、各种网络环境下,功能的正确性。通常都需要在各种真机上执行相同或者类似的测试用例,所以往往采用自动化测试的手段。 同时,由于需要覆盖大量的真实设备。

    可以基于 Appium + Selenium Grid + OpenSTF 去搭建自己的移动设备私有云平台外,也可以使用第三方的移动设备云测平台完成兼容性测试。第三方的移动设备云测平台,国外最知名的是 SauceLab,国内主流的是 Testin

    常见的 App 兼容性测试往往需要覆盖以下的测试场景:

    • 不同操作系统的兼容性,包括主流的 Android 和 IOS 版本
    • 主流的设备分辨率下的兼容性
    • 主流移动终端机型的兼容性
    • 同一操作系统中不同语言设置时的兼容性
    • 不同网络连接下的兼容性,比如 Wifi、GPRS、EDGE(增强型数据速率GSM演进技术)、CDMA200(中国电信 3G 网络模式) 等
    • 单一设备上,与主流热门 App 的兼容性,比如微信、淘宝等。

    流量测试

    由于 App 经常需要在移动互联网环境下运行,而移动互联网通常按照实际使用流量计费,如果 App 耗费的流量过多,那么一定不会很受欢迎。

    流量测试,通常包含以下几方面内容:

    • App 执行业务操作引起的流量
    • App 在后台运行时的流量消耗
    • App 安装完成后首次启动消耗流量
    • App 安装包本身大小
    • App 内购买或升级需要流量

    流量测试,往往借助于 Android 和 iOS 自带的工具进行流量统计,也可以利用 tcpdump、Wireshark 和 Fidder 等网络分析工具。

    对于 Android 系统,网络流量信息通常存储在 /proc/net/dev 目录下,也可以直接利用 ADB 工具获取实时的流量信息。另外 Android 的轻量级性能监控小工具 Emmagee,类似于 Windows 系统性能监视器,也能够实时显示 App 运行过程中 CPU、内存和流量等信息。

    对于 iOS 系统,可以使用 Xcode 自带的性能分析工具集中的 Network Activity,分析具体的流量使用情况。

    但是,流量测试除了得到 App 的流量数据,其目的是要想办法减少 App 产生的流量。减少 App 流量消耗的方法:

    • 启用数据压缩,尤其是图片
    • 使用优化的数据格式,比如同样的信息量的 JSN 文件就比 XML 文件小
    • 遇到既要加密又要压缩一定是先压缩再加密
    • 减少单次 GUI 操作触发的后台调用数量
    • 启动客户端的缓存机制 等

    耗电量测试

    耗电量是移动应用能否成功的关键因素之一。如果在功能类似的情况下,你的 App 特别耗电、让设备发热比较严重,那么你的用户就会卸载。最典型的就是地图等导航类的应用,对耗电量特别敏感。耗电量测试通常从三个方面考量:

    • App 运行但没有执行业务操作时的耗电量
    • App 运行且密集执行业务操作时的耗电量
    • App 后台运行的耗电量

    耗电量检测既有基于硬件的方法,也有基于软件的方法。采用软件的方法,Android 和 iOS 都有各自自己的方法:

    • Android 通过 adb 命令“adb shell dumpsys battery”来获取应用的耗电量信息;
    • iOS 通过 Apple 的官方工具 Sysdiagnose 来收集耗电量信息,然后,可以进一步通过 Instrument 工具链中的 Energy Diagnostics 进行耗电量分析。

    弱网络测试

    移动应用的网络环境比较多样,常出现需要在不同网络之间切换的场景,即使是在同一网络环境下,也会出现网络连接状态时好时坏的情况,比如时高时低的延迟、经常丢包、频繁断线,在乘坐地铁、穿越隧道,和地下车库的场景下经常会发生。

    所以,移动应用的测试需要保证在复杂网络环境下的质量。具体的做法就是:在测试阶段,模拟这些网络环境,在 App 发布前尽可能多地发现并修复问题。可以采用开源移动网络测试工具:Facebook 的 Augmented Traffic Control(ATC)。

    它能够在移动终端设备上通过 Web 界面随时切换不同的网络环境,同时多个移动终端设备可以连接到同一个 Wifi,各自模拟不同的网络环境,相互之间不会有任何影响。也就是说,只要搭建一套 ATC 就能满足你所有的网络模拟需求。

    边界测试

    边界测试是指,移动 App 在一些临界状态下的行为功能的验证测试,基本思路是需要找出各种潜在的临界场景,并对每一类临界场景做验证和测试。

    主要的场景有:

    • 系统内存占用大于 90% 的场景
    • 系统存储占用大于 95% 的场景
    • App 不具有某些系统访问权限的场景,比如 App 由于隐私设置不能访问相册或者通讯录等
    • 长时间使用 App,系统资源是否有异常,比如内存泄漏、过多的链接数等
    • 出现 ANR 的场景(是指在Android上,应用程序响应不够灵敏时,系统会向用户显示的一个对话框)
    • 操作系统时间早于或者晚于标准时间的场景
    • 时区切换的场景

    总结

    移动应用根据技术架构的不同,主要分为 Web App、Native App 和 Hybrid App 三大类,这三类应用的测试方法本质上都属于 GUI 测试的范畴。

    从业务功能测试的角度看,移动应用的测试用例设计和传统 PC 端的 GUI 自动化测试策略比较类似,只是测试框架不同,数据驱动、页面对象模型和业务流程封装依旧适用

    各种专项测试是移动应用的测试重点,也有别于传统 GUI 测试。专项测试包括:交叉事件测试、兼容性测试、流量测试、耗电量测试、弱网络测试和边界测试

    展开全文
  • QT QML跨平台移动APP编程

    千人学习 2020-02-27 20:55:14
    跟着项目学习QT QML跨平台移动APP编程技术,从QML的基本组件Lable、TextField到StackView、ListView,再到C++的算法、QML和C++的结合,最后到部署在IOS和Android平台,全方位的体验跨平台移动APP的开发流程及QT QML...
  • 根据一些老博客里面的内容,现在整理一下目前流行的跨平台移动App开发技术的特点,并将几个不同的开发平台框架进行比较说明,仅供大家参考。 每个开发框架几乎都包含以下特性: 使用 HTML5 + CSS + JavaScrip
  • 移动APP开发的三种常见模式

    千次阅读 2022-04-10 10:32:21
    移动APP开发的三种常见模式
  • 移动互联网”的形势下,个人隐私信息泄露所引发的事件越来越多,大众对隐私安全的重视程度越来越高;国家网信办、工信部、公安部、市场监管局等四部委及其他相关机构陆续出台个人信息保护规范和细则,并落地实施。
  • 大话移动APP测试 Android与iOS应用测试指南

    千次下载 热门讨论 2015-09-09 15:18:12
    大话移动APP测试 Android与iOS应用测试指南
  • 移动 App 应用测试方法与思路

    千次阅读 2019-06-24 19:20:00
    移动 App 应用测试方法与思路 分析三种主流的移动 App 类型,并给出和普通web测试不同的地方,给出测试的思路,并给出部分场景组合。 附:安卓 App 测试常用 adb命令和 money 命令 移动端测试还是 PC 端测试,...
  • 移动App测试开发面试题汇总1、引言2、基础篇2.1开篇介绍,APP测试流程2.2 移动APP测试需要准备环境资源2.3 移动APP测试和Web测试的区别2.4、移动APP专项测试2.5 Android手机和IOS手机,系统有什么区别?2.6 IOS和...
  • 移动终端APP安全防护规范及安全开放标准解决方案。 包含:APP应用上线前安全评估原则、APP客户端安全功能要求、开发环境安全管理 、源代码的安全管理、委外开发安全要求等。
  • 完整PDF,附带完整目录~~~
  • 移动APP对我们的生活影响?

    千次阅读 2019-09-16 10:50:53
    智能手机的普及改变了我们的生活,其中人们在运用智能手机中的软件,为我们的生活带来很大的改变,现在各种app层出不穷,曾经我们说现在的时代是一个互联网时代,如今如果要准确形容的话,应该说是进入了移动互联网...
  • 移动APP卡顿问题解决实践

    千次阅读 2021-10-21 18:01:56
    4)完善的移动支付体系;5)离线支付,脱离网络;6)账户丢失可找回;7)差错协商,保障交易双方利益;8)标签型商城,便捷最大化;9)成本低廉,便于推广。 用户是需要使用本产品进行消费的客户,需要安装用户
  • 一篇彻底搞懂----混合移动App干货

    千次阅读 2019-12-01 15:56:24
    一 - 混合移动App干货—详细解读 引言 本文会详细的讲解什么是混合App开发、混合App开发概念、原理、区别、为什么要学习混合App、混合App开发的几种方式以及具体的环境配置和踩坑指南等干货十足。 1-什么是混合...
  • 软件测试案例:移动APP非功能性测试 01、实验简介 移动app测试的一个重要方面是移动app的非功能需求。包括app启动时间、流量、电量以及CPU占用率等。 02、实验目的 1)掌握adb 常用命令 2)掌握APP非功能性...
  • 欢迎关注微信公众号:宝藏女孩的成长日记 如有转载,请注明出处(如不注明,盗者必究) 目录 一、混合式开发简单介绍 二、前提准备 三、新建移动app项目 四、编写代码(沉浸式开发) 五、json文件的配置 六、云端...
  • 移动APP漏洞自动化检测平台建设

    千次阅读 2016-12-19 07:41:28
    前言:本文是《移动APP客户端安全笔记》系列原创文章中的第一篇,主要讲的是企业移动APP自动化漏洞检测平台建设,移动APP漏洞检测发展史与前沿技术,APP漏洞检测工具与平台,以及笔者的一些思考。希望能对移动App...
  • 中国移动app,网页版,H5版本免密登录,绕过登录,一键登录,有不有高手会破解呀。https://wap.gz.10086.cn/smphone/home/page/index.do?referChannel=45533&referChirdChannel=518&chirdShopId=518&Prov...
  • 移动App性能评测与优化PDF,移动App性能评测与优化PDF,移动App性能评测与优化PDF移动App性能评测与优化PDF,移动App性能评测与优化PDF,移动App性能评测与优化PDF
  • 接下来将讲解如何用真机来测试Android app 操作步骤 手机连接电脑(用数据线进行连接) win+r ——> cmd 右键管理员运行 首先测试一下是否连接上: adb devices 输入adb shell,进入shell命令调试模式。 adb ...
  • 移动APP安全测试要点

    千次阅读 2017-02-09 17:08:23
    移动APP安全测试要点 上次《 运营商渗透测试与挑战》中提到,随着运营商新技术新业务的发展,运营商集团层面对安全的要求有所变化,渗透测试工作将会面临内容安全、计费安全、客户信息安全、业务逻辑及APP等方面...
  • 移动app开发流程,app开发步骤

    万次阅读 2017-05-29 11:44:59
    移动app开发流程,app开发步骤 app是手机软件的简称。手机主流的有ios、andriod,windows平台。市场上程序做得比较多的也是前两款的平台。 随着移动互联网的普及,移动终端功能的日益完善,很多企业看重移动互联网...
  • 软件好评 移动app好评

    2018-01-09 19:40:37
    软件好评 移动app好评 软件好评 移动app好评 软件好评 移动app好评 软件好评 移动app好评 软件好评 移动app好评 软件好评 移动app好评
  • HTML5移动开发的10大移动APP开发框架

    万次阅读 2017-12-13 15:52:29
    今天给大家介绍10款有关HTML5移动开发APP开发框架,这几款... 十款移动APP开发框架: 1.jquery mobile框架 2.bootstrap框架 3.ionic框架 4.Mobile Angular UI框架 5.Intel XDK框架 6.Appcelerator Titanium框架 7.Senc

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 453,868
精华内容 181,547
关键字:

移动app

友情链接: CRC_sim_course.zip