移动测试
一、兼容性测试
1、WEB
WEB:EDGE,Chrome,Firefox,苹果浏览器
移动互联网:UC浏览器,QQ浏览器
2、APP
①、操作系统:需要考虑APP在主流平台上的页面展示和样式的加载,目前考虑的主流平台主要是Android和IOS的平台
②、分辨率:不管是什么平台,都会存在不同的分辨率的展示,比如就拿苹果手机来说,它存在iphone7至到iphone14,当然这仅仅是IOS的平台,还需要考虑Android平台的兼容性的测试,主流的分辨率主要可以总结为如下部分:
android 800x480, 960x640,1280720(720p),1920*1080(1080p),25601440(2k)
在实际的企业里面,具体根据用户使用的手机来测试应用程序在不同分辨率下的展示情况,总之主流的核心手机分辨率都是需要来进行测试的。
如何测试:谷歌浏览器进入H5触屏版,右键检查,选择不同品牌的手机,以此来达到不同分辨率的测试
③、不同厂家:国内很多的厂商都对Android进行了二次改造,形成了各种不同的手机操作系统,其实本质上还是在Android的基础上进行二次的改造和开发,核心的东西还是属于Android,只不过在人家的基础上新增了一层自己的应用程序,这些不同主流的平台都需要来进行测试,核心主流的平台主要总结为如下: 小米 华为 vivo/opp 阿里云os
④、网络类型:移动互联网产品相比PC互联网产品,有一个特点是前者使用的网络比较多样,除了Wif之外,很多时候是在移动网络下使用的,移动网络遇到的情况又比较复杂,比如地铁、隧道、体育场等。所以网络不稳定的情况是比较容易发生的,很多情况下App的一些问题是在复杂的网络情况下才会暴露,与其让用户发现和投诉这些问题,不如我们在测试阶段尽量模拟这样的网络情况,及早发现和修复这些问题。 因为移动产品已经是非常普遍的,所以就需要测试一个APP在不同网络下资源的加载情况,这些不同的网络主要可以总结为如下的几点:
wifi
2G(2G基本已经使用的非常少了)
3G
4G
5G
需要将网络连接不上、无网络、企业服务器错误等各种情况予以考虑并进行细化的测试。建议:
• 网络不稳定,没有的到服务器的反馈-->提示“网络不稳定,请稍后再试”。
• 网络没有连接-->提示“网络目前没有连接,请重新连接网络之后再尝试”。
• 企业服务器或者第三方服务因未知原因出错-->提示“目前无法接收相关数据,我们正在调查,请稍后再试”
弱网络测试:选择不同网络情况,刷新查看他的加载时间。
3、Android环境搭建
①、先在系统环境变量中创建ANDROID_HOME,把下载的SDK目录放到变量值中
②、打开path环境变量,添加
%ANDROID_HOME%\platform-tools; %ANDROID_HOME%\tools;(分开添加)
③、打开控制台,输入Android
-h,如下图显示则为成功。
二、功能测试点
用户使用习惯
①、权限问题
②、硬件问题
比如双卡双待、摄像头、GPU等。
③、操作习惯
用户常用的有菜单键、Home键、返回键、Home键长按(显示当前进程列表)、调整音量、待机等。相应的作为测试工程师我们需要考虑的项就变成了:
• 应用中的Back键的事件是否重写了?在各个功能界面中点击Back键会有什么反馈?
• 用户在应用各个界面点击Home键之后,再次打开应用的反馈:应用是默认处于后台的状态还是有结束生命周期。
• 应用是否使用到菜单键,切不可遗漏这个按键和应用的交互。
• 应用在任何状态下,系统进入待机或者关机。当系统被重新唤醒后,应用处于什么状态,是否有正确的反馈。
• 应用进程被用户手动关闭之后,是否可以再次正确启动。
④、数据移动
用户会在软件没有响应或者出现重大缺陷时,点击强制停止按钮。或者在手机变卡后选择清空数据来是否自己机器的空间。
⑤、安装&卸载测试
A、用户安装方式主要有:
• 使用adb install <package name>进行安装;
• 使用第三方软件(比如豌豆荚、91助手等)安装;
• 将应用先下载到SD卡中再进行安装;
• 一部分数据量大的Android应用(一般是游戏)会采用小体积的应用安装,之后通过在线下载数据的方式使用。
B、应用安装之后,还要重点查看以下几点:
• 不联网的情况下是否能正常运行,会不会崩溃?
• 在线下载数据不完整,能否再次启动?
• 是否支持断点续传?
• 下载完整之后,再次启动。
• 安装成功后,检查版本号以及相关数据。
⑥、升级测试(热修复)
升级应用必要条件:旧版本应用和新版本应用拥有相同的签名、包名,有一个标示符(比如版本号)来区分。
A、4.6.1 增量升级 增量升级也叫做差分升级(Smart APP update)。
优点:用户不必再下载一个完整的Apk进行安装。
缺点:不需对发布的所有旧版本和最新版本做差分,很麻烦;如果一部分系统没有拿到内置应用的权限,那么就没有办法进行增量升级。
B、4.6.2 内置应用升级 注意每次升级之后的应用是否与内置在系统中的.os文件匹配,如不匹配则会直接导致应用崩溃。 升级测试场景还有很多,以后再做补充。应用升级并非仅仅检查新功能或做冒烟测试,更多的是去了解升级的原理,升级到底更改了哪些文件,而这些文件又影响力哪些功能和数据库,找到这些问题的答案才能有针对性的进行全面的测试。
⑦、发布:
android:开发打包(.apk)的文件,上传到应用商店(主流的应用商店),发布
IOS:
1、把自己手机的唯一序列号告诉开发
2、在自己的手机上安装testflight
3、开发把被测试的APP发布后,然后测试就可以在testflight中下载开发发布的被测试的app
三、稳定性测试
在保证基本功能正确基础之上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争产品的情况下很容易造成用户的流失。
稳定性测试的概念有2种,
①、稳定性测试,对应于异常性测试,即发生异常情况时,系统如何反应的测试。包含:
A、互性测试,被打扰的情况,如来电,短信,低电量等。这些其实在上章的功能测试中有提到。
B、异常性测试,断网,断电,服务器异常等情况
②、稳定性测试指的是性能测试,压力测试
A、 基准性能测试,通过压服务器端口及客户端在不同网络环境下响应速度
B、大数据测试,在特定环境下,客户端一次性更新大量数据及人员列表
四、性能测试
性能测试 普遍的apk性能测试,主要是以下七类
响应
内存
cpu
FPS (app使用的流畅度)
GPU过度渲染
耗电
耗流
五、abd命令
1、打开开发者选项
①、打开设置
②、搜索关于⼿机
③、在关于⼿机中点击7次
④、系统管理⾥⾯看到开发者选项
⑤、开启开发者选项和USB调试
⑥、控制台输入adb devices
2、abd命令
①、命令汇总
adb,即 Android Debug Bridge,它是 Android 开发/测试⼈员的强⼤⼯具。它是⼀种可以⽤来操作⼿机设备或模拟器的命令⾏⼯具。它存在于 sdk/platform-tools ⽬录下。虽然现在 Android Studio 已经将⼤部分 adb 命令以图形化的形式实现了。adb的命令汇总如下:
②、安装:
cd 进入到需要安装的apk目录,输入指令adb install xxx.apk 就会在手机上下载xxx软件(以微博为例)
A、网页下载微博apk至桌面
B、Cd desktop
C、Adb install weibo.apk
③、获取应用包名的两种方式:
A、adb shell am monitor
B、adb shell dumpsys window | findstr mCurrentFocus
C、获取所有的应用包:adb shell
再次输入pm list packages
④、删除:adb uninstall【应用包名】
⑤、查看日志
查看所有adb logcat
过滤查看日志 adb logcat | findstr [应用包名]
场景:假设测试的app出现了闪退以及崩溃还有卡死,那么这个时候就需要把错误的日志给开发。
以微博为例 adb logcat | findstr com.sina.weibo
⑥、查看分辨率adb shell wm size
⑦、adb shell cat /proc/cpuinfo # 显示设备的CPU信息
⑧、adb shell cat /proc/meminfo # 显示设备的内存使用情况
⑨、获取应用程序的PID的三种方式
A、adb shell top
B、adb shell ps | findstr pakcage(包名)
C、adb shell
logcat ps | grep com.taobao.taobao(包名)
⑩、杀掉进程
Adb shell
Kill -9 PID号
3、命令
①、
adb shell pm list packages # 显示设备里面所有应用的包名
adb shell service list # 显示当前运行的系统服务
②、
adb pull [android端文件名] [PC本地路径]
adb push [PC端文件名] [android 端路径]
4、更多命令
①、把测试过程中的日志文件写到记事本中 adb shell logcat -v time >log.txt
A、桌面建立一个.txt的文档
B、控制台进入桌面,输入指令adb shell logcat -v time >log.txt
后查看.txt文档,是否写入
②、APP专项测试
A、获取进程内存信息 adb shell dumpsys meminfo 进程ID
B、获取cpu消耗信息 adb shell top -n 1 | findstr 进程ID
C、获取电量信息 adb shell dumpsys battery
D、获取流量
先获取进程PID号(以微博为例 adb shell ps | findstr com.sina.weibo)
Adb shell cat proc/pid号/net/dev
六、常见的错误日志
空指针:nullpointException
数组越界:ArrayIndexoutof boundsException
多次启动线程:illegalThreadstateException
数字格式化问题 :java.lang.NumberFormatException
内存溢出:java.lang.OutOfMemoryError Crash > AndroidRuntime > Exception>Error 的顺序逐个搜索
七、面试题
(一)、web与APP测试的区别
1、APP兼容性测试(不同平台,不同分辨率,不同厂商)
2、弱网络以及不同网络情况下APP的资源加载和异常处理
3、安装以及卸载,和增量更新这部分
4、APP专项方面的测试,比如:占用电量、流量、CPU和内存的资源
5、需要测试APP的CRASH与ANG(崩溃、卡死、闪退)
(二)、APP出错怎么获取日志
答复:使用命令adb logcat | findstr package,打开日志查看控制台,再次测试APP,看是否会再次崩溃,如果崩溃,获取到它的详细的错误信息。
(三)、APP的稳定性测试你是怎么测试的?
答复:APP的稳定性从两个维度考虑
1、它作为客户端,能够很快速的从服务器获取数据,那么前提是服务端是稳定性的
2、客户端本身的稳定性,比如不会出现崩溃、卡死、闪退,以及其他异常的信息,还有他的流畅度
那么使用monkey的测试工具来针对APP做各种随机性的操作,来验证是否会出现CRASH和ANG的情况
八、Monkey应用
monkey启动
monkey启动⽅式相对⽽⾔是⾮常简单的,⼿机连接到电脑上,就可以开始启动操作。启动的命令是:
1、adb shell monkey
2、删除monkey
查询monkey的pid
adb shell ps | grep monkey
adb shell kill pid
简单的monkey命令
adb shell monkey -v 10 ---->10条随机事件
标签:shell,应用,APP,学习,adb,测试,Android,移动 From: https://www.cnblogs.com/L2119/p/16644091.html