APP 应用系统架构:
客户端程序+应用服务器+数据库
与web系统应用架构相比:
相同点:
- APP和web使用的后端服务器都是相同的
- 前后端都是用HTTP协议进行交互(也有部分app用scoket来交互)
不同点:
- APP是C/S结构,web浏览器是B/S结构
- App前后端交互的数据格式以json为主,web前后端交互的数据格式以HTML为主
APP项目环境及发布平台
一、APP项目环境(后端)
一般公司内部开发,测试人员会使用不同的环境,以隔离工作过程中彼此的干扰。同时,上线给用户使用的产品也会单独部署环境。
开发环境
指开发人员进行开发时调试运行的环境
测试环境
提供测试人员使用,用于测试人员执行测试,回归缺陷
预发布环境
这个环境中,一般会连接生产环境的数据库,使用生产环境的数据来进行测试
目的时测试最新的代码,对于线上复杂数据的处理情况
注意点:
- 预发布环境中只针对基本的业务进行测试
- 测试写的业务操作时,只能使用自己构造的数据
- 升级涉及到表结构变更时,可以将生产环境数据库数据备份发哦测试库中,升级并测试
生产环境
指正式提供对外服务的环境,产品的实际用户使用的环境
预发布环境过后,正式发布生产环境之前,一般会进行灰度发布。
灰度发布:由于一个项目,一般线上部署时有多台机器运行,所以灰度1台至3台,看看功能是否OK,如果失败则只需要回滚几台,比较方便
后台灰度发布
预发布环境过后,正式发布生产环境之前,进行的一种发布策略
注意点:
一般情况下切一小部分流量,灰度机器<10%
验证时间1周至1个月之间
如果运行无问题,在某个流量小的时刻,不停机更新服务器环境
如果运行有问题,尽快定位问题,并修复问题;如果问题比较严重,需要回滚代码,保障线上用户正常使用
二、APP应用发布(前端)
APP开发完成之后,相应的开发人员会打出应用程序包,有测试人员按照测试
- 安卓:APK测试包
- IOS:IPA测试包
应用内测分发平台
在实际测试工作中,为里方便测试程序包的安装和管理,可以使用一些免费的应用内测分发平台。将应用测试包上传到这些平台上,
可以生成对应的二维码,之间扫码进行应用安装。
- 蒲公英
- fir.im
应用线上发布平台
产品测试完成后要在线上进行发布,让用户进行下载使用。下面时安卓和IOS应用常用的发布平台和渠道:
- 安卓应用:豌豆荚,应用宝,360手机助手,各类品牌商城等;
- IOS应用:App store,iTools
线上发布流程:
- 提交APP包到平台审核
- 给每个APP包分配平台号
- 将平台号打包到对应的app包
- 正式提交发布