6月30日功能测试Day10
3.4.4拼团购测试点
功能位置:营销-----拼团购
后台优惠促销列表管理可以添加拼团,查看拼团活动,启动活动,编辑活动,删除活动。
可以查看拼团活动中已下单的订单以状态
需求分析
功能和添加拼团
商品拼团活动页
3.4.5APP搜索测试
3.4.6APP支付
3.4.7APP评论
3.5APP专项测试
3.5.1APP兼容性
APP在不同的机型上由于软件、硬件等不同可能出现各种各样的问题,因此需要做兼容性测试
例如
手机型号
操作系统版本(安卓、鸿蒙、ios)
分辨率屏幕尺寸(1.5k、2k、1080P)
网络(wifi、5G、4G)
应用兼容性
手机硬件
物理按键:home键、电源键、音量调节
外部硬件:耳机、蓝牙
操作系统设置:wlan设置、系统时间调节、Lbs定位
与其他APP兼容:有后台播放功能的APP,例如音乐
拓展
如何选择品牌、机型、系统、分辨率、网络?
查看线上排名网站(流量研究院)
browser http://tongji.baidu.com/data/browser
比如
测试网站
3.5.2APP安装卸载升级
APP是客户端程序,客户端程序就需要提前进行安装才能使用,因此需要测试安装、卸载、升级操作。
安装测试关注点:
正常场景:
在不同的操作系统版本上安装
从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装)
不同的安装路径(安装到手机上、安装到SD卡上)
异常场景:
安装时出现异常(关机、断网),恢复后能否继续安装
安装时存储空间不足
安装时手动取消后再次安装
正在运行时覆盖安装
低版本覆盖安装高版本
卸载后安装(卸载会是否会清除数据)
卸载测试关注点:
正常卸载(APP手动卸载、工具(第三方软件)卸载)
运行时卸载(后台运行)
取消卸载(第三方软件\二次弹窗确认时取消)
卸载异常中断(关机)
卸载后无数据残留(给用户提示确认,如果用户同意残留,可以保留数据;如果用户拒绝残留,不可以保留数据)(不做任何确认提示,默认需要清空残留数据)
升级测试关注点:
从临近版本升级(上一次发布的版本)
跨版本升级(历史发布过的版本): 当前版本是n n-1升级n n-2升级n
不同渠道升级(应用商城、手机助手)
升级提醒成功(可不提醒、可以提示升级、强制升级)
升级前是否提醒(消息推送提示升级\强制升级不提醒)
-
自己自研升级系统(日常升级/强制升级)
-
使用第三方(日常升级/强制升级)
应用内升级时非WIFI提醒
版本是否有升级能力
注意事项
升级后要观察升级前的数据正常
(当数据结构改变而开发没有处理好时很容易升级前的数据混乱)
3.5.3APP交叉事件测试
又叫冲突测试或者干扰测试,是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试。例如:在App前台/后台运行同时接听来电或者下载文件等。
APP运行时接打电话
APP运行时收发消息
APP运行时查看应该推送
APP运行接上蓝牙设备
APP运行时接受文件弹窗提醒
APP运行时旋转屏幕
APP运行时切换网络(4G、5G、wi-fi)
APP运行时使用相机、计算机等手机自带应用
APP运行时点亮告警、插拔充电器
3.5.4Push消息测试
什么是Push消息?
Push消息:是APP给你推送的各种消息
通常手机中“设置”--"通知"就是进行push消息的设置,因此需要进行push消息测试。
什么时候会使用Push消息?
消息推送场景:
产品角度:功能需要,如:咨询类产品的新闻推送,工具类产品的公告推送、快递签收通知,等等。
运营角度:活动运营需要,如:电商类产品的促销活动;召回用户/提高活跃度等
Push消息测试关注点
3.5.5用户体验测试关注点
3.6APP性能测试
学习目标:
能使用SoLoPi完成APP的性能测试(CPU、内存、流畅度、流量、电量、启动速度、稳定性)
能独立说出常用APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志)
能使用命令测试APP客户端的稳定性(monkey)
3.6.1SoLoPi
是一个无线化、非侵入式的Android自动化工具,具备录制回放、性能测试等功能
soloPi安装:
免费,可独立安装的soloPi(APK、IOS无该版本),像普通APP一样安装。
3.6.2性能测试常见指标
性能:是衡量APP质量的一个重要指标
常见的性能指标:内存、cpu、流量、电量、启动速度、流畅度、稳定性
关注点:
APP使用时对cpu、内存的占用情况
app使用时是否流畅
APP使用时,电量流量的消耗情况
APP的启动时间是否过长
APP是否能长时间稳定运行
3.6.3内存数据查看
内存泄漏:内存的曲线持续增长(赠的远比减的多)
内存溢出:一定因为有内存泄漏才会出现,内存持续增加突然降为0(应用停止运行)
3.6.4CPU
基线:
如果有基线要求,cpu曲线图是否存在长期超过基线的现象(min)
如果没有基线,行业默认90%
CPU占用过高可能出现的问题:
手机发烫、页面卡顿、电量消耗严重
快速恢复:
清空后台运行的进程
3.6.5流量和电量消耗
SoloPi工具提供了流畅度的监控指标:网络
网络:
即网络流量,可以自动统计APP每秒上行和下行的报文大小
常用的流量测试方法:
统计测试法:利用工具获取应用程序收发的数据报文,统计对应流量
流量:
使用了多长时间,消耗了多少流量
测试怎么测:例如:1小时持续刷新,查看流量消耗
电量:
未充电情况下
使用了多长时间,消耗了多少电量
测试怎么测:例如:1小时持续刷新,查看电量消耗
面试题:
打开页面速度过慢,如何优化?
数据的压缩
不同数据格式的采用
控制访问的频次
只获取必要的数据
缓存机制
针对不同的网络类型设置不同的访问策略
常见的耗电量大的场景:
定位,尤其是调用GPS定位
网络传输,尤其是非WiFi环境
屏幕亮度
CPU运算:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电
wake-locker(锁屏-解锁)时间和次数
电量测试方法
电量的测试结果分析:
我们可以根据不同的业务场景测试出对应的电量消耗数据,但是是否有问题需要对比分析,对比方法:
与基准数据对比。(基准数据来自于产品经理,或者以往数据积累)
横向对比,拉上竞品一起测(目前多采用这种方式)
同样的网络、手机,相同的测试场景,最后对比我们的产品和竞品在耗电量反面的差距,给出优化建议
3.6.6获取启动时间
APP启动测试:
测试从启动app到主页面显示的时间,打开一个app等待的时间过长时,就会有一种较差的体验
冷启动:APP离线的状态下启动
热启动:APP后台运行的状态下启动,时间短
3.6.7流畅度
什么是流畅度?
当一张张图片切换速度足够快的时候会欺骗我们的眼睛,以为是连续的动作
帧率FPS:
GPU在一秒内绘制的帧数(简单理解为一秒内呈现给用户的图片数)
FPS值越高画面越流畅
注意事项:
当页面多为静态时,FPS值是很小正常的
页面数据多为动态加载时,FPS值比较大
3.6.8模拟器常见异常处理
问题1:devices offline(设备离线)解决方案:重启模拟器
问题2:devices not found(找不到设备)解决方案:重启模拟器
问题3:more than one devices emulater(连接多个设备)
获取设备列表:adb devices
断开不需要设备:adb disconnect 手机ip
3.6.9APP稳定性
稳定性测试:
通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常。如闪退crash、无响应ANR等。
稳定性测试工具——Monkey
Monkey是一个命令行工具,有安卓官方提供
测试人员可以通过Monkey来模拟用户的触摸、点击、滑动以及系统按键等操作(操作事件都是随机的),从而实现对APP压力的测试和稳定性测试。(具体Monkey的使用在后续app自动化章节介绍)
开发人员结合monkey打印的日志和系统打印的日志,修改测试中出现的问题。
稳定性测试的时机:
一般需要等产品稳定了,bug比较少的时候,再用monkey去测试待测试应用的稳定性
3.7APP命令格式
为什么要学习命令?
效率高
面试会问
工具的本质也是调用命令
解决工具的能力边界
3.7.1ADB工具
ADB是一个通用命令行工具,也是Android软件测试开发工作者常用的调试工具
ADB可以用来安装卸载软件、管理安卓系统软件、启动测试、抓取操作日志。
3.7.2常用命令
1.查看已连接的设备列表:adb devices
2.断开连接设备:adb disconnect 手机 ip
3.连接设备:adb connect 手机 ip(保证手机和电脑处于同一网段)
4.开启adb服务:adb start-server
5.关闭adb服务:adb kill-server
6.安装软件包:adb install /路径/软件包文件名( -r 保留数据 -t 强制覆盖 例如:adb install -r -t /路径/软件包名)
7.卸载软件:adb uninstall(app包名:apk包名)
列出手机装的所有app的包名:adb shell pm list packages
列出系统应用的所有包名:adb shell pm list packages -s
列出除了系统应用的第三方应用包名:adb shell pm list packages -3
8.获取当前窗口:Windows:adb shell dumpsys window | findstr mCurrentFocus
9.清除应用数据与缓存:adb shell pm clear (apk包名)
10.获取APP启动时间:
格式:adb shell am start -W 包名/activity名
常见参数:-s 表示每次启动前先强行停止 -r 表示重复测试次数(启动次数)-w 获取时间
常见3个指标:
ThisTime:当前activity的时间
TotalTime:应用的启动时间,包括创建进程、App初始化、Activity初始化到界面显示
WaitTime:前一个应用activity pause的时间 + TotalTime
11.获取内存:
格式:adb shell dumpsys meminfo <包名>
12.查看cpu占用情况:
13.获取APP使用流量
1.获取UserID(返回数据位userID=)
adb shell dumpsys package 包名 | findstr userId
2.获取上行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userId/tcp_snd
3.获取下行流量(返回数据单位bytes)
adb shell cat proc/uid_stat/userId/tcp_rcv
3.5.3稳定性测试(Monkey)
1.adb shell monkey -p 包名 数字 -v > 本地文件
2.-v -v -v最高日志
3.常用命令:adb shell monkey -p 包名 10000 -v-v-v --throttle 500 > 本地文件
总结:
功能测试结束,6月份学习动力不足,学习效率极度降低,7月1日复习前面知识,然后加快进度。8号开始实习,边实习边学习!!!
相关文章:

6月30日功能测试Day10
3.4.4拼团购测试点 功能位置:营销-----拼团购 后台优惠促销列表管理可以添加拼团,查看拼团活动,启动活动,编辑活动,删除活动。 可以查看拼团活动中已下单的订单以状态 需求分析 功能和添加拼团 商品拼团活动页 3…...

无人机对地面运动目标定位---获取目标的移动方向和速度
目录 一、引子 我们利用单目无人机通过等时间间隔拍照的形式对地面某移动目标进行定位,当前,我们已经获得了每张相片上该目标的三维坐标,并且知道该无人机在飞行过程中拍照的时间间隔,那么我们就可以通过一定的计算,得…...

管理才是最根本的核心竞争力
相信大家对于华为提出的“管理是核心竞争力”“管理才是企业的核心竞争力”等言论并不陌生,而华为的确也一直践行这样的理念。比如,在华为发展历史上很艰难的2002年,华为仍然坚持重点抓管理。总裁任正非后来提到:“2002年华为快崩…...
Raid阵列中硬盘损坏后,新硬盘可以直接换上吗?
RAID更换的方式基本类似,这里以RAID 1为例。 1. 关闭服务器:确保服务器或RAID控制器处于关闭或已停止状态,以避免数据写入或损坏。确定损坏硬盘:通过RAID控制器的管理界面,确定哪一块硬盘在RAID 中损坏。 2. 拆卸原硬…...

Python爬虫康复训练——笔趣阁《神魂至尊》
还是话不多说,很久没写爬虫了,来个bs4康复训练爬虫,正好我最近在看《神魂至尊》,爬个txt文件下来看看 直接上代码 """ 神魂至尊网址-https://www.bqgui.cc/book/1519/ """ import requests from b…...
Kaptcha验证码
Kaptcha验证码 Kaptcha 是一个用于生成验证码的开源库,在 Java 中使用它可以轻松地为应用程序添加验证码功能。 一、引入依赖 首先,需要在项目的 pom.xml 文件(如果是 Maven 项目)中添加 Kaptcha 的依赖: <depend…...

Rufus 制作启动盘 | 便携的工作空间
唠唠闲话 最近服务器硬盘故障多,在修复过程中,学习了一些操作,这里做个记录。本期主要介绍 U盘启动盘的制作,以及持久化存储。 U 盘启动盘 镜像选择 Ubuntu 的版本命名遵循 “Adjective Animal” 的模式,即 “形容…...
python函数参数
Python 函数参数是函数定义时用于接收传递给函数的值的变量。在Python中,函数可以有多种类型的参数,这增加了函数的灵活性和可重用性。下面是一些主要的参数类型: 1. 位置参数(Positional Arguments) 位置参数是最常…...

深入理解 XML 和 HTML 之间的区别
在现代网络技术的世界中,XML(可扩展标记语言)和 HTML(超文本标记语言) 是两个非常重要的技术。尽管它们都使用标签和属性的格式来描述数据,但它们在形式和用途上有显著的区别。 概述 什么是 XMLÿ…...

代码随想录算法训练营第四十四天|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
188.买卖股票的最佳时机IV 题目链接:188.买卖股票的最佳时机IV 文档讲解:代码随想录 状态:不会 思路: 在股票买卖1使用一维dp的基础上,升级成二维的即可。 定义dp[k1][2],其中 dp[j][0] 表示第j次交易后持…...

YOLOv8改进 添加CVPR2024 PKINet中注意力机制CAAttention
一、PKINet论文 论文地址:2403.06258 (arxiv.org) 二、CAAttention结构 CAA(Context Anchor Attention)注意力模块是一种用于捕捉长距离上下文信息的并行模块。 在计算机视觉领域中,上下文信息是指与目标物体或任务相关的周围环境和语境信息。上下文信息可以帮助我们更好…...

油猴Safari浏览器插件:Tampermonkey for Mac 下载
Tampermonkey 是一个强大的浏览器扩展,用于运行用户脚本,这些脚本可以自定义和增强网页的功能。它允许用户在网页上执行各种自动化任务,比如自动填写表单、移除广告、改变页面布局等。适用浏览器: Tampermonkey 适用于多数主流浏览…...
如何在Vue中添加事件监听器
在Vue中添加事件监听器主要有两种方式:在模板中直接添加和使用Vue实例的方法。以下将详细解释这两种方法。 1. 在模板中直接添加 在Vue的模板中,你可以直接在HTML元素上使用v-on指令(或其简写形式)来监听DOM事件,并在…...

软设之UML图中的用例图
UML图中用例图 用例图描述一组用例,参与者及它们之间的关系 关系包括: 包含关系,扩展关系,泛化关系 用例建模的流程: 识别参与者 合并需求获得用例 细化用例描述 调整用例模型...
弹性伸缩高性能计算服务一一黑石裸金属服务器
在电商、直播、游戏等业务场景中,对服务器的性能、安全性和稳定性要求尤为苛刻。黑石裸金属服务器作为一种创新的计算服务,以其独特的优势,满足了这些行业对高性能计算服务的迫切需求。本文将详细解析黑石裸金属服务器的优势,并在…...

欢乐钓鱼大师攻略:西沙群岛攻略,内置自动辅助云手机!
《欢乐钓鱼大师》是一款以钓鱼为主题的休闲游戏,玩家可以在虚拟的钓鱼世界中体验真实的钓鱼乐趣,并通过捕捉各种珍稀鱼类来提升自己的钓鱼技能和成就。在这篇攻略中,我们将重点介绍如何在西沙群岛区域有效地捕捉各种典藏鱼类,并提…...
Apipost接口测试工具的原理及应用详解(六)
本系列文章简介: 随着软件行业的快速发展,API(应用程序编程接口)作为不同软件组件之间通信的桥梁,其重要性日益凸显。API的质量直接关系到软件系统的稳定性、性能和用户体验。因此,对API进行严格的测试成为…...
矩阵的奇异值(Singular Values)
矩阵的奇异值(Singular Values)是奇异值分解(SVD)过程中得到的一组重要特征值。它们在许多应用中非常重要,如信号处理、数据压缩和统计学等。以下是对奇异值及其计算和性质的详细解释: 奇异值分解…...

清空flowable的表定义的相关表
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…...
Tailwind CSS 在vue里 的使用
在Vue项目中使用Tailwind CSS,你需要按照以下步骤操作: 安装Tailwind CSS npm包: npm install -D tailwindcss postcss autoprefixer 使用Tailwind CSS CLI工具创建配置文件: npx tailwindcss init -p 3.在tailwind.config.js中…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...

uniapp微信小程序视频实时流+pc端预览方案
方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度WebSocket图片帧定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐RTMP推流TRTC/即构SDK推流❌ 付费方案 (部分有免费额度&#x…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
Leetcode33( 搜索旋转排序数组)
题目表述 整数数组 nums 按升序排列,数组中的值 互不相同 。 在传递给函数之前,nums 在预先未知的某个下标 k(0 < k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...