• 移动APP测试基础分享


    1、安装卸载

    1)安装:安装需考虑测试机的系统版本  

    ●安装涉及到的版本兼容:      安卓: 4.0版本  6.0版本  7.0版本  ios:8.0版本   10.0版本  11.0版本 

    ●软件安装后是否可以正常运行,安装后的文件夹及文件是否可以写到指定的目录里。 

    ●安装过程中是否可以取消 

    ●安装空间不足时是否有相应提示  

    ●如果应用需要通过网络验证之类的安装,需要测试一下断网情况下是否有相应提示

    2)卸载:测试卸载后文件是否全部删除所有的安装文件夹,卸载过程中出现死机,断电,重启等意外的情况,待环境恢复后是否可以正确卸载,卸载是否支持取消功能,单击取消后软件卸载情况是否正常

    2、版本更新

    更新设置 后台/ZK配置

    1)强制更新   不更新无法做其他操作

    2)非强制更新  其他更新入口:如设置,个人中心

    3)更新规则  :根据产品需求

    4)点击【立即更新】后页面跳转

    5)弱网更新

    6)更新下载进度条

    7)杀进程后,重新打开app查看是否提示更新弹框

    8)更新过程中暂停,再继续下载更新,能够正常安装,启动

    9)在线更新

    3、适配

    1)手机不同分辨率支持

    2)手机不同厂家系统的支持:不同厂家会有不同android系统,例如:小米,华为,vivo等主流手机的支持

    3)手机不同尺寸的支持:3.5到5.0屏幕在UI显示有区别,要支持最大到最小

           

    4、登录

    1)token失效:重新登录后,页面展示  ;token失效后,更换账号登录,是否出现数据错误模拟token失效 可借助Charles工具,但前提需要开发打接口响应时间较长的安装包

    2)app杀进程重新进

    5、app权限设置

    一般启动app是需考虑app各项权限的使用,例如:相机,通话,声音,通讯录,地理位置,获取imei等权限,将相机权限关闭后,app能够正常启动,启动调用相机时,是否能正常弹框提示

    6、交叉事件测试【中断测试】

    1)操作软件时,来电话、短信、电量不足提示等外部事件

    2)软件运行时,由前台切换到后台,再切回前台后,应仍可正常运行使用。 

    3)杀进程后重启APP,自动登录用户登录信息;

    4)多个应用切换,不会出现异常;

    7、操作类型测试

    横屏测试,手势测试,home键,音量键,power键等。

    8、网络测试

    1)断网——重连:断网后提示网络连接不可用,网络恢复后页面正常;

    2)网络切换:wifi——4G:不会出现异常;

    3)弱网测试–通过代理的方式模拟弱网环境进行测试(fiddler可以设置延迟):接口响应时间超过10S,APP端则按超时处理;

    4)热点模拟:连接手机共享热点或者FaceBook开源的ATC(可使用树莓派来搭建  ACT环境)

    9、刷新测试

         下拉刷新

    10、翻页测试

         上拉加载下一页

    11、分享测试

    1)一次分享(在APP内点分享按钮进行分享);

    2)二次(多次)分享(从APP分享给微信/QQ好友后,微信好友打开链接后分享给其他人),要注意链接中的用户信息是否正确;

    3)在浏览器中打开分享链接;

    12、弹窗测试 

    1)首页弹窗;

    2)完成某项操作后弹窗;

    3)App更新弹窗;

    4)一个页面多种弹窗;

    13、Push测试

    ①检查push消息是否按照指定的业务规则发送 ;


    ②检查不接受推送消息时,检查用户不会再接收到push;


    ③如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到PUSH。在非免打扰时间段,用户能正常收到push;


    ④当push消息是针对登录用户的时候,需要检查收到的push与用户身份是否相符,没有错误地将其它人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。 


    ⑤安卓用户,应用在前台/后台都能收到push。IOS用户,只有应用在后台时才能收到push,应用在在前台收不到push(开发也可以代码实现应用在前台也可以接收push);

    14、异常测试

    ①APP运行过程中断网;
    ②APP运行过程中断电;
    ③APP在内存不足的手机上运行;
    ④清空数据或强制退出后,APP能否正常运行;
    ⑤长时间开机且开app,看是否会出现异常情况;

       

    ==============================================================

    工具使用,性能及稳定性测试介绍:

    1、app抓包工具  Charles&Fiddler

    可实现Android和IOS侧网络抓包、拦截请求并重定向资源等功能。

    抓包前,需要对测试机配置代理,具体操作步骤如下:

    https://jingyan.baidu.com/article/03b2f78c7b6bb05ea237aed2.htm

    1).win+R调出命令弹窗->cmd→ipconfig查找本地ip地址

    2).打开fiddler->Tools -> Fiddler Options ->Connections下勾选“Allow romote computers to connect”

    3).进入手机设置页面,找到手机连接的WiFi,进行如下设置:

    服务器为电脑本机的ip,端口为fiddler请求的默认端口号8888

    如此,即可进行fiddler抓包测试啦!!!!!

     

    2、app性能测试常见指标:

    1)、内存

    2)、CPU

    3)、流量

    4)、电量

    5)、启动速度

    6)、滑动速度、界面切换速度

    7)、与服务器交互的网络速度

    Android性能测试分为两类:

    1、一类为rom版本(系统)的性能测试 

    2、一类为应用app的性能测试 
    ①Android的app性能测试包括的测试项比如: 

    a.资源消耗 

    b.内存泄露 

    c.电量功耗 

    d.耗时 

    e.网络流量消耗 

    f.移动终端相关资源利用率 

    g.帧率 

    h.渲染等等....

    ②工具:GT、Emmagee、itest等(工具的原理都是基于调用android底层的一些api来获取到测试所用到的值)

    ③测试方法: 

    a.设计场景 :手工或自动化场景; 

    b.获取数据:可获取的数据包括:内存、cpu、电量功耗、hprof(内存泄露分析文件)、响应时间等等。。。。配合手工或自动化场景来获取

    数据(最好多取几次而且每次配合不同的设备看平均值)作为最后的对比分析;

    c.结果分析 :拿到数据后分析哪些模块的数据异常再去Check code定位问题的原因。

    ④Android系统的几种场景状态:

    a.空闲状态: 指打开应用后,点击home键让应用后台运行,此时应用处于的状态叫做空闲;

    b.中等规格和满规格状态:中等规格和满规格指的是对应用的操作时间的间隔长短不一,中等规格时间较长,满规格时间较短。

    3、app稳定性测试

    ①安卓APP的稳定性常常使用monkey命令进行测试,通过随机事件流模拟人的操作,对检查程序的内存溢出、空指针有很大的作用。


    ②Monkey主要用来检测系统ANR及Crash等问题。
    ANR的全称是application not responding,根据它的意思我们就能看出来是应用程序未响应,就像是我们在电脑上碰到的 程序未响应,一般电脑出现这种情况,可能是由于我们打开了很多应用程序,占用了大量的内存,或者CPU时间片被一个应用 程序长时间占用,不够分配,导致部分应用程序出现了无响应。
    下图就是我们见到的APP无响应的时候出现的对话框,产生ANR的原因很多,但是只有在Activty中的ANR才会弹出对话框, 对话框有两个选项,一个是等待,一个是关闭程序供用户选择:

     

    ANR产生的条件:
    1、只有主线程才会产生ANR,主线程就是UI线程;
    2、必须发生某些输入事件或特定操作,比如按键或触屏等输入事件,在BroadcastReceiver或Service的各个生命周期调用函数;
    3、上述事件响应超时,不同的context规定的上限时间不同


    ANR产生的环境:
    1、5秒内无法对输入事件(按键及触摸)做出响应
    2、广播接收器无法在10秒内结束运行
    具备了以上三个条件,那么加上这两个环境,就会产生ANR了。
    ————————————————
    版权声明:本文为CSDN博主「weixin_41754309」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_41754309/java/article/details/87724307

  • 相关阅读:
    JS中!=、==、!==、===的用法和区别
    Jquery判断Checkbox是否选中三种方法
    C# 信号量 学习
    redis学习资料
    Redis常用命令
    MySQL、HBase、ES的对比
    我对依赖注入,控制反转的理解
    net输出错误日志
    XmlExtensions帮助类
    DatetimeHelper类的编写
  • 原文地址:https://www.cnblogs.com/meiniu/p/12643714.html
Copyright © 2020-2023  润新知