【软件测试 第四节:APP测试】

1.移动端操作系统(及术语)

Android、IOS、华为鸿蒙、诺基亚、linux、微软winphone
RAM:运行内存
ROM:存储内存
ROOT:获取root最高权限
apk:程序包
AVD:模拟器
Android sdk:安卓开发运行工具

2.App测试流程

(与web端测试流程一样,,需求分析-测试计划-测试设计-测试执行-测试评估)

3.app测试

App功能测试
①安装卸载测试(看ppt) ②功能业务测试 ③异常测试 ④UI测试 ⑤升级测试
App适配测试(兼容性测试)
①手机屏幕分辨率兼容性、操作系统、手机品牌、手机型号、尺寸等是否兼容?
②如何获取各种型号的手机?
App性能测试
关注点:移动端cpu、内存、流量、电流,不同网络环境下响应速度
①极限测试 ②效率测试(响应能力) ③压力测试 ④稳定性测试

App安全测试 用户授权级别、数据泄露、非法授权访问、有效性校验、认证、敏感收 据存储、数据加密等方面

4.面试题:app测试需要注意哪些点?app测试和web端测试有什么不同?

5.ADB命令行辅助工具

ADB全称为Android Debug Bridge(安卓调试桥),是Android SDK中的一个工具,起到调试桥的作用,是一个客户端-服务器端程序(C/S)。其中客户端是用来操作的电脑,服务端是Android设备(真实手机、模拟器)。

6.ADB作用:

  1. 运行设备的shell(命令行)
  2. 管理模拟器或设备的端口映射
  3. 计算机和设备之间上传/下载文件
  4. 可以对设备的应用进行卸载安装
  5. 抓取日志(定位bug)
    某个业务操作可能有bug,或者复现一个bug,操作app的时候,提前通过adb logcat把日志打印到一个文件;最新或者某个时间的日志给到安卓开发
  6. 稳定性测试(monkey)

7.ADB命令详解

1)检查ADB环境和服务指令
adb version:显示版本
adb help:帮助文档
重启ADB服务
adb kill-server
adb start-server
2) 建立连接
真机、模拟器:开启USB调试
adb devices:显示已经连接成功的设备
手动连接:adb connect 设备号
3)权限
adb root:获取Android管理员(root用户)的权限
adb shell:登录设备-shell,这个命令将登录设备的shell(内核),,登录shell后可以使用cd、ls、rm等linux命令
adb remount:获取System分区可写权限,需要root后才能有这个权限
4)查看应用包名
adb shell pm list packages 显示所有包名
adb shell pm list packages –s 显示系统应用包名
adb shell pm list packages -3 显示第三方应用包名
当前打开的app的包名:
uiautomator2 current
adb shell dumpsys window windows | findstr mFocusedApp
5)安装、卸载应用
adb install <apk文件路径>:将本地apk软件安装到设备上
adb uninstall <apk包名>:将设备上的apk卸载
6)文件上传、下载文件
adb push <本地路径> <远程路径>:把本地的文件或文件夹复制到设备(手机)
adb pull <远程路径> <本地路径> :把设备(手机)的文件或文件夹复制到本地
7)日志操作
adb logcat –v time >d:\logcat.log
实时日志,执行命令之后,在设备上执行的操作都会实时记录日志信息,手动停止命令(ctrl+c)
adb bugreport >d:\ bugreport.log
临时抓取日志,获取命令执行之前的10分钟的日志信息,抓完之后自动停止
8)截图
adb shell screencap -p /sdcard/mms.png:屏幕截图
9)查看系统信息-dumpsys
adb shell dumpsys meminfo com.android.contacts:查看联系人的内存使用情况
adb shell dumpsys window windows | findstr mFocusedApp:查看当前打开的应用包名和界面
adb shell dumpsys activity | find “mFocusedActivity”:查看当前打开的界面

8.稳定性测试概述

稳定性测试就是指软件长时间(7*24h)的持续运行,系统版本是否稳定,是否能否持续的为用户提供服务。

方式:自动化工具 --monkey(命令行),Android SDK

特点
1.模拟用户进行事件流的操作(点击、滑动、按键)
2.事件流都是随机操作的,不能指定事件的执行顺序
3.可以指定事件发送的次数与频率
4.人工测试(按照指定的顺序、规则来进行测试)
monkey(随机测试):打破规律方式来进行测试,打破测试的思维定势,
从而可以从多个方面来发现潜在的bug

9.Monkey稳定性测试实操

稳定性测试流程:
	1:确定测试对象(抖音、网易云音乐)
	2:稳定性测试的脚本
		执行的时间、执行的频率、执行的对象、执行时的日志记录
	3:执行脚本
	4:脚本执行完成后,分析日志,提交bug
		异常的次数;;异常的频率

脚本操作:
1-adb shell pm list packages -3
包名:com.tencent.news
2-确定执行的时间(1h)
频率 * 事件数量 = 执行时间
1s * x = 1 * 60 *60 s
x = 3600次
0.5s * x = 1 * 60 *60 s
x = 7200次
3-执行的频率 throttle 单位是ms 1s=1000ms *60=1分钟 (6万ms)
模拟用户使用的频率(0.5s~1s)
4-记录执行过程中产生日志
将日志存储在本地
5-调试选项
为了保证稳定性测试的时长,避免在测试过程中被异常中断
adb shell monkey -p com.tencent.news --ignore-crashes --ignore-timeouts --ignore-security-exceptions --monitor-native-crashes --ignore-native-crashes --kill-process-after-error -v-v-vthrottle 500 7200 >D:\CODE\0816new.log
![[…/图片/Pasted image 20230803151414.png]]

脚本什么时候停止:
1)正常停止:
执行次数完成了
2)异常停止:
执行过程中遇到了程序报错,程序停止运行,按键事件(关机、重启),就会导致monkey被异常终止

3:脚本执行完成后,分析日志,提交bug
:Monkey: seed=1629270193772 count=7200
seed:seed值,记录这个monkey事件的执行顺序
count=7200:指定执行的事件总次数

1- 日志分析
Monkey测试出现完成后,需要去查看日志信息,检查在运行过程中是否有错误出现。
一般的操作步骤为以下几步:
1.在日志中找有哪些错误
2.找到错误后再定位是哪些APP或者哪些事件出错
3.提交bug,并附上日志信息
4.开发修复bug后,进行回归验证。使用之前的monkey命令再执行一遍,注意seed值要一样

2- 错误定位
CRASH:程序崩溃或异常 10次
ANR(Application Not Responding) :程序无响应 5次
Exception:异常 3次

monkey稳定性测试:(主要目的不是找bug)
1.系统长时间运行会不会偶发性的闪退
2.系统长时间稳定运行(日志里面有多少crash,anr,exception报错)

第一次跑monkey:
虽然monkey的操作是随机的,但是系统都记录每一步的操作,(坐标)
当我们跑monkey测试,app闪退,app崩溃的时候,把当前的日志()给到开发,
重复第一次跑的过程:seed
我们要去回归测试,或者复现这种情况
adb shell monkey -p com.tencent.news -s 1629270193772
-v-v-v --pct-motion 80 --throttle 1000 200 >D:\logger\txxw.log

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值