App项目测试内容
App测试包发布和管理
App客户端(内部)发布平台
在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些应用内测分发平台。如:蒲公英、Testlink等。
操作步骤:
- 开发将应用测试包上传到这些平台上
- 平台可以生成对应的二维码
- 测试直接扫码进行应用安装
App客户端(线上)发布平台
产品测试完成后要在线上进行发布,让用户进行下载使用。
安卓应用:豌豆荚、应用宝、360手机助手、各类手机品牌商城等;
IOS应用:主要有 App store、iTools
操作步骤:
- 开发者账号注册,申请在发布平台(各种应用商店)上架
- 针对不同的发布平台,在软件包中加入对应的平台ID(渠道ID),上传到发布平台
- 平台审核通过后,用户即可在应用商店中下载。
注意:
一般线上发布过程,由开发人员负责。
在软件包加入平台ID后,上传到发布平台时,需要测试人员验证核心的业务功能。
App项目测试内容(重点掌握)
功能测试
登录、注册、搜索、购物车、下单、支付模块、轮播图
专项测试
1、兼容性
- APP在不同的机型上由于软件、硬件等不同可能出现各种各样的问题,因此需要做兼容性测试
- 不同的操作系统及版本(安卓各版本、ios各版本)
- 不同的手机型号(小米、三星、苹果、oppo...)
- 不同的分辨率(1080x1920、720x1280.。。)
- 不同的屏幕尺寸(5.5、4.7.。。)
- 不同的屏幕(水滴屏、刘海屏、瀑布屏、全面屏、LED屏、OLED屏)
- 系统应用的兼容性
- 不同的网络(2G、3G、4G、WiFi。。)
如何执行兼容性测试?
一般情况下,在公司中会存在各种型号的手机,使用真机进行兼容性测试即可。(使用不同的机型打开软件操作,无异常即可)
若公司没有太多机型,可参考云测平台或者模拟器
如果项目的用户量非常大,真机无法覆盖完全,可以找第三方的兼容性平台进行测试
如:线上云测平台testin(https://www.testin.cn/)
2、安装卸载升级
APP是客户端程序,客户端程序就需要提前进行安装才能使用,因此需要测试安装、卸载、升级操作
安装测试关注点:
正常场景:
- 在不同的操作系统版本上安装
- 从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装)
- 不同的安装路径(安装到手机上、安装到SD卡上
异常场景:
- 安装时出现异常(关机、断网),恢复后能否
- 继续安装
- 安装时存储空间不足
- 安装时手动取消或暂停,恢复后是否能正常安装
- 正在运行时覆盖安装(后台运行\前台运行:需要考虑是否会打断用户操作)
- 低版本覆盖安装高版本
- 卸载后安装(卸载后是否会清除数据)
卸载测试关注点:
- 正常卸载(APP手动卸载、使用第三方软件卸载)
- 运行时卸载(后台运行)
- 取消卸载(第三方软件\二次弹窗确认时取消)
- 卸载异常中断(关机)
- 卸载后数据残留(给用户提示确认,如果用户同意残留,可以保留数据;如果用户拒绝残留,不可以保留数据)(如果不做任何确认提示,默认需要清空残留数据)
升级测试关注点:
- 从临近版本升级(上一次发布的版本)
- 跨版本升级
- 不同渠道升级(应用商场、手机助手)
- 升级提醒成功(可不提醒、可以提示升级、强制升级)
- 应用内升级时非WIFI提醒
注意事项:升级后要观察升级前的数据正常(当数据结构改变而开发没有处理好时很容易出现升级前的数据混乱)。
3、干扰测试(交叉事件测试)
- App运行时,接打电话
- App运行时,收发短信
- App运行时,音视频电话
- App运行时,查看应用推送(其他软件的推送\当前软件的推送)
- App运行时,连接蓝牙设备
- App运行时,接收文件弹窗提醒(确认接收\拒绝接收)
- App运行时,旋转屏幕
- App运行时,切换网络(移动数据和WiFi自动切换)
- App运行时,手机自带应用(打开相机\手电筒\计算器)
- App运行时,低电提醒
- App运行时,插拔充电器(充电动画)
4、Push消息推送
4.1、什么是push消息?
4.2、Push消息推送原理
4.3、Push消息测试关注点
- 一,push内容的准确性。用户收到的和推送的是否一致
- 二,什么场景下会触发push推送
- 三,push推送的用户是否准确。(分为全部推送,部分推送,指定用户推送)
- 四,push推送消息时点击跳转是否正常
- 五,app在前台运行和后台运行,用户是否能够收到push消息
- 六,用户未登录的情况下是否能够收到push消息
- 七,用户长时间未登录,后续第一次登陆时,是否会接收到历史推送消息
- 八,用户设置了禁止推送,能否能够提示开启推送
4.4、什么时候会使用Push消息?
消息推送场景:
产品角度:功能需要,如:资讯类产品的新闻推送、工具类产品的公告推送、快递签收通知,等等
运营角度:活动运营需要,如:电商类产品的促销活动;召回用户 / 提高活跃度等等
推送服务器(是否按照规则去推送)
- 推送内容
- 推送的时间
- 推送频率
- 推送的对象
手机端
- 不接收消息,将不会收到任何推送
- 接收消息
- APP在前台运行时,消息如何显示
- APP在后台运行时,消息如何显示
- APP离线,消息如何显示
- 消息能否打开
- 接收时设置
- 接收消息但不提醒:手机提醒不会触发
- 接收消息的同时触发提醒:结合手机模式:静音模式\震动模式\铃声。
- 接收消息但不显示消息内容(例如:微信发来一条消息)
5、用户体验测试
用户体验:以主观的普通消费者的角度去感知产品或服务的舒适、有用、易用、友好亲切程度。
- UI界面测试:对照UI交互设计文档,检查每个界面设计菜单、对话框、窗口、风格、布局等
- 横竖屏测试:横竖屏的切换是否正常(特别要关注APP中有表格,因为横竖屏的显示宽度不一样)
- 易用性测试:
- 是否有空数据界面设计,引导用户去执行操作
- 菜单层次是否太深
- 完成业务操作的步骤是否过多
- 界面中按钮可点击范围是否适中
- 关注手机应用上的其他辅助功能:可以重点关注“放大字体”、盲人模式、“语音转换”、多点触碰等功能
性能测试
App性能测试工具介绍:SoloPi
SoloPi是一个无线化、非侵入式的Android自动化工具,具备录制回放、性能测试等功能。
配置ADB环境:想要在Windows使用SoloPi软件对App进行性能测试,需要先在Windows下配置ADB环境,然后在雷电模拟器里安装SoliPi软件使用。具体操作看以下pdf文档。
使用示例:SoloPi-性能测试工具使用简述 - 简书 (jianshu.com)
APP性能测试常见指标
1. CPU
CPU基础知识——时间片
每个程序运行都需要占用CPU,那么单CPU的机器是如何同时运行多个程序的?
时间片即CPU分配给各个程序的时间,每个程序被分配一个时间段,称作它的时间片,即该程序允许运行的时间。
CPU监控指标
SoloPi工具提供了两个CPU的监控指标:全局占用CPU和应用进程CPU
全局占用CPU:
1.整机的CPU使用水平,即当前手机的CPU整体使用率。
2.计算公式:
- 在 Linux 系统下,CPU 利用率分为用户态、系统态和空闲态
- 用户态:表示 CPU 处于应用程序执行的时间
- 系统态:表示系统内核执行的时间
- 空闲态:表示空闲系统进程执行的时间。
- CPU 使用率 = CPU 执行非系统空闲进程时间 / CPU 总的执行时间
应用进程CPU:
表示自开机以来,应用程序消耗的CPU时间片的总数。
2. 内存
每个程序运行时都需要将代码和数据放入内存中,内存不足则程序无法正常运行。
SoloPi工具提供了两个内存的监控指标:PSS和Private dirty
Private dirty(私有内存):进程独占内存,也就是进程销毁时可以回收的内存容量。
PSS(实际使用内存):将跨进程共享页也加入进来,进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。
内存泄露(memory leak):内存的曲线持续增长(增的远比减的多)。
内存溢出(out of memory):一定是因为有内存泄露才会出现,内存持续增加突然降为0(如:应用停止运行)。
3. 流量测试
手机上网时消耗的流量需要收费的,因此流量测试是app性能测试中比较重要的一项。
流量(指网络流量):
用手机打开APP进行互联网操作时,会和服务器之间交换数据,手机流量就是指这些数据的总大小。
数据报文是包含手机上下行的报文。
4. 电量测试
注意:对于电量,公司是否有基线要求。如果有要求,那么我们需要去检验产品是否达标;如果没有基线,可以和竞品对比测试。
5. 启动速度
APP启动测试:测试从启动app到主页面显示的时间,打开一个app等待的时间过长时就会有一种较差的体验。
APP启动:分为冷启动,热启动。
冷启动:指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动。
热启动:指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动。时间比冷启动短。
启动速度测试方法(Android):
格式:adb shell am start -W 包名/Activity名
TP商城单商户包名/Activity名为:com.tpshop.malls/com.tpshop.malls.SplashActivity
该命令获取3个关键指标:
ThisTime: 当前activity的时间。
TotalTime:应用的启动时间,包括创建进程、App初始化、 Activity初始化到界面显示。
WaitTime:前一个应用activity pause的时间+TotalTime
adb kill-server # 关闭服务
adb start-server # 打开服务(如果上图的启动无效,试试先关闭再打开服务)
6. 流畅度测试
SoloPi工具提供了流畅度的监控指标:帧率FPS
FPS:即Frames per second,GPU在一秒内绘制的帧数(简单理解为一秒内呈现给用户的图片数)。 FPS值越高画面越流畅。
7. 稳定性测试
稳定性测试:通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常。如闪退crash、无响应ANR等。
稳定性测试工具——Monkey:
- Monkey是一个命令行工具,是由安卓官方提供的。
- 测试人员可以通过Monkey来模拟用户的触摸、点击、滑动以及系统按键等操作(操作事件都是随机的),从而实现对APP压力的测试和稳定性测试。(具体Monkey的使用在后续app自动化章节介绍)
- 开发人员结合monkey 打印的日志和系统打印的日志,修改测试中出现的问题。
稳定性测试的时机:
- 注意性能数据监控
- 注意日志收集(出问题了难复现,交日志给研发去分析)
- 一般需要等产品稳定了,bug比较少的时候,再用monkey去测试待测试应用的稳定性。
模拟器使用常见异常处理
- 问题1: devices offline (设备离线) 解决方案:重启模拟器
- 问题2: devices not found (找不到设备) 解决方案:重启模拟器
- 问题3: more than one devices emulater(连接了多个设备)
- 获取设备列表:adb devices #命令行输入
- 断开不需要的设备:adb disconnect 手机ip #命令行输入