首页 > 其他分享 >移动测试Ⅱ

移动测试Ⅱ

时间:2022-08-31 18:14:26浏览次数:36  
标签:shell 测试 APP adb 应用 日志 移动

功能测试点

用户使用习惯

权限问题

硬件问题

比如双卡双待、摄像头、GPU等。

操作习惯

用户常用的有菜单键、Home键、返回键、Home键长按(显示当前进程列表)、调整音量、待机等。相应的作为测试工程师我们需要考虑的项就变成了:

• 应用中的Back键的事件是否重写了?在各个功能界面中点击Back键会有什么反馈?

• 用户在应用各个界面点击Home键之后,再次打开应用的反馈:应用是默认处于后台的状态还是有结束生命周期。

• 应用是否使用到菜单键,切不可遗漏这个按键和应用的交互。

• 应用在任何状态下,系统进入待机或者关机。当系统被重新唤醒后,应用处于什么状态,是否有正确的反馈。

• 应用进程被用户手动关闭之后,是否可以再次正确启动。

 

数据移动

       用户会在软件没有响应或者出现重大缺陷时,点击强制停止按钮。或者在手机变卡后选择清空数据来是否自己机器的空间。

安装&卸载测试

用户安装方式主要有:

• 使用adb install <package name>进行安装;

• 使用第三方软件(比如豌豆荚、91助手等)安装;

• 将应用先下载到SD卡中再进行安装;

• 一部分数据量大的Android应用(一般是游戏)会采用小体积的应用安装,之后通过在线下载数据的方式使用。

 

 

应用安装之后,还要重点查看以下几点:

• 不联网的情况下是否能正常运行,会不会崩溃?

• 在线下载数据不完整,能否再次启动?

• 是否支持断点续传?

• 下载完整之后,再次启动。

• 安装成功后,检查版本号以及相关数据。

升级测试

升级应用必要条件:旧版本应用和新版本应用拥有相同的签名、包名,有一个标示符(比如版本号)来区分。

4.6.1 增量升级

增量升级也叫做差分升级(Smart APP update)。

优点:用户不必再下载一个完整的Apk进行安装。

缺点:不需对发布的所有旧版本和最新版本做差分,很麻烦;如果一部分系统没有拿到内置应用的权限,那么就没有办法进行增量升级。

4.6.2 内置应用升级

注意每次升级之后的应用是否与内置在系统中的.os文件匹配,如不匹配则会直接导致应用崩溃。

升级测试场景还有很多,以后再做补充。应用升级并非仅仅检查新功能或做冒烟测试,更多的是去了解升级的原理,升级到底更改了哪些文件,而这些文件又影响力哪些功能和数据库,找到这些问题的答案才能有针对性的进行全面的测试。

 

发布:

android:开发打包(.apk)的文件,上传到应用商店(主流的应用商店),发布

IOS:

1、把自己手机的唯一序列号告诉开发

2、在自己的手机上安装testflight

3、开发把被测试的APP发布后,然后测试就可以在testflight中下载开发发布的被测试的app

 

稳定性测试

在保证基本功能正确基础之上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争产品的情况下很容易造成用户的流失。

稳定性测试的概念有2种,

一, 稳定性测试,对应于异常性测试,即发生异常情况时,系统如何反应的测试。包含:

  1 交互性测试,被打扰的情况,如来电,短信,低电量等。这些其实在上章的功能测试中有提到。

  2 异常性测试,断网,断电,服务器异常等情况

 

二,稳定性测试指的是性能测试,压力测试

  1 基准性能测试,通过压服务器端口及客户端在不同网络环境下响应速度

2 大数据测试,在特定环境下,客户端一次性更新大量数据及人员列表

 

性能测试

普遍的apk性能测试,主要是以下七类

1、响应

2、内存

3、cpu

4、FPS (app使用的流畅度)

5、GPU过度渲染

6、耗电

7、耗流

 

adb命令

adb,即 Android Debug Bridge,它是 Android 开发/测试人员的强大工具。它是一种可以用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下。虽然现在 Android Studio 已经将大部分 adb 命令以图形化的形式实现了。adb的命令汇总如下:

 

在手机的开发者选项中打开usb调试,然后再到cmd中输入adb devices,显示如下表示连接成功

 

 

 

 

先在电脑上下载好安装包,再进入安装包路径,再使用adb install weibo.apk的命令进行安装,success表示安装成功,在手机上也可以看到这个软件

 

 

 

 

获取包名

①adb shell am monitor

运行命令adb shell am monitor后再打开软件进行操作,如com.sina.weiboi就是微博的包名

 

 

 

②adb shell dumpsys window | findstr mCurrentFocus

打开软件,输入命令adb shell dumpsys window | findstr mCurrentFocus

 

 

 

adb shell

查看所有包名 输入adb shell后再输入pm list packages

 

 

 

 

adb install [APK路径]:

adb install -r [APK路径]:

adb uninstall [应用包名]:

 

常用错误日志信息

空指针:nullpointException

数组越界:ArrayIndexoutof boundsException

多次启动线程:illegalThreadstateException

数字格式化问题 :java.lang.NumberFormatException

内存溢出:java.lang.OutOfMemoryError

Crash > AndroidRuntime > Exception>Error 的顺序逐个搜索。

 

查看日志:

场景:假设测试的app出现了闪退以及崩溃还有卡死,那么这个时候需要把错误的日志给开发

adb logcat

过滤日志

adb logcat | findstr com.sina.weibo

 

如果在测试的过程中app出现崩溃,你又没有查看日志,该怎么做

需要在测试一次,并记录好app崩溃前的日志,将日志给开发

 

adb shell wm size # 查看屏幕分辨率

 

 

 

 

adb shell cat /proc/cpuinfo # 显示设备的CPU信息

 

 

 

 

adb shell cat /proc/meminfo # 显示设备的内存使用情况

 

 

 

 

获取应用程序的pid

adb shell

logcat ps | grep com.sina.weibo包名)

 

 

 

adb shell top

 

 

 

adb shell ps | findstr  package

 

 

 

 

adb root # 切换到 root 用户

adb shell pm list packages # 显示设备里面所有应用的包名

adb shell service list # 显示当前运行的系统服务

 

adb pull [android端文件名] [PC本地路径]

adb push [PC端文件名] [android 端路径]

 

 

 

 

 

 

 

把测试过程中的日志文件写到记事本中

adb shell logcat -v time >log.txt

APP专项测试

获取内存信息

adb shell dumpsys meminfo 进程ID

 

 

 

获取cpu消耗信息

adb shell top -n 1 | findstr  进程ID

 

 

 

获取电量信息

adb shell dumpsys  battery

 

 

 

 

获取GPU信息

adb shell dumpsys gfxinfo 进程ID

 

 

 

 

怎么获取uid:

adb shell ps | grep <被测试程序包名>--》获取进程ID

//adb shell cat /proc/&pid/status

 

 

 

获取流量信息

adb shell cat /proc/pid/net/dev

 

 

 

 

monkey启动

      monkey启动方式相对而言是非常简单的,手机连接到电脑上,就可以开始启动操作。启动的命令是:

adb shell monkey

查询monkey的pid,获取应用程序的pid

adb shell ps | grep monkey

adb shell kill  pid

adb shell monkey -v 100 ---->10条随机事件

 

web与app测试的区别:

1、APP兼容性测试(不同平台,不同分辨率,不同厂商)

2、弱网络以及不同网络情况下APP的资源加载和异常处理

3、安装以及卸载,和增量更新这部分

4、APP专项方面的测试,比如:占用电量,流量,CPU和内存的资源

5、需要测试APP的CRASH与ANR(崩溃,卡死,闪退)

 

APP出错怎么获取错误日志?

答复:使用命令adb logcat | findstr package ,打开日志查看的控制台,再次测试APP,看是否会再次崩溃,如果崩溃,获取到它详细的错误信息。

 

APP的稳定性测试你是怎么测试的?

答复:APP的稳定性从两个维度考虑:

1、它作为客户端,能够很快速的从服务端获取数据,那么前提是服务端是稳定性的

2、客户端本身的稳定性,比如不会出现崩溃,卡死,闪退,以及其他异常的信息,还有它的流畅度

那么使用monkey的测试工具来针对APP做各种随机性的操作,来验证是否会出现CRASH和ANR的情况

功能测试点

用户使用习惯

权限问题

硬件问题

比如双卡双待、摄像头、GPU等。

操作习惯

用户常用的有菜单键、Home键、返回键、Home键长按(显示当前进程列表)、调整音量、待机等。相应的作为测试工程师我们需要考虑的项就变成了:

•应用中的Back键的事件是否重写了?在各个功能界面中点击Back键会有什么反馈?

•用户在应用各个界面点击Home键之后,再次打开应用的反馈:应用是默认处于后台的状态还是有结束生命周期。

•应用是否使用到菜单键,切不可遗漏这个按键和应用的交互。

•应用在任何状态下,系统进入待机或者关机。当系统被重新唤醒后,应用处于什么状态,是否有正确的反馈。

•应用进程被用户手动关闭之后,是否可以再次正确启动。

 

数据移动

       用户会在软件没有响应或者出现重大缺陷时,点击强制停止按钮。或者在手机变卡后选择清空数据来是否自己机器的空间。

安装&卸载测试

用户安装方式主要有:

•使用adb install <package name>进行安装;

•使用第三方软件(比如豌豆荚、91助手等)安装;

•将应用先下载到SD卡中再进行安装;

•一部分数据量大的Android应用(一般是游戏)会采用小体积的应用安装,之后通过在线下载数据的方式使用。

 

 

应用安装之后,还要重点查看以下几点:

•不联网的情况下是否能正常运行,会不会崩溃?

•在线下载数据不完整,能否再次启动?

•是否支持断点续传?

•下载完整之后,再次启动。

•安装成功后,检查版本号以及相关数据。

升级测试

升级应用必要条件:旧版本应用和新版本应用拥有相同的签名、包名,有一个标示符(比如版本号)来区分。

4.6.1 增量升级

增量升级也叫做差分升级(Smart APP update)。

优点:用户不必再下载一个完整的Apk进行安装。

缺点:不需对发布的所有旧版本和最新版本做差分,很麻烦;如果一部分系统没有拿到内置应用的权限,那么就没有办法进行增量升级。

4.6.2 内置应用升级

注意每次升级之后的应用是否与内置在系统中的.os文件匹配,如不匹配则会直接导致应用崩溃。

升级测试场景还有很多,以后再做补充。应用升级并非仅仅检查新功能或做冒烟测试,更多的是去了解升级的原理,升级到底更改了哪些文件,而这些文件又影响力哪些功能和数据库,找到这些问题的答案才能有针对性的进行全面的测试。

 

发布:

android:开发打包(.apk)的文件,上传到应用商店(主流的应用商店),发布

IOS:

1、把自己手机的唯一序列号告诉开发

2、在自己的手机上安装testflight

3、开发把被测试的APP发布后,然后测试就可以在testflight中下载开发发布的被测试的app

 

稳定性测试

在保证基本功能正确基础之上,App的稳定性就显得非常重要,如果一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争产品的情况下很容易造成用户的流失。

稳定性测试的概念有2种,

一, 稳定性测试,对应于异常性测试,即发生异常情况时,系统如何反应的测试。包含:

  1 交互性测试,被打扰的情况,如来电,短信,低电量等。这些其实在上章的功能测试中有提到。

  2 异常性测试,断网,断电,服务器异常等情况

 

二,稳定性测试指的是性能测试,压力测试

  1 基准性能测试,通过压服务器端口及客户端在不同网络环境下响应速度

2 大数据测试,在特定环境下,客户端一次性更新大量数据及人员列表

 

性能测试

普遍的apk性能测试,主要是以下七类

1、响应

2、内存

3、cpu

4、FPS (app使用的流畅度)

5、GPU过度渲染

6、耗电

7、耗流

 

adb命令

adb,即 Android Debug Bridge,它是 Android 开发/测试人员的强大工具。它是一种可以用来操作手机设备或模拟器的命令行工具。它存在于 sdk/platform-tools 目录下。虽然现在 Android Studio 已经将大部分 adb 命令以图形化的形式实现了。adb的命令汇总如下:

 

 

在手机的开发者选项中打开usb调试,然后再到cmd中输入adb devices,显示如下表示连接成功

 

 

先在电脑上下载好安装包,再进入安装包路径,再使用adb install weibo.apk的命令进行安装,success表示安装成功,在手机上也可以看到这个软件

 

 

获取包名

①adb shell am monitor

运行命令adb shell am monitor后再打开软件进行操作,如com.sina.weiboi就是微博的包名

 

②adb shell dumpsys window | findstr mCurrentFocus

打开软件,输入命令adb shell dumpsys window | findstr mCurrentFocus

 

adb shell

查看所有包名 输入adb shell后再输入pm list packages

 

 

adb install [APK路径]:

adb install -r [APK路径]:

adb uninstall [应用包名]:

 

常用错误日志信息

空指针:nullpointException

数组越界:ArrayIndexoutof boundsException

多次启动线程:illegalThreadstateException

数字格式化问题 :java.lang.NumberFormatException

内存溢出:java.lang.OutOfMemoryError

Crash > AndroidRuntime > Exception>Error 的顺序逐个搜索。

 

查看日志:

场景:假设测试的app出现了闪退以及崩溃还有卡死,那么这个时候需要把错误的日志给开发

adb logcat

过滤日志

adb logcat | findstr com.sina.weibo

 

如果在测试的过程中app出现崩溃,你又没有查看日志,该怎么做

需要在测试一次,并记录好app崩溃前的日志,将日志给开发

 

adb shell wm size # 查看屏幕分辨率

 

 

adb shell cat /proc/cpuinfo # 显示设备的CPU信息

 

 

adb shell cat /proc/meminfo # 显示设备的内存使用情况

 

 

获取应用程序的pid

adb shell

logcat ps | grep com.sina.weibo包名)

 

adb shell top

 

adb shell ps | findstr  package

 

 

adb root # 切换到 root 用户

adb shell pm list packages # 显示设备里面所有应用的包名

adb shell service list # 显示当前运行的系统服务

 

adb pull [android端文件名] [PC本地路径]

adb push [PC端文件名] [android 端路径]

 

 

 

把测试过程中的日志文件写到记事本中

adb shell logcat -v time >log.txt

APP专项测试

获取内存信息

adb shell dumpsys meminfo 进程ID

 

获取cpu消耗信息

adb shell top -n 1 | findstr  进程ID

 

获取电量信息

adb shell dumpsys  battery

 

 

获取GPU信息

adb shell dumpsys gfxinfo 进程ID

 

 

怎么获取uid:

adb shell ps | grep <被测试程序包名>--》获取进程ID

///adb shell cat /proc/&pid/status

 

 

获取流量信息

///adb shell cat/proc/uid-stat/<uid>/tcp_rcv

adb shell cat /proc/pid/net/dev

 

 

monkey启动

      monkey启动方式相对而言是非常简单的,手机连接到电脑上,就可以开始启动操作。启动的命令是:

adb shell monkey

查询monkey的pid,获取应用程序的pid

adb shell ps | grep monkey

adb shell kill  pid

adb shell monkey -v 100 ---->10条随机事件

 

web与app测试的区别:

1、APP兼容性测试(不同平台,不同分辨率,不同厂商)

2、弱网络以及不同网络情况下APP的资源加载和异常处理

3、安装以及卸载,和增量更新这部分

4、APP专项方面的测试,比如:占用电量,流量,CPU和内存的资源

5、需要测试APP的CRASH与ANR(崩溃,卡死,闪退)

 

APP出错怎么获取错误日志?

答复:使用命令adb logcat | findstr package ,打开日志查看的控制台,再次测试APP,看是否会再次崩溃,如果崩溃,获取到它详细的错误信息。

 

APP的稳定性测试你是怎么测试的?

答复:APP的稳定性从两个维度考虑:

1、它作为客户端,能够很快速的从服务端获取数据,那么前提是服务端是稳定性的

2、客户端本身的稳定性,比如不会出现崩溃,卡死,闪退,以及其他异常的信息,还有它的流畅度

那么使用monkey的测试工具来针对APP做各种随机性的操作,来验证是否会出现CRASH和ANR的情况

标签:shell,测试,APP,adb,应用,日志,移动
From: https://www.cnblogs.com/yinxiaowen/p/16644057.html

相关文章

  • 移动测试
    移动APP测试首先搭建android-sdk环境1.搭建安卓环境,首先确保java环境ok。2.下载androidsdk文件后,解压androidsdk,进入到文件里面,可以看到如下的截图:   3.打......
  • 专项测试实战 | 如何测试 App 流畅度(基于 FPS 和丢帧率)?
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取FPS和丢帧率可以在一定程度上作为APP流畅度的一项衡量标准,本文介绍利用adbshelldumpsys......
  • 一文搞懂测试左移和测试右移的 Why-How-What
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取软件测试技术应当贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动......
  • 4.Docker部署java项目测试
    FROMopenjdk:8u332-jdk-oraclelinux7WORKDIR/home/appEXPOSE8081COPYskywalking-agent//home/app/COPY*.jar/home/app/ENTRYPOINT["java","-javaagent","/ho......
  • iOS 自动化测试踩坑(一): 技术方案、环境配置与落地实践
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取移动端的自动化测试,最常见的是Android自动化测试,我个人觉得Android的测试优先级会更高,也......
  • iOS自动化真机测试验证环境过程中常见问题解析
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取本章节主要讲解iOS自动化真机配置以及在iOS真机执行自动化时常见问题与解决方法。真机使......
  • 极狐gitlab数据手动导出导入测试
    极狐gitlab数据手动导出导入测试本文主要测试从源极狐gitlab实例手动迁移数据到目标极狐gitlab实例的可行性。1.源极狐gitlab实例版本:极狐gitlabv14.10.01.1用户信......
  • 移动自动化测试(二)
    功能测试点用户使用习惯权限问题硬件问题比如双卡双待、摄像头、GPU等。操作习惯用户常用的有菜单键、Home键、返回键、Home键长按(显示当前进程列表)、调整音量、待机......
  • app自动化测试(iOS)元素定位(新手篇)
    ⬇️点击“下方链接”,提升测试核心竞争力!>>更多技术文章分享和免费资料领取除了通用定位方式外,iOS还有其他特殊的定位方式,本章节仅介绍iOS特有定位。PredicateString......
  • 软件测试基础第一章
    测试基础问题篇第一章什么是测试?1.软件测试(SoftwareTesting),其经典定义或是标准定义:在规定的条件下对程序进行操作,以发现程序错误。2.通俗来讲,就是通过“人工”或“自......