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中…...

【人工智能】--强化学习(2.0)
个人主页:欢迎来到 Papicatch的博客 课设专栏 :学生成绩管理系统 专业知识专栏: 专业知识 文章目录 🍉强化学习与有监督学习的区别 🍈数据特点 🍈学习目标 🍈反馈机制 🍈策略…...

跟着峰哥学java 微信小程序 第二天 封装ES7 + 后端工作
1.前端 1.1使用promise封装 使用promise封装以至于在图片路径 统一路径中修改 //封装统一请求域名 const baseUrl "http://localhost:8080"; //封装后需导出 export const getBaseUrl()>{return baseUrl; } 导入外来资源 初始化数据 设置数据 将处理后的数据…...

QT学习(6)——QT中的定时器事件,两种实现方式;事件的分发event,事件过滤器
目录 引出定时器事件QTimerEventQTimer 事件的分发事件过滤器 总结QT中的鼠标事件定义QLable的鼠标进入离开事件提升为myLabel重写QLabel的函数鼠标的事件鼠标的左中右键枚举鼠标多事件获取和鼠标移动鼠标追踪 QT中的信号和槽自定义信号和槽1.自定义信号2.自定义槽3.建立连接4.…...

ASP.NET Core 6.0 使用 Action过滤器
Action过滤器 在ASP.NET Core中,Action过滤器用于在执行Action方法之前或之后执行逻辑。你可以创建自定义的Action过滤器来实现这一点。 继承 ActionFilterAttribute 类: [TypeFilter(typeof(CustomAllActionResultFilterAttribute))]public IActionRe…...

Java 并发集合:CopyOnWrite 写时复制集合介绍
大家好,我是栗筝i,这篇文章是我的 “栗筝i 的 Java 技术栈” 专栏的第 016 篇文章,在 “栗筝i 的 Java 技术栈” 这个专栏中我会持续为大家更新 Java 技术相关全套技术栈内容。专栏的主要目标是已经有一定 Java 开发经验,并希望进…...

Linux 查看修改系统时间| date -s
Linux 查看修改系统时间 date 命令的介绍date基本语法date命令使用示例显示指定条件的时间设置指定条件的时间时间加减操作显示文件最后修改时间显示 UTC 时间 备注 date 命令的介绍 date 命令在 Linux/Unix 系统上的使用。 date 命令可以用于查看和设置系统时间。 date基本语…...

数据库MySQL学习笔记
数据库MySQL学习笔记 主要记录常见的MySQL语句学习过程,增删改查。 -- 显示所有数据库 SHOW DATABASES;-- 创建新数据库 CREATE DATABASE mydatabase;-- 使用数据库 USE mydatabase;-- 显示当前数据库中的所有表 SHOW TABLES;-- 创建新表 CREATE TABLE users (id …...

四端口千兆以太网交换机与 SFP 扩展功能
在数字化时代,网络基础设施的重要性日益凸显,它是企业和个人取得成功的关键支撑。配备 SFP 插槽的 4 端口千兆以太网交换机提供了一种灵活且可扩展的网络解决方案,能够应对快速的数据传输、低延迟以及不断增长的带宽需求。本篇文章深入探讨了…...

Renderless 思想正在影响前端开发
本文由前端小伙伴方长_beezen 原创。欢迎大家踊跃投稿。 原文链接:https://juejin.cn/post/7385752495535472655 前言 截止到 2024 年,跨端应用开发所需要考虑的兼容性,已经涵盖了框架、平台和设备类型等多个方面,例如࿱…...

maven 打包执行配置(对maven引用的包或者丢进去的包都包含在里面)打成jar包
一 、springboot jar包 maven的pom文件 1 在resources下放了一些文件想打进去jar包 2 在lib下放了其他稀奇古怪jar包文件想打进去jar包 编写如下引入jar <build><!-- 打包名称 --><finalName>${project.artifactId}</finalName><resources><…...