移动端app专项测试
学习目标:app专项测试知识点,其他知识扩充
一、app专项(app怎么测试/app侧重点在哪)
1.功能:
跟前面功能测试一样(跟需求文档提取测试点,编写测试用例)
2.安装
1.不同品牌安装,不同操作系统,不同分辨率
2.安装后是否可以正常使用
3.空间不足是否有提示
4.是否可以重复安装(低版本覆盖高版本,同版本覆盖,高覆盖低版本)
5.电量不足是否有提示
6.是否可以第三方平台安装
7.安装是否有进度条提示或者已用时间或者剩余时间提示
3.卸载
1.不同品牌安装,不同操作系统,不同分辨率
2.卸载时是否有提示
3.卸载是否有进度提示
4.正在使用的app,卸载是否有提示
5.是否可以通过安装目录的文件删除卸载
6.卸载后已经安装的文件是否卸载干净
7.是否可以通过第三方平台卸载
8.正在卸载时,取消卸载,app是否可用
4、升级
1.升级时是否有提示,提示语是否正确
2.是否为强制升级,如果不升级是否可以正常使用
3.升级时直接升到最新版本,还是按顺序升级
4.当天不升级,下次使用是否还有升级提示
5.切换网络后,升级是否有提醒
6.升级到一半,不升级,下次是重新升级还是从记录开始升级
7.低版本覆盖高版本,同版本覆盖,高覆盖低版本
8.不同品牌安装,不同操作系统,不同分辨率
9.升级后功能要能正常使用
10.升级后旧数据还正常使用
5、兼容性
1、不同品牌
苹果:16、17.等等
安卓:华为系列、小米系列、荣耀系列、oppo系列
2、不同操作系统
1、android
2、鸿蒙
3、ios
3、不同分辨率
1920*1080 , 2k(2560*1440) 4k(3840*2160)
4、不同尺寸
5.x ,6.x
5.不同网络兼容
2G,3G,4G,5G,wifi
6.权限兼容
安装时,是否有获取获取权限提醒...
7.兼容新旧数据
8.兼容蓝牙,摄像头,定位打卡等等
说明:为了更好的兼容性测试,我们需要去云平台进行兼容性测试
6、用户体验
1.是否美观
2.是否有错别字,色彩搭配是否合理,布局是否合理
3.文字大小是否合理
4.是否容易操作(通俗易懂)
5.是否有新手引导
6.是否使用教程
7.是否有适用不同阶段年龄的模式
8.是否本地化语言
9.是否有聚焦到第一个输入框的功能
10.是否有快捷键操作
7、交叉事件(冲突、中断)
正在做一件事情,被另外一件事情干扰
比如:我在看抖音,你给我发给信息
8、网络测试
1.正常网络测试
2,3,4,5G,wifi
2.弱网测试
目的:在网络不稳定的情况下是否工作正常,是否有提示,是否会报错...
3.无网络测试
9、时间测试
使用服务器时间
10、安全测试
1.连续错误操作限制
2.防止SQL注入
3.敏感内容是否脱敏: 13838****5438
11、垃圾回收(内存测试泄漏)——Android app
内存泄漏:越来越卡
内存溢出:
在日志中提示OOM(out of memory),比如:打开某个游戏App需要3G内存,但是手机只能提供1G内存
监控内存泄漏
1、监测工具:ddms
在cdm中输入ddms,打开抓包工具,选择想要监测软件的包名,show head updates,选择vm heap,点击cause Gc,观察date object行里的toai size,如果数据变大,存在内存泄漏
重复点击:adb shell monkey -p com.example.com.boweifeng.xx -v 3
2、指令监控
adb shell dumpsys meninfo com.android.settings+包名
注意:只会变大不会缩小,存在内存泄漏
12、消息推送(push推送)
1.内容是否正确
2.内容格式是否正确
3.是否可以指定人员推送
4.点击消息是否可以打开app
5.设置不接收推送,不能收到
13、前后台切换
1.app是否会崩溃
2.是否会跳转到下一步或者上一步
二、稳定性测试(疲劳性测试,app性能测试)
1、monkey是什么
是一个无规则点击操作的工具
需求:企业可能要求测试人员对app连续操作2 小时点击
2、优缺点
优点:长时间连续操作,使用简单
缺点:步骤控制
3、基本命令
adb shell monkey -p+包名 -v 次数
4、稳定性/疲劳测试/app性能怎么做
1、安装被测应用
adb install
2、安装性能监控工具itest,启动性能监控工具
监控性能指标,关注什么:cpu、pss内存、上传流量、下载流量、cpu时间
3、清空多余日志
adb logcat -c
4、获取app的日志保存到本地
adb logcat -v time > 文件路径+文件名
adb logcat -v time > C:\Users\admin\app.log
5、运行monkey命令保存日志到本地
adb shell monkey -p 包名 -v 次数 >C:\Users\admin(文件路径)
5.结果分析
1、 查看性能资源
- 2、查看app日志(可以发现是否有问题)
- 3、先搜索anr in (application not responding 应用无响应) ,能搜索到表示app发生
6、接口分析
1、具体讲app稳定性当时发生什么问题
发生过无响应
当时在日志中搜索anr in,可以搜索到,然后日志显示是在登录界面的注册按钮发现无响应
7、monkey如何做回归测试
使用上一次monkey产生的seed进行回归测试即可
怎么找到seed
找到monkey命令保存到本地的日志,打开日志,找到:Monkey:seed=
adb shell monkey -p 包名 -s seed -v 次数
8、怎么样保证monkey一定跑完
说明:上面指令,只有app发生了日常,比如:无响应,monkey就会停止
需求:无论如何都要跑完
adb shell monkey -p 包名 -s seed --ignore-crashes --ignore-timeouts --ignore- security-exceptions -v 次数
--ignore-crashes:忽略崩溃
--ignore-timeouts:忽略无响应
--ignore-security-exceptions:忽略安全许可
9、上面的指令在工作上存在一些问题
上面指令是有多快跑多快,跟我们真实情况有出入
如何才能接近人类操作
加入延迟指令
--throttle +毫秒
adb shell monkey -p 包名 -s seed --ignore-crashes --ignore-timeouts --ignore- security-exceptions --throttle -v 次数
10、上面的指令在工作上存在一些问题
上面的指令对所有的指令对所有类型的app,操作都是一样的,不同类型的app,操作占比
11、停止正在运行的monkey
1、直接关设备
2、指令停止
先进入linux命令
查找monkey的进程号
杀死monkey的进程号
12、影响app启动的时间
1、网络
2、设备配置低
3、加载视频、图片过大
4、服务器配置低
5、多人同时使用
13、app闪退/nullpointerexception(崩溃,crash)/无响应(anr)的原因
1、兼容性
2、cpu、内存满了
3、网络不稳定
4、缓存数据过多
5、设备过热发烫
14、android跟ios测试区别
1、android版本多,ios少
2、android手机品牌多,ios少
3、android系统可升可降,ios只升不降
4、android发布平台多审核不严,iOS发布平台少且审核严格
5、android的app在后台是真运行,ios的app在后台是休眠
15、沙盒/沙箱测试
实现技术
虚拟机
docker
16、app性能测试关注什么
app性能指标怎么来的
1、产品经理跟客户沟通
2、借助旧版本需求指标
3、参考竞品
17、app的四大组件
1、窗口activity
作用:提供可视化界面
2、服务service
作用:提供后台运行服务
3、广播接收者Broadcastreceiver
作用:监听数据的变化然后做出相应的改变,比如:手机电量低于20%,广播接收者监听到这个数据低于20%,做出电量图标更改为红色
4、内容提供者contentprovider
作用:给其他app提供访问的数据。比如:手机上的通讯录可以为多个app提供访问渠道
18、如何设置monkey运行8小时
说明:monkey不能设定时长
三、抓取app数据
查看端口是否被占用:netstat -ano | findstr 端口
四、弱网测试
1、为什么做弱网测试
查看app或网页在网络很差的情况下是否能正常工作
2、弱网测试实现
工具:fiddler,charles,Qnet