App测试大纲:全网最全核心知识点解析,一篇全部搞定!(入门)

1.APP测试技术

1.1 App测试概述与流程

1.1.1 什么是APP测试?

APP测试是对手机上的软件APP进行测试并发现软件缺陷,保证并提高软件质量的一个过程。

手机是具有多种网络不同系统不同分辨下的环境的特点,所以会涉及到硬件测试软件测试结构测试

  • 软件测试(应用)
  • 硬件测试(平台)
  • 嵌入式测试(软件+硬件)

1.1.2 相关的基础知识

  • 常见的移动端操作系统

    • Android安卓
    • Harmony鸿蒙
    • iOS 苹果
  • 手机分辨率:由于屏幕上的点、线和面都是有像素组成的,显示器可显示的像素越多,画面就越精细,同样的 屏幕区域内能显示的信息也就越多,所以分辨率是个非常重要的性能指标之一

  • 像素:像素是指由图像的小方格组成的,这些小方格都有一个明确的位置和被分配的色彩数 值,小方格颜色和位置就决定该图像所呈现出来的样子

  • 网络制式:手机网络制式主要包括GSM/CDMA/3G/4G/5G

  • RAM:运行内存 -4G /8G/16G等

  • ROM:存储内存 -64G /128G/521G

  • ROOT:获取root权限,最高的权限

  • APP/APK:软件应用程序包

  • Android sdk:software development kit,安卓软件开发工具包和运行模拟器

1.1.3 App测试流程

与传统的测试流程一致:需求分析—>测试计划—>测试设计—>测试执行—>测试评估(报告)

1.2 App测试

App测试可以分为、功能测试、专项测试、安全测试、性能测试

1.2.1 功能业务测试

  • 业务逻辑测试:主要测试客户端业务能否正常使用
  • 功能点测试:主要测试客户端功能点能否正常使用
  • 关联性测试:主要测试移动端与PC端的交互,移动端处理完后,PC端与移动端数据是否一致

1.2.2 UI测试

  • 界面:菜单、对话框、窗口、其他空间是否满足用户需求
  • 页面内容:文字、图片等是否美观
  • 操作:操作流程是否流程

1.2.3 适配测试(兼容性测试)

  • 不同手机屏幕分辨率的兼容性
  • 不同操作系统的兼容性性
    • 手机系统的不同
    • 相同系统下的不同版本
  • 不同手机品牌(厂家)的兼容性
  • 不同手机尺寸的兼容性

技巧如何获取各种型号的配置的手机?

  • 自行购买或借用设备来实施
  • 第三方云测试平台解决:testin,腾讯优测,贯众云测试,百度MTC,阿里MQC
  • 借助模拟器来实施-免费

1.2.4 异常测试

在异常的情况下,客户端是否可以正确的处理异常(异常处理机制)

  • 断网
  • 断电
  • 服务器异常

1.2.5 交互异常测试(干扰测试)

  • 如玩游戏是来电,看视频(可以微信聊天)是来电来信息等是否会有影响
  • 还要注意硬件的交互,如通话中插拔数据线、插拔耳机等是否会有影响
  • 如果设备被占用情况也需要做考虑

1.2.6 安装、卸载测试、升级测试

  • 安装、卸载测试:主要针对编译后源程序生成的APK文件进行的测试。
    • 生成APK文件在真机上能否进行安装、卸载?
    • Android手机端的通用安装工具,如:手机助手等功能能够进行安装、卸载?
  • 升级测试:当新版版发布后,要配合不同网络环境中自动更新提示以及下载、安装、更新、启动、运行的 验证测试。
    • 保证数字签名一致,升级前后的应用数字签名要一致
    • 保证升级后应用可以正常使用
    • 在线跨版本升级是否正常(1.0 2.0 忽略 3.0 )
    • 升级安装意外情况的测试(如死机、断电、重启)
    • 升级界面的UI测试
    • 不同版本间的升级测试

1.2.7 安全测试

​ 安全测试主要检测App的用户授权级别数据泄露非法授权访问有效性校验认证敏感收据存储数据加密等方面进行检测,来发现APP潜在的安全性问题。

  • 扣费风险:包括发送短信、拨打电话、连接网络等
  • 隐私泄露风险:包括访问手机信息、访问联系人信息等
  • 对App的输入有效性校验、认证、授权、敏感数据存储、数据加密等方面进行检测
  • 限制/允许使用手机功能接人互联网
  • 限制/允许使用手机发送接受信息功能
  • 限制/允许应用程序来注册自动启动应用程序
  • 限制或使用本地连接
  • 限制/允许使用手机拍照或录音
  • 限制/允许使用手机读取用户数据
  • 限制/允许使用手机写人用户数据
  • 检测App的用户授权级别、数据泄漏、非法授权访问

1.2.8 性能测试

​ 性能测试主要包括:极限测试响应能力测试压力测试稳定性测试

  • 性能测试的关注点:CPU、内存、流量、电流,以及不同网络下的响应速度
  • 极限测试:在各种边界压力情况下,如电池、存储、网速(弱网测试)等,验证App是否能正确响 应。
    • 内存满时安装App
    • 运行App时手机断电
    • 运行App时断掉网络
  • 效率测试:测试App中的各类操作是否满足用户响应时间要求
  • 压力测试:反复/长期操作下、系统资源是否占用异常。
    • App反复进行安装卸载,查看系统资源是否正常
    • 其他功能反复进行操作,查看系统资源是否正常
  • 稳定性测试:软件长时间的持续运行,系统版本是否稳定,是否能否持续的为用户提供服务
    • 指标:
      • 异常的次数:同类型软件的数据、前一次数据来进行参考
      • 异常的频率
    • App的稳定性测试如何实施?
      • 首选Monkey - 重点
      • Monkey是向系统发送随机的用户事件流(如按键输入、触摸屏输入和手势输入等),实现对正 在开发的应用程序进行稳定性测试。可以更好的模拟用户操作,确保App的稳定性。

2.ADB命令操作

2.1 什么是ADB?

​ ADB全称为Android Debug Bridge,是Android SDK(安卓的开发工具)中的一个工具,起到调试桥的作 用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑服务端是Android设备

  • 可以直接操作管理Android模拟器或者真实的Android设备(真机)

2.2 三个组件

  • 客户端:用于发送命令。客户端在开发计算机上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

2.3 ADB的功能

  • 运行设备的shell(命令行)
  • 管理模拟器或设备的端口映射
  • 计算机和设备之间上传/下载文件
  • 可以对设备的应用进行卸载安装等

3.环境部署

3.1 安装步骤

  1. 安装JDK环境
  2. 安装SDK环境
  3. 连接真机或模拟器执行命令

3.2 安装JDK

3.3 安装SDK 环境

3.4 连接时的配置

3.4.1 连接模拟器

  1. 打开模拟器

  2. 打开模拟器的usb调试;

    • 进入设置→开发者选项→ 打开usb调试
    • 注意:如果没有开发者模式,在设置→关于手机/平板电脑→ 连续点击版本号(直到提示你已经处于开发者模式
  3. 输入指令查看连接设备

    # 查看设备是否连接
    adb devices
    
    • 【手机设备】:显示设备的序列号,例如:8DJBRKIBKJ9DH6AM
    • 【模拟器】:显示IP地址和端口,例如:127.0.0.1:62001
    • 【状态】:
      • device: 已识别的设备,连接成功
      • unauthorized:没有授权,需要手机上授权后才能连接
        • 解决方法:手机上会弹出一个授权框,进行授权即可
      • unkown : 未识别的设备
        • 解决方法:电脑上没有手动的驱动,安装一个手机助手(豌豆荚等) 自动安装驱动
      • offline:离线设备
        • 解决方法:重新插拔usb

3.4.2 连接的常见问题

  • 两端上的ADB版本不一致

    • 报错:adb server version(36) doesn`t match this client(40); killing…

    • 原因:手机模拟器的ADB(版本是36) 和Android SDK 中的ADB(版本是40) 版本不一致,会报错

    • 解决

      • 将你安装的AndroidSDK目录下的platform-tools\adb.exe 拷贝到桌面

      • 查看你模拟器上的安装目录下的adb.exe 文件,如果相同拷贝到是否与AndroidSDK是否一致,如果不一致,修改为与模拟器上的名字相同。

      • 运行模拟器上的adb.exe 程序 查看其版本。

        # 进入命令行,切换为模拟器的adb.exe程序的所在路径,切换。
        adb --version 
        
      • 重启模拟器

      • 注意:如果还是连接不上,则将模拟器中上adb开头的三个文件删除,重启模拟器。

        • adb.exe
        • AdbWinApi.dll
        • AdbWinUsbApi.dll

4. ADB命令

4.1 基础指令

adb version:用来显示adb版本信息

adb help:帮助信息,查看adb所支持的所有命

adb start/kill-server:启动/关闭adb服务

adb devices:用来查看当前连接的设备,已连接的设备会显示出来

adb -s 设备名:如果有显示多个连接设备,只要操作其中一个,则用该命令 的方式来执行

adb -s 192.168.10.101:5555 shell

4.2 权限指令

  • adb root:获取Android管理员(root用户)的权限

  • adb shell:登录设备shell,这个命令将登录设备的shell(内核),登录shell后可以使用cd、ls、rm等 linux命令

    • /system/app: 文件夹下的程序为系统默认的组件,即不可删除的 apk。

    • /system/priv-app : 文件夹下的程序为系统默认的组件,权限比/system/app 要高。

    • /system/lib: 目录中存放的主要是系统底层库,如平台运行时库。(不可删除的 apk 需用
      到对应的库文件)

    • /data/app:手动安装应用的 apk 就放在这里

    • /data/data: 保存所有应用的产生的数据,清除数据就是清除这个地方,还可以查看到
      包名

    • /system/vendor/operator/app: 恢复出厂时安装的 apk 文件(开发可自定义这个目录)

  • adb remount:获取System分区可写权限,需要root后才能有这个权限

4.3 查看包名

4.3.1 adb命令查看应用包名

  • 显示所有包名

    adb shell pm list packages
    
  • 显示系统应用包名

    adb shell pm list packages -s
    
  • 显示第三方应用包名

    adb shell pm list packages -3 
    

4.3.2 shell命令查看应用包名

  • 显示所有包名

    ls /data/data  
    

4.4 apk 操作指令

4.4.1 安装apk

  • 将本地apk软件安装到设备上

    adb install <apk文件路径>
    
  • 将本地apk软件安装到设备上,并替换原来已存的APK

    adb install -r  <apk电脑上的路径>
    

4.4.2 卸载apk

  • 将设备上的apk卸载

    adb uninstall <apk包名>
    
  • 将设备上apk卸载,但是保留配置和缓存文件

    adb uninstall  -k  <apk包名>
    

4.5 文件操作指令

4.5.1 上传文件

  • 把本地的文件或文件夹复制到设备(手机)

    adb push <本地路径> <远程路径>
    

4.5.2 下载文件

  • 把设备(手机)的文件或文件夹复制到本地

    adb pull <远程路径> <本地路径>
    

4.6 日志操作命令

4.6.1 adb 抓取日志命令

adb logcat 
# ctrl+c 结束
  • logcat 可以查看4个缓冲区日志:

    • radio:存放通信的日志,比如通话短信等;
    • event: 标识手机按键输出等事件日志等
    • main : 指的是手机的应用软件的日志,是应用层日志输出;
    • system : 系统组日志
    • 如果不指定,则默认输出mian和system的日志。
  • adb bugreport 输出日志(包括logcat日志)

    • 抓取的内容:logcat日志、功耗、CPU等日志信息
    • 特点:不需要手动停止,一般使用在出现bug出现可用方法抓取,主要抓取出现问题往前10分钟左右的信息
    • 注意:只支持 Android7.0以上的版本

4.6.2 adb logcat +参数

  • 输出指定区域的日志

    adb logcat -b 指定缓冲区 
    # 例如:main,redio
    
  • 输出日志同步打印时间

    adb logcat -v time  -b <执行缓冲区>
    
  • 保存log到指定位置

    adb logcat -v time  -b 执行缓冲区>d:\logcat.log
    
  • 清理日志

    adb logcat -c 
    
  • 日志筛选,只输出error日志

    adb logcat *:E 
    

4.6.3 日志分析

日志格式: 日志事件+日志级别+标签+PID+正文

  • 日志级别由低到高分别是Verbose、Debug、Info 、Warning、Error
    • V:开发调试过程中的一些详细信息,不过滤地输出所有调试信息,是最低级的Log可以不用管。特点:冗长啰嗦
    • D:Debug调试,显示开发调试的信息正式版本需要关闭
    • I: 提示性信息
    • W:警告,不一定会马上出现错误,开发时有时用来表示特别注意的地方。
    • E:Error表示出现错误,是最需要关注解决的
  • 标签(tag):标明日志发起者和方便日志的过滤赛选:如:AndroidRuntime
  • PID :进程ID
  • 正文:本日志的整体内容

4.7 系统操作指令

4.7.1 查看设备信息

  • 获取设备型号

    adb shell getprop ro.product.model
    
  • 获取设备android系统版本

    adb shell getprop ro.build.version.release 
    
  • 获取设备的序列号

    adb get-serialno
    
  • 获取设备屏幕的分辨率

    adb shell wm size
    

4.7.2 截图

  • 屏幕截图

    adb shell screencap -p /sdcard/mms.png
    
  • 将截图导出到本地

    adb pull /sdcartd/mms.png D:\app
    

4.7.3 查看系统信息-dumpsys

  • 基础语法

    adb shell dumpsys [options] 
    
  • 查看联系人占用的内存

    adb shell dumpsys meminfo com.android.contacts
    
  • 查看当前打开的应用包名和界面

     adb shell dumpsys window windows | findstr mFocusedApp 
    
  • 查看当前打开的界面

    adb shell dumpsys activity | find "mFocusedActivity"
    

4.8 Input 操作指令

  • 模拟键盘操作

    adb shell input keyevent <keycode> 
    
    • 常见的keycodes

      keycodes 含义 keycodes 含义
      3 home键 85 播放/暂停
      4 返回键 87 上一首
      5 打开拨号应用 88 下一首
      6 挂断电话 122 移动光标到行首或列表顶部
      24 增加音量 123 移动光标到行首或列表底部
      25 降低音量 164 静音
      26 电源键 176 打开系统设置
      27 拍照 187 切换应用
      64 打开浏览器 207 打开联系人
      82 菜单键 223 系统休眠
      224 点亮屏幕
  • 模拟滑动操作

    adb shell input swipe 300 1000 300 500
    
  • 模拟文本输入操作(要求:焦点在某文本框中 )

     adb shell input text hello
    

你可能感兴趣的:(#,App自动化测试,测试方法,软件测试,测试用例,App测试)