app专项测试-兼容测试对于web兼容测试不同系统不同浏览器相同浏览器的不同版本对于app的兼容测试不同型号不同系统不同屏幕大小不同分辨率的手机手机的机型比较多品牌比较多分辨率比较多屏幕大小比较多造成需要测试的机型比较多手工测试迭代测试需要对Top50的机型进行测试上线前需要对Top20/10的机型进行测试,对之前有问题的机型进行测试云平台测试testinwetest蒲公英云测关注点1.操作系统 ios 8 9 10 11 android 5.0 6.0 7.02.分辨率 800*480 960 * 6403.硬件的系统架构(32位 64 位)4.rom 厂商 底层服务 。 miu oppo5.网络兼容蜂窝 wifi 弱网 流量APP专项测试-交叉事件中断测试在某个操作的过程中另一个事件或者操作对其进行了干扰或者在使用某个功能的过程中同时使用另一个功能。验证多个APP同时使用时是否有影响。使用APP的过程中拨打/接听电话使用APP的过程中发送/接收短信使用APP的过程中发送/接收邮件使用APP的过程中发送/接收微信使用APP的过程中闹钟响了、使用计算器、相机、 查看天气等使用APP的过程中使用蓝牙发送/接收文件app运行切换无线网络APP专项测试-消息推送测试推送设置全部推送、部分推送 消息形式弹窗、消息通知栏推送 测试点测试消息推送按照设置的规则进行推送。APP在后台运行下能收到推送消息。APP在锁屏状态下能收到推送消息。APP在网络断开重连后能收到推送消息。设置不接收推送消息不能收到推送消息。设置免打扰时间段在免打扰的时间段内不能收到推送消息。在非免打扰的时间段内能收到推送消息。推送消息针对登录用户时使用A登录后退出使用B登录应该只对B用户推送也就是最后一个登录的用户。使用真机来测试。APP专项测试-稳定性测试在一定压力下长时间操作观察app是否有功能问题、内存泄露、闪退、崩溃等问题一般使用工具去模拟用户的操作点击/旋转/放大/滑动等事件,通过大量的随机事件来验证程序的稳定性monkey工具去模拟稳定性测试monkey工具1是Android自带的一个程序放在system/bin/monkey。2可以模拟人的操作3通过adb命令来启动monkey工具monkey命令1执行操作1000次adb shell monkey -v-v-v 10002查看monkey帮助文档 adb shell monkey --help-p 指定包[--ignore-crashes] [--ignore-timeouts] [--ignore-security-exceptions]一般情况下如果 monkey执行过程中碰到崩溃超时其他异常的情况会停止运行可以设置忽略让monkey继续运行-s 设置seed种子-v 详细的日志信息 -v-v更详细的信息 -v-v-v最详细的11个事件 设置事件的比重[--pct-touch PERCENT] 触碰事件[--pct-motion PERCENT] 滑动事件[--pct-trackball PERCENT] 轨迹球事件[--pct-syskeys PERCENT] 系统按键事件[--pct-nav PERCENT] 基本导航栏事件[--pct-majornav PERCENT] 主要导航栏事件[--pct-appswitch PERCENT] app切换事件[--pct-flip PERCENT] 键盘相关事件[--pct-anyevent PERCENT] 任意事件[--pct-pinchzoom PERCENT] 二指缩放[--pct-permission PERCENT] 权限相关3设置事件比重adb shell monkey --pct-touch 40 --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20 -v-v-v 1000 1d:\apks\log.txt 2d:\apks\error.txt4指定包查看包名adb shell pm list packagesadb shell monkey --pct-touch 40 -p com.mt.mtxx.mtxx --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20-v-v-v 1000 1d:\apks\log.txt 2d:\apks\error.txt5忽略异常--ignore-crashes --ignore-timeouts --ignore-security-exceptionsadb shell monkey --pct-touch 40 -p com.zzb.memoryleak --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20 -v-v-v --ignore-crashes --ignore-timeouts --ignore-security-exceptions 1000 1d:\apks\log.txt 2d:\apks\error.txt6设置种子adb shell monkey -s 1785467127536 --pct-touch 40 -p com.zzb.memoryleak --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20 -v-v-v --ignore-crashes --ignore-timeouts --ignore-security-exceptions 1000 1d:\apks\log.txt 2d:\apks\error.txt分析日志文件在日志中搜索ANR CRASH ERROR EXCEPTION等看是否有异常ANR:无响应crash:崩溃error:异常exception:异常常见的Java异常1. NullPointerException 空指针异常。原因尝试调用未初始化对象的方法或属性例如访问空引用对象的成员变量。解决使用 Optional 类包装对象或在调用前显式检查对象是否为null。2. ArrayIndexOutOfBoundsException 数组越界异常。原因访问数组时索引超过数组长度范围例如访问长度为5的数组的第6个元素。解决通过 arr.length 检查索引范围或使用增强型 for 循环遍历数组。3. ClassCastException 类型转换异常。原因强制将对象转换为不兼容的类型。解决转换前使用 instanceof 关键字校验类型。4. ArithmeticException 算术异常。原因数学运算错误如除数为零。解决通过条件判断避免非法运算例如检查除数是否为0。常见编译时异常1. IOException 输入输出异常。原因文件不存在、网络中断等外部因素导致IO操作失败。解决使用 try-catch 捕获异常或在方法签名中声明 throws 。2. FileNotFoundException 文件未找到异常。原因尝试打开不存在的文件路径。解决使用 File.exists() 方法检查文件是否存在。APP专项测试-性能测试服务端的性能响应事件吞吐量错误率并发用户数 cpu 内存 网络io 磁盘ioapp的性能app的启动时间界面响应时间内存cpu的使用情况单位时间内的流量消耗单位时间内的耗电 量FPS(帧率)测试方式1adb命令 2使用工具prefdog(性能狗工具)app的启动时间冷启动app在后台没有运行的情况下启动时间应该在1.5s以内热启动app在后台运行的情况下启动时间应该在1s以内命令adb shell am start -W 包名/.activityaapt dump badging d:/apks/meitu8.6.2.0.apkadb shell am start -W com.mt.mtxx.mtxx/.TopViewActivity界面响应时间手工测试掐表自动化测试使用python代码去记录时间差内存cpu空闲状态下将app放在后台运行查看内存cpu的使用情况中等状态下手动使用app一段时间查看内存cpu的使用情况高强度状态下使用monkey去执行查看内存cpu的使用情况内存:adb shell dumpsys meminfo 包名adb shell dumpsys meminfo com.mt.mtxx.mtxx1024byte1kb1024kb1mb1024mb1G1024G1TCPU空闲状态下将app放在后台运行查看cpu的占比 0%中等状态下手动使用app一段时间查看cpu的占比 30%高强度状态下使用monkey去执行查看cpu的占比 50%adb shell dumpsys cpuinfo 查看所有的app的cpu占比adb shell dumpsys cpuinfo | findstr mt 查看某个包的cpu占比adb shell dumpsys cpuinfo 包名adb shell dumpsys cpuinfo com.mt.mtxx.mtxx 根据包名查看adb shell top -d 3| findstr com.mt.mtxx.mtxx 每个3s去打印cpu的使用adb shell top -s 10 根据内存占比情况排序去查看内存cpu的使用adb shell top -s 9 根据cpu占比情况排序去查看内存cpu的使用FPS帧率当帧率高于24时就认为手机屏幕是连贯的当app是游戏app是需要高于30否则会出现卡顿前提打开开发者选项--》Gpu呈现模式--》adb shell dumpsys...adb shell dumpsys gfxinfo 包名adb shell dumpsys gfxinfo com.mt.mtxx.mtxx60的帧率 60/s 60/1000ms 1000/6016.7Draw表示在Java中创建显示列表部分中OnDraw()方法占用的时间Prepare准备时间Process表示渲染引擎执行显示列表所花的时间view越多时间就越长Execute表示把一帧数据发送到屏幕上排版显示实际花费的时间其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间将上面的四个时间加起来就是绘制一帧所需要的时间如果超过了16.67就表示掉帧了单位时间的耗电量adb shell dumpsys battery单位时间的流量消耗adb shell cat /proc/进程id/net/dev进程id adb shell pidof 包名adb shell pidof com.mt.mtxx.mtxxadb shell cat /proc/3280/net/devRecevice: 表示收包 Transmit: 表示发包 bytes: 表示收发的字节数 packets: 表示收发正确的包量 errs: 表示收发错误的包量 drop:表示收发丢弃的包量性能狗perfDog工具https://perfdog.qq.com/article_detail?id10089issue_id0plat_id1a. 非安装模式手机即插即用无需任 何设置及安装使用非常简单但手机屏幕上没有实时性能数据显示。b. 安装模式 需要在手机上自动安装 PerfDog.apk手机屏幕上有实时性能数据显示允许USB应用安装和PerfDog悬浮窗 管理权限启动PC版 PerfDog.exe则会在手机上自动PUSH安装PerfDog.apk具体安装类似各个手机 厂商安装第三方APP提示安装即 可。注由于很多手机安装需要账号密码导致无法自动安装如果自动安装失败则会把安装文件 PerfDog.apk释放到当前文件夹里手动安装PerfDog.apk即可。此模式下在测试过程中可能由于系统资源 紧缺会kill PerfDog显示app手机界面性能数据显示但不影响正常测试功能弱网测试抓包APP在使用过程中可能会在公交、地铁、山上等地方使用网络可以会出现波动、超时等。一般我们要模拟弱网环境 测试点 看是否存在界面卡死、崩溃等异常。 提示是否有合理的重连机制。 超时后的提示信息是否符合用户的习惯。模拟弱网环境charles 收费的 window macNet-simulator 专业的模拟弱网工具fiddler工具可以用于web程序、app程序的抓包,模拟浏览器和手机的弱网环境 只能用于window系统弱网的环境模拟1配置fidder:允许外界设备去连接fiddler2让手机和fiddler处于同一个网络环境3配置手机的ip为fiddler所在电脑的ip, 配置手机的端口号为fiddler的端口号保证他们能建立连接4手机上下载配置证书此时手机和fiddler就建立了连接5在fiddler上进行弱网的配置
智能体测开Day36
app专项测试-兼容测试对于web兼容测试不同系统不同浏览器相同浏览器的不同版本对于app的兼容测试不同型号不同系统不同屏幕大小不同分辨率的手机手机的机型比较多品牌比较多分辨率比较多屏幕大小比较多造成需要测试的机型比较多手工测试迭代测试需要对Top50的机型进行测试上线前需要对Top20/10的机型进行测试,对之前有问题的机型进行测试云平台测试testinwetest蒲公英云测关注点1.操作系统 ios 8 9 10 11 android 5.0 6.0 7.02.分辨率 800*480 960 * 6403.硬件的系统架构(32位 64 位)4.rom 厂商 底层服务 。 miu oppo5.网络兼容蜂窝 wifi 弱网 流量APP专项测试-交叉事件中断测试在某个操作的过程中另一个事件或者操作对其进行了干扰或者在使用某个功能的过程中同时使用另一个功能。验证多个APP同时使用时是否有影响。使用APP的过程中拨打/接听电话使用APP的过程中发送/接收短信使用APP的过程中发送/接收邮件使用APP的过程中发送/接收微信使用APP的过程中闹钟响了、使用计算器、相机、 查看天气等使用APP的过程中使用蓝牙发送/接收文件app运行切换无线网络APP专项测试-消息推送测试推送设置全部推送、部分推送 消息形式弹窗、消息通知栏推送 测试点测试消息推送按照设置的规则进行推送。APP在后台运行下能收到推送消息。APP在锁屏状态下能收到推送消息。APP在网络断开重连后能收到推送消息。设置不接收推送消息不能收到推送消息。设置免打扰时间段在免打扰的时间段内不能收到推送消息。在非免打扰的时间段内能收到推送消息。推送消息针对登录用户时使用A登录后退出使用B登录应该只对B用户推送也就是最后一个登录的用户。使用真机来测试。APP专项测试-稳定性测试在一定压力下长时间操作观察app是否有功能问题、内存泄露、闪退、崩溃等问题一般使用工具去模拟用户的操作点击/旋转/放大/滑动等事件,通过大量的随机事件来验证程序的稳定性monkey工具去模拟稳定性测试monkey工具1是Android自带的一个程序放在system/bin/monkey。2可以模拟人的操作3通过adb命令来启动monkey工具monkey命令1执行操作1000次adb shell monkey -v-v-v 10002查看monkey帮助文档 adb shell monkey --help-p 指定包[--ignore-crashes] [--ignore-timeouts] [--ignore-security-exceptions]一般情况下如果 monkey执行过程中碰到崩溃超时其他异常的情况会停止运行可以设置忽略让monkey继续运行-s 设置seed种子-v 详细的日志信息 -v-v更详细的信息 -v-v-v最详细的11个事件 设置事件的比重[--pct-touch PERCENT] 触碰事件[--pct-motion PERCENT] 滑动事件[--pct-trackball PERCENT] 轨迹球事件[--pct-syskeys PERCENT] 系统按键事件[--pct-nav PERCENT] 基本导航栏事件[--pct-majornav PERCENT] 主要导航栏事件[--pct-appswitch PERCENT] app切换事件[--pct-flip PERCENT] 键盘相关事件[--pct-anyevent PERCENT] 任意事件[--pct-pinchzoom PERCENT] 二指缩放[--pct-permission PERCENT] 权限相关3设置事件比重adb shell monkey --pct-touch 40 --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20 -v-v-v 1000 1d:\apks\log.txt 2d:\apks\error.txt4指定包查看包名adb shell pm list packagesadb shell monkey --pct-touch 40 -p com.mt.mtxx.mtxx --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20-v-v-v 1000 1d:\apks\log.txt 2d:\apks\error.txt5忽略异常--ignore-crashes --ignore-timeouts --ignore-security-exceptionsadb shell monkey --pct-touch 40 -p com.zzb.memoryleak --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20 -v-v-v --ignore-crashes --ignore-timeouts --ignore-security-exceptions 1000 1d:\apks\log.txt 2d:\apks\error.txt6设置种子adb shell monkey -s 1785467127536 --pct-touch 40 -p com.zzb.memoryleak --pct-motion 20 --pct-trackball 20 --pct-pinchzoom 20 -v-v-v --ignore-crashes --ignore-timeouts --ignore-security-exceptions 1000 1d:\apks\log.txt 2d:\apks\error.txt分析日志文件在日志中搜索ANR CRASH ERROR EXCEPTION等看是否有异常ANR:无响应crash:崩溃error:异常exception:异常常见的Java异常1. NullPointerException 空指针异常。原因尝试调用未初始化对象的方法或属性例如访问空引用对象的成员变量。解决使用 Optional 类包装对象或在调用前显式检查对象是否为null。2. ArrayIndexOutOfBoundsException 数组越界异常。原因访问数组时索引超过数组长度范围例如访问长度为5的数组的第6个元素。解决通过 arr.length 检查索引范围或使用增强型 for 循环遍历数组。3. ClassCastException 类型转换异常。原因强制将对象转换为不兼容的类型。解决转换前使用 instanceof 关键字校验类型。4. ArithmeticException 算术异常。原因数学运算错误如除数为零。解决通过条件判断避免非法运算例如检查除数是否为0。常见编译时异常1. IOException 输入输出异常。原因文件不存在、网络中断等外部因素导致IO操作失败。解决使用 try-catch 捕获异常或在方法签名中声明 throws 。2. FileNotFoundException 文件未找到异常。原因尝试打开不存在的文件路径。解决使用 File.exists() 方法检查文件是否存在。APP专项测试-性能测试服务端的性能响应事件吞吐量错误率并发用户数 cpu 内存 网络io 磁盘ioapp的性能app的启动时间界面响应时间内存cpu的使用情况单位时间内的流量消耗单位时间内的耗电 量FPS(帧率)测试方式1adb命令 2使用工具prefdog(性能狗工具)app的启动时间冷启动app在后台没有运行的情况下启动时间应该在1.5s以内热启动app在后台运行的情况下启动时间应该在1s以内命令adb shell am start -W 包名/.activityaapt dump badging d:/apks/meitu8.6.2.0.apkadb shell am start -W com.mt.mtxx.mtxx/.TopViewActivity界面响应时间手工测试掐表自动化测试使用python代码去记录时间差内存cpu空闲状态下将app放在后台运行查看内存cpu的使用情况中等状态下手动使用app一段时间查看内存cpu的使用情况高强度状态下使用monkey去执行查看内存cpu的使用情况内存:adb shell dumpsys meminfo 包名adb shell dumpsys meminfo com.mt.mtxx.mtxx1024byte1kb1024kb1mb1024mb1G1024G1TCPU空闲状态下将app放在后台运行查看cpu的占比 0%中等状态下手动使用app一段时间查看cpu的占比 30%高强度状态下使用monkey去执行查看cpu的占比 50%adb shell dumpsys cpuinfo 查看所有的app的cpu占比adb shell dumpsys cpuinfo | findstr mt 查看某个包的cpu占比adb shell dumpsys cpuinfo 包名adb shell dumpsys cpuinfo com.mt.mtxx.mtxx 根据包名查看adb shell top -d 3| findstr com.mt.mtxx.mtxx 每个3s去打印cpu的使用adb shell top -s 10 根据内存占比情况排序去查看内存cpu的使用adb shell top -s 9 根据cpu占比情况排序去查看内存cpu的使用FPS帧率当帧率高于24时就认为手机屏幕是连贯的当app是游戏app是需要高于30否则会出现卡顿前提打开开发者选项--》Gpu呈现模式--》adb shell dumpsys...adb shell dumpsys gfxinfo 包名adb shell dumpsys gfxinfo com.mt.mtxx.mtxx60的帧率 60/s 60/1000ms 1000/6016.7Draw表示在Java中创建显示列表部分中OnDraw()方法占用的时间Prepare准备时间Process表示渲染引擎执行显示列表所花的时间view越多时间就越长Execute表示把一帧数据发送到屏幕上排版显示实际花费的时间其实是实际显示帧数据的后台缓存区与前台缓冲区交换后并将前台缓冲区的内容显示到屏幕上的时间将上面的四个时间加起来就是绘制一帧所需要的时间如果超过了16.67就表示掉帧了单位时间的耗电量adb shell dumpsys battery单位时间的流量消耗adb shell cat /proc/进程id/net/dev进程id adb shell pidof 包名adb shell pidof com.mt.mtxx.mtxxadb shell cat /proc/3280/net/devRecevice: 表示收包 Transmit: 表示发包 bytes: 表示收发的字节数 packets: 表示收发正确的包量 errs: 表示收发错误的包量 drop:表示收发丢弃的包量性能狗perfDog工具https://perfdog.qq.com/article_detail?id10089issue_id0plat_id1a. 非安装模式手机即插即用无需任 何设置及安装使用非常简单但手机屏幕上没有实时性能数据显示。b. 安装模式 需要在手机上自动安装 PerfDog.apk手机屏幕上有实时性能数据显示允许USB应用安装和PerfDog悬浮窗 管理权限启动PC版 PerfDog.exe则会在手机上自动PUSH安装PerfDog.apk具体安装类似各个手机 厂商安装第三方APP提示安装即 可。注由于很多手机安装需要账号密码导致无法自动安装如果自动安装失败则会把安装文件 PerfDog.apk释放到当前文件夹里手动安装PerfDog.apk即可。此模式下在测试过程中可能由于系统资源 紧缺会kill PerfDog显示app手机界面性能数据显示但不影响正常测试功能弱网测试抓包APP在使用过程中可能会在公交、地铁、山上等地方使用网络可以会出现波动、超时等。一般我们要模拟弱网环境 测试点 看是否存在界面卡死、崩溃等异常。 提示是否有合理的重连机制。 超时后的提示信息是否符合用户的习惯。模拟弱网环境charles 收费的 window macNet-simulator 专业的模拟弱网工具fiddler工具可以用于web程序、app程序的抓包,模拟浏览器和手机的弱网环境 只能用于window系统弱网的环境模拟1配置fidder:允许外界设备去连接fiddler2让手机和fiddler处于同一个网络环境3配置手机的ip为fiddler所在电脑的ip, 配置手机的端口号为fiddler的端口号保证他们能建立连接4手机上下载配置证书此时手机和fiddler就建立了连接5在fiddler上进行弱网的配置