移动端app测试

需要明白-4方面:


应用架构、项目环境,
基于敏捷而开发的测试流程
APP测试要点:
GT工具的使用:进行性能测试


应用架构:
用户->客户端应用->web server ->数据库访问

app和web使用的后端服务是完全相同的,前后端都是http协议进行交互(有部分app是socket交互)。
不同处:app与后台通过json交互,web通过html。

环境

APP后台环境:开发环境、测试环境、预发布环境、生产环境。
预发布环境:链接生产环境的数据库,用生产环境的数据测试。
预发布环境发布到生产环境上,是灰度发布。
APP应用发布-前端,
安卓:APK测试包:XX.apk
IOS:IPA测试包:XX.ipa

上述包发给测试人员,但是有弊端:测试人员会更换N个包。

应用内测分发平台 :

方便测试程序包的安装和管理,可以将一些包免费的应用内测分发平台,将应用测试包上传到这些平台上,可以生产对应的二维码,直接扫描进行应用安装(选择最新的包)。
蒲公英、fir.im.


应用线上发布平台:

产品完全测试后,要在线上进行发布,普通用户可以下载使用,
安卓应用:豌豆荚、应用宝、360手机助手、各类手机品牌商城等
IOS应用:只要是APP store、iTools。
线上发布过程:
提交app报告到平台审核,给每个APP包分配平台号(渠道号),需要将平台号(渠道号)打包到对应的app包(该包需要再次测试)、正式提交发布。


app测试要点:

大类型


功能测试
兼容性测试
安装、卸载、升级测试
交叉事件测试:
PUSH消息测试

性能测试

用户体验测试

兼容性测试

安装测试

正常:

1、在不同的操作系统上安装

2、从不同的安装途径上安装(app商城、手机助手、直接下载apk包或者ipa包)

3、不同的安装路径(安装后手机、安装到sd卡)

异常:

1、安装过程中如果遇到异常(关机、断网),恢复后可以继续安装

2、安装过程中内存不足,有提示:请清除空间,清除内存后可继续安装

3、安装过程中取消后继续安装

4、正在运行中安装:覆盖安装,应该是:退出正在运行的app,然后覆盖安装。

5、低版本覆盖高版本:需要有提示:有更高版本、不能安装

6、卸载后安装

卸载测试

1、正常卸载(app手动卸载、工具卸载-手机助手)

2、运行时卸载-工具卸载,

3、取消卸载,正在卸载中,取消后,应该还是能正常使用

4、卸载异常:关机

5、卸载后无数据残留:文件系统中没有该软件的数据:配置文件、个人文件根据个人卸载时选择保留还是卸载

升级测试

1、从临近版本升级

2、跨版本升级:v1.0->v1.3 

3、不同渠道升级:(应用商城、手机助手)

4、升级是否有提醒:可不提醒、可提示升级、强制升级(有严重bug修复时)

5、应用内升级时非wifi提醒

注意:升级后要观察升级前的数据正常(升级时如果数据结构没有处理好会导致数据发生混乱)

交叉事件测试或者叫干扰测试

指:在app运行中,其他事件或则操作对当前app可能产生干扰的事件,

例如:app运行中或者在后台 运行中,有来电、或者下载文件。

手段:模拟用户场景、发散测试。

关注点:

1、app运行中来电话:必须出现接听电话,电话结束后,会出现刚才的app运行界面

2、app运行中接收信息:给提示信息,app正常

3、app运行中查看应用推送信息

4、app运行中接上、断开蓝牙设备

5、app运行中接受文件弹窗,点拒绝接受、app仍然能运行

6、app运行中旋转屏幕

7、app运行中切换网络:4g,wifi-》4g,图片清晰度下降(),高清-〉一般

8、app运行中使用相机、计算机等手机自带应用

9、app运行中电量告警、插拔充电器。

PUSH消息测试

推送消息背景:

产品角度:功能需要

运营角色:活动需要

原理:

pull:app主动向server询问是否有最新消息,是多次短连接,server有消息就会发给app。

push:app被动接受server的消息,长连接。

两者对比:push更好、节约资源(cpu和电、流量),pull更加消耗资源。

push推送原理:server ->app ->用户。

push推送方式

1、操作系统级别的推送方式:操作系统自建的server(服务器)

应用的后台服务->消息推送server(apns)->手机->应用app,

2、调用第三方的push服务器

手机厂商类:小米推送、华为推送

第三方平台类:友盟推送、极光推送、云巴(基于mqtt)

bat大厂的平台推送:阿里云移动推送、百度信鸽推送、百度云推送,

3、自建push服务器(安全、稳定、高效、成本高)

push推送消息服务器和手机设置

主动推送、被动推送,

app服务器设置:push针对不同的全体:所有用户、部分用户(例如年消费额到2w)、特定用户,

手机端设置:是否接受通知、位置等。

push推送消息-测试关注点

服务端:

1、push消息是否按照既有规则发送了:例如消费额到一定额度,才能发送优惠券消息

2、针对特定用户时,检查收到消息的用户是否和push规则相同

手机端:

3、设置不接收时,是否如预期

4、设置接受时,位置是否正确

5、收到消息,是否能正常打开

app不同状态

6、app在前台运行中,push消息如何提示:

7、app在后台运营中,push消息如何提示

8、app离线时,是否能收到push消息。在消息的生存周期时可以收到,

app性能测试

关注:cpu、内存、电量、流量、启动速度、流畅度等。

性能测试工具-GT

简介:随身调,是腾讯自主研发的app随身调试平台,是直接运行在手机上的集成调试环境。

1、基础性能测试工作:手机整机或者手机上任意1个app的cpu、内存、电量、流量、启动速度、流畅度等基础性能指标的实时展示,历史数据采集及excel格式存储、曲线绘制等。

2、日志查看:app的logcat日志查看,便于app现场定位异常及查看crash。

3、网络数据包抓包:转包后,到pc端wireshark打开分析包

GT安装 方式有2种:

1、单独安装:直接下载apk,ios不可以

2、集成SDK:安卓和ios都可以,打包到被测app代码中。

性能工具:GT的使用:

手机必须有root权限

1、进入aut界面,选择指标

2、选择监控的参数:参数拖到对应的监控区域就好

3、配置日志:logcat设置on,同时打开日志、可以保证同步抓取日志
4、打开开始监控按钮后,打开被测的app应用后,悬浮筐就会出现在右上角

5、查看检测结果

6、到运行日志中查看日志

CPU

GT工具提供2个cpu的监控指标:cpu和jiffies,前者是经常使用的指标:

cpu:计算公式

cpu有用户态、系统态和空闲态:

用户态:cpu处于应用程序时执行的时间,

系统态:系统内核执行的时间,例如:控制电池消耗、屏幕、读写,

空闲态:空闲进程idle执行的时间,

cpu使用率=cpu执行非系统空闲进程时间/cpu总的执行时间=(用户态+系统态)/cpu总时间。

jiffies:表示自开机以来,应用程序消耗cpu时间片的总数。

cpu问题出现时的现象-出现时尽快定位下:

1、cpu使用率长时间处于90%以上时,

2、手机发烫、耗电量增加:cpu越高、耗电量越大、手机就会发烫,

3、手机卡断:反应变慢,引发anr:application not responding。

cpu-测试步骤:

梳理app业务的主要操作流程,

测试方法:

1、打开gt工具,配置cpu指标及告警阈值:编辑时

2、进入被测试app,操作主要业务,观察cpu指标:

看cpu是否飙升到90%,cpu是否持续在90%以上

3、进入gt停止,查看cpu结果:操作结束后,点红色按钮停止,查看结果,先看曲线图

4、收集cpu详细数据

cpu-监控数据保存到手机文件夹下

gt界面,参数页-右上角点文件夹符号,设置保存到手机的路径。

如何将文件保存到电脑上呢:

文件选中后,回退到根目录,切换到mnt/share文件夹,选择other文件夹,左下角有个3个点,点开后:黏贴此选项,

就拷贝到共享文件夹中了,然后再点右边的竖列里的电脑标示:选择“打开电脑文件夹”
,就拷贝到电脑上了。

内存

gt工具提供2个指标:pss、private dirty

private dirty:私有内存:是应用独占空间,其他应用不可使用的内存,销毁时可以回收的内存,共享内存是销毁时无法回收的内存。

pss:实际使用内存=私有内存+共享内存。需要按照比例计算实际内存。通常关注该内存。

常见内存问题及影响

内存泄漏 memory leak:内存申请内存后,程序无法释放内存空间,一次内存泄漏影响不大,但是泄漏内存堆积后果严重,内存早晚会被泄漏光。

内存溢出:out of memory,是指程序申请内存时,没有足够的空间供它使用。出现 out of memory,memory leak长时间会导致内存溢出。

内存问题的表现:

1、程序的pss(实际使用内存)持续增长

2、程序闪退,大概率内存溢出

app内存测试步骤

梳理app业务的主要操作流程,

测试方法:

1、打开gt工具,配置内存指标及告警阈值:编辑时,mem是整机的内存,pss、private memory是程序 自己的。

2、进入被测试app,操作主要业务,观察内存指标:

pss是否持续增长,是否程序闪退,

3、进入gt停止,查看内存结果:操作结束后,点红色按钮停止,查看结果,先看曲线图

4、收集内存详细数据,并分析。

流畅度测试

fps=frame per second:每秒的帧率。

流畅度

人脑感觉是连续的,每秒10-12帧

要求24帧/s

最高60帧/s、最低10-12帧

测试步骤

主要操作:上下滑动各5min,查看fps值。

该类指标操作和cpu、mem不同,如果是静止界面,fps本身就低,如果是动态界面,fps才会比较大。

测试方法:

1、打开gt工具,配置流畅度指标:参数列表中配置

2、进入被测试app,操作主要业务,观察流畅度指标:

3、进入gt停止,查看运行结果:操作结束后,点红色按钮停止,查看结果,先看曲线图:

只看滑动其间的值,滑动前、后的值不对。

4、收集详细数据,并分析。只计算 滑动期间的平均值。(24-60)帧/s都是正确的。

流量测试

流量:数据报文总大小(字节数)就是流量,数据报文包含手机上下行的报文。

常用流量测试方法:

统计测试法:数据统计,如果超过,用抓包测试

抓包测试法:app和server之间用tcpdump或者fiddler抓包,前者抓包必须用wireshark分析。

测试步骤

操作业务:动态画面

1、打开gt工具,配置net指标:参数列表中配置,可以拖动pnet和net一起看,pnet可以放到浮窗。

在“插件”中配置抓包,抓包命令可使用默认的:-p -s 0 -vv -w,可以看到抓包的位置

2、进入被测试app,操作主要业务,观察net指标:

3、进入gt停止,查看运行结果:操作结束后,点红色按钮停止,查看结果,先看曲线图:

r:receive 接受包

t:发包

4、收集详细数据,并分析。

流量优化的方法-6种

其实就是优化响应报文的方法:

1、数据压缩:打压缩包

2、不同数据格式的采用:例如图片:高清图片、普通像素图片,对手机来说效果差不多,用小文件代替大文件。

3、控制访问的频次:实时获取or降低频次,要权衡。

4、只获取必要的数据:其他不必要的数据不返回

5、缓存机制:

6、针对不同的网络类型设置不同的访问策略。

wifi:高清图

4g:缩略图。

电量

指标:电流、电压、电量和温度

是测试移动设备电量消耗快慢的一种方法,一般用平均电流(mAh:平均电流越小、说明电池使用时间越长)衡量电量消耗速度,

常见的耗电场景

定位:尤其是打开gps

网络传输:尤其是非wifi环境、4g

屏幕亮度:所以要确认测试屏幕

cpu频率

内存调度频率

wake_locker时间和次数 :锁屏和解锁

测试步骤

业务场景:

1、屏幕亮度调到最大

2、使用app,打开gps,拍照、使用wifi或者非wifi操作业务

3、使用过程中,几min就锁屏解锁下

测试方法:

1、打开gt工具-进入插件tab,选择“耗电数据采集”,采

2、设置数据:采集间隔设置100ms,屏幕亮度最大。数据指标。

3、进入被测试app,操作主要业务,观察指标:

4、进入gt停止,查看运行结果:操作结束后,点红色按钮停止,查看结果,先看曲线图:

5、收集详细数据,并分析。

电量是否有问题,需要有基准数据做对比的:

参照物:

与基准数据对比:(数据来自于产品经理-写需求写出来、或者以往数据积累-不能超过历史数据)

横向对比:拉上竞品一起分析(目前经常用该方法):

同样的网络、手机,相似的场景下,对比我们的产品和竞品之间的耗电量差距,给出优化意见

例如社交类:qq、微信

启动速度测试

冷启动:被后台杀死、重新启动的启动方式,

热启动:后台没被杀死、还在运行中、重新启动的启动方式,耗时

测试方法:

adb shell am start -W -n 包名/Activity名,查看app进入到该包到该Activity界面的启动耗时时间,

包名/Activity名的获取后续app自动化部分会讲:

关键指标3个:

ThisTime:界面启动的时间

TotalTime:应用程序启动的时间、>=ThisTime,一般以TotalTime作为最终的测试结果。

WaitTime:=TotalTime+系统资源的启动时间,是最大。

通常测试10组数据,然后计算平均值。

测试后数据有效性的判断-数据对比:

参照物:

与基准数据对比:(数据来自于产品经理-写需求写出来、或者以往数据积累-不能超过历史数据)

横向对比:拉上竞品一起分析(目前经常用该方法):

同样的网络、手机,相似的场景下,对比我们的产品和竞品之间的耗电量差距,给出优化意见

例如社交类:qq、微信

用户体验测试

从普通消费者角度,主观使用感知产品或者服务的舒适、有用、易用、友好亲切度程度,进而提升用户体验。

所以提单时:一定要提的具体一些 、最好有依据,提单为建议、优先级放低。

测试关注点:

1、UI界面测试:

测试依据:UI交互设计图,

检查:每个界面设计菜单、对话框、窗口、风格、布局等。

注意点:图片、按钮(选中效果)、菜单、对话框、字体大小颜色、居中对齐。

2、易用性测试:易学、易操作、易操作,符合用户正常操作习惯

是否有空数据界面引导客户操作,引导客户操作:新手指导。

菜单隐藏太深:需要点好几次才能进入界面,

交互流程分支是否过多

完成业务操作的步骤是否过多

界面中按钮可点击的范围是否适中(在按钮附近的框点都可以生效)

是否定义Back的逻辑。涉及软硬件交互时,Back键应该具体定义。

3、横竖屏测试:

横竖屏切换是否正常(针对每个界面都要做横竖屏测试)

特别关注app中有表格,因为横竖屏展示的宽度不同。

4、关注手机应用上其他辅助功能:

可关注:“放大字体”、“反色”、“语音转换”、多点触碰等功能。

稳定性测试:

通过长时间对应用进行无序操作,检查应用程序是否出现异常(系统crash、ard)

稳定性测试工具:Monkey

命令行工具、安卓官方提供,

测试人员可以通过Monkey工具模拟用户的触碰、点击、滑动以及系统按键等操作(操作事件都是随机的),从而实现app的压力和稳定性测试。(具体monkey的使用方法会在后续的自动化教程中体现)。

研发可结合Monkey和系统的日志,修复测试发现的问题。

稳定性测试的时机:

一般在测试后期-系统稳定、几乎无bug后,才能进行稳定性测试。

  • 26
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值