• 功能测试【测试用例模板、Bug模板、手机App测试】


    功能测试

    Day01 web项目环境与测试流程、业务流程测试

    课程目标
    能独立编写电商项目7个核心业务模块的用例
    根据测试流程的6个步骤能独立对所有项目实施功能测试

    今日目标
    能说出web项目环境的组成
    能说出tpshop商城项目业务的操作步骤(下单业务、发货业务、退换货业务、订单查询业务、会员管理业
    务、商品管理业务)
    能说出测试流程的6个步骤和作用
    能根据测试流程6个步骤独立完成测试(下单业务、发货业务、评论业务)

    一、【了解】web项目环境说明

    在这里插入图片描述

    1.1 环境的定义:项目运行所需要的所有的软件和硬件组合

    1.2 环境(服务器)的组成:操作系统+数据库+web应用程序+项目代码

    1.3 面试题:你们公司有几套环境?

    测试环境:专门提供给测试人员使用
    开发环境:开发人员使用
    生产环境:提供给用户
    预生产环境:设置和数据是一样.

    注意:
    情况一:2种环境, 测试环境+生产环境; 如何解决开发和测试进度冲突问题
    答:区分开发周和测试周;开发工作时(开发新功能)不测试,测试工作时开发不进新代码.
    情况二:3种环境,开发环境+测试环境+生产环境

    二、【了解】熟悉商城项目

    信息来源:
    新项目:需求文档+产品经理
    已经存在的项目: 文档(需求文档\使用说明书\测试用例) 人(测试老员工\产品经理\开发) 项目软件
    熟悉的思路:用户 + 用户如何使用
    熟悉标准:核心业务 + 核心功能模块

    用户是谁?
    用户怎么用?
    哪个功能缺失会导致用户无法正常使用?

    2.1 商城项目的核心业务:

    下单业务(登录–搜索-----加入购物车-----下单-----支付)
    发货业务(登录----确认订单----填单号)
    售后业务(用户登录----发起申请—商家登录----商家确认申请----用户退货----商家确认收货—商家打款)
    查询订单(用户登录----我的页面----我的订单)

    2.2 商城项目的核心功能模块:

    注册
    登录
    购物车
    搜索
    轮播图
    评论
    抢购

    三、【重点】测试流程的应用 ★

    流程的作用:让测试工作有条不紊的开展
    在这里插入图片描述

    3.1 需求评审

    前提:提前阅读需求文档,记录疑惑点
    目的:知道有什么功能,规则是什么,最终各部门理解一致.

    3.2 计划编写

    测什么
    怎么测
    谁来测
    重点关注
    准入标准:研发提测标准,什么时候可以开始测试
    业务能跑通:P0
    准出标准:什么时候结束测试
    数据化:用例(100%) \缺陷(解决率:S0 100%,S1:100% S2\S3 :95%)

    3.3 设计用例

    先设计业务用例,后设计功能模块用例

    3.4 用例执行

    按优先级(推荐)
    前提:写用例的时候标注清楚优先级并且明确优先级的定义
    P0:最高级别.
    按顺序执行

    3.5 缺陷管理

    提交时间:用例执行失败的第一时间
    注意事项:
    唯一性
    可复现(明确复现步骤\问题发生时间\日志截图)
    注明版本号

    3.6 测试报告

    四、【掌握】商城项目测试(业务流程)

    方法:流程图法
    如何编写用例:找路径;从开始到结束共有多少条路就有多少条用例.

    4.1 发货业务(参考课堂用例)

    在这里插入图片描述

    4.2 评论业务(参考课堂用例)

    在这里插入图片描述
    用例模板
    在这里插入图片描述
    在这里插入图片描述

    Bug模板
    在这里插入图片描述
    在这里插入图片描述

    tpshop商城

    在这里插入图片描述

    总结

    在这里插入图片描述

    Day02 web项目业务测试、轮播图、注册、登录模块测试

    能独立完成订单业务测试(退货业务、换货业务、订单查询业务、会员管理业务、商品管理业务)
    能独立完成单模块测试(轮播图、注册、登录)

    在这里插入图片描述

    一、商城项目测试(业务流程)

    在这里插入图片描述

    二、商城项目单模块测试

    如何编写用例
    先测后台 后测前台

    2.1 轮播图

    1. 需求分析
      位置:后台–页面–广告管理—广告列表(搜索index页面增加广告位2)
      操作完成后需要点击admin—更新缓存,前台页面刷新生效
      在这里插入图片描述

    2. 拆解测试点
      在这里插入图片描述
      在这里插入图片描述

    Day03 抢购业务测试

    测试用例书写样例:模块-模块-正向 & 反向 ★

    注册和注册用例是不一样的测试用例方向

    在这里插入图片描述
    在这里插入图片描述

    Day04-web项目购物车模块测试

    在这里插入图片描述

    Day05-web项目抓包操作与测试报告

    能操作抓包工具抓取http请求和响应的数据包 能操作抓包工具进行弱网测试 能使用抓包工具绕过页面限制进行测试
    能根据测试报告模板编写tpshop测试报告

    一 网络相关知识介绍

    1.1 请求
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    二 抓包工具的应用

    在这里插入图片描述
    在这里插入图片描述

    弱网测试

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    总结

    在这里插入图片描述

    Day06 手工课程第六天(APP)

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    一、熟悉APP项目

    信息来源:
    新项目: 需求文档 也可以问产品经理
    已存在的项目: 文档(用例\需求文档\用户说明书) 人(测试老员工\ 产品经理\开发) 项目软件
    思路:
    用户是谁,用户怎么用?
    标准
    核心业务: 用户使用的过程
    核心功能: 功能缺失会导致用户无法使用(用户)

    • 核心业务
      订单查询
      售后流程
      下单流程
      会员管理
      商品管理
      评价流程
    • 核心功能
      登录
      注册
      购物车
      支付
      评论
      抢购
      添加商品
      轮播图
      搜索
      在这里插入图片描述

    二、app测试和web测试的区别

    注册方面:数据同步问题(app注册 web能否登录)
    登录方面:多点登录数据同步问题

    在这里插入图片描述

    Day07 手工课程第七天(app)

    能够实现APP的专项测试(兼容性、安装卸载升级、干扰测试(交叉)、Push推送、用户体验)
    能使用solopi完成APP的性能测试(CPU、内存、流畅度、流量、电量、启动速度、稳定性) 能独立说出常用的
    APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志) 能使用命令测试APP客户端的稳定性
    (monkey)

    1 APP专项测试 ★

    在这里插入图片描述

    一、兼容性

    手机型号不同品牌商,不同机型(华为P30)
    操作系统版本:

    安卓:根据在线统计平台数据获取
    iOS

    分辨率
    屏幕

    尺寸:5.1. 5.5 4.7

    类型: 刘海屏 水滴屏 曲面屏 折叠屏
    网络: 移动数据 和 WiFi
    应用兼容性
    手机硬件: 手机上的物理按键(音量键 home键 电源键)
    外部硬件: 蓝牙设备 有线设备
    操作系统设置: wlan 时间 定位
    其他APP: 具有后台播放功能的APP,例如音乐

    二、安装

    正常场景
    从不同渠道安装
    不同操作系统安装
    不同的路径安装(手机\SD卡)
    异常场景
    中断安装(关机 断网),中断之后能否恢复安装
    存储空间不足安装
    安装时手动取消或暂停.恢复之后是否能正常安装
    正在运行时能否覆盖安装(后台运行\前台运行:需要考虑是否会打断用户操作)
    低版本覆盖高版本
    卸载后再安装(卸载后是否会清除数据)

    三、卸载

    正常卸载(手机卸载\使用第三方软件卸载)
    运行时卸载(后台运行)
    取消卸载(第三方软件\二次弹窗确认时取消)
    中断卸载(关机)
    卸载后数据残留(给用户提示确认,如果用户同意残留,可以保留数据;如果用户拒绝残留,不可以保留数据)(如果不
    做任何确认提示,默认需要清空残留数据)

    四、升级

    从临近版本升级(上一次发布的版本)
    跨版本升级(历史发布过的版本)
    当前版本是n: n-2 升级n
    从不同渠道升级
    升级成功提醒(红点提示\消息提示)
    升级前是否提醒(消息推送提示升级\强制升级不提醒)
    自己自研升级系统(日常升级\强制升级)
    使用第三方(日常升级\强制升级)
    当前版本是否具有升级能力(n升级n+1,升级规则)

    五、干扰测试(交叉事件测试)

    接打电话
    收发短信
    音视频电话
    查看应用推送(其他软件的推送\当前软件的推送)
    连接蓝牙设备
    接收文件弹窗提醒(确认接收\拒绝接收)
    旋转屏幕
    切换网络(移动数据和WiFi自动切换)
    手机自带应用(打开相机\手电筒\计算器)
    低电提醒
    插拔充电器(充电动画)

    六、Push推送

    在这里插入图片描述

    七、用户体验

    UI界面测试(原型图设计是否合理)
    横竖屏测试(内容展示是否异常)
    易用性测试(空数据提示\菜单层次是否过深\业务操作步骤是否过多\按钮位置是否适中)
    手机上的辅助功能(色盲模式\盲人模式)

    八、性能测试工具 SoloPi ★

    • 能使用SoloPi完成APP的性能测试(CPU、内存、流畅度、流量、电量、启动速度、稳定性)
    • 能独立说出常用的APP命令格式(内存、CPU、安装、卸载、流量、启动时间、抓取日志)
    • 能使用命令测试APP客户端的稳定性(monkey)

    SoloPi:是一个无线化、非侵入式的 Android 自动化工具,具备录制回放、性能测试等功能。

    作用如下:
    基础性能测试:能够记录待测应用的各项指标,可以在悬浮窗中观察实时更新的数据,也可以对性能数据进行录制,在录制结束后查看图表;同时,还支持性能加压,能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。

    录制回放:通过SoloPi执行用例步骤,能够将用户的操作记录下来,支持在各个设备上进行回放,这一切都能够在手机上独立完成。
    一机多控:支持通过操作一台主机设备来控制多台从机设备,不需要在各个设备上分别进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。

    Solopi的使用

    在这里插入图片描述
    点击开始监控,随后打开被测APP应用,开始测试
    在这里插入图片描述
    查看数据采集结果
    在这里插入图片描述

    在这里插入图片描述

    性能:是衡量APP质量的一个重要指标 ★

    l 常见的性能指标有:内存,CPU,流量,电量,启动速度,流畅度、稳定性等
    性能测试关注点:
    Ø APP使用时对CPU、内存的占用情况;
    Ø APP使用时是否流畅等
    Ø APP使用时,电量流量的消耗情况;
    Ø APP的启动时间是否过长;
    Ø APP是否能长时间稳定运行

    一、内存

    1.1-性能内存基础知识 —— 内存监控指标
    每个程序运行时都需要将代码和数据放入内存中,内存不足则程序无法正常运行。
    SoloPi工具提供了两个内存的监控指标:PSS和Private dirty
    Private dirty(私有内存):
    l 进程独占内存,也就是进程销毁时可以回收的内存容量。
    PSS(实际使用内存):
    l 将跨进程共享页也加入进来, 进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存

    在这里插入图片描述

    内存问题的现象

    常见的内存问题:

    内存泄漏:

    内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

    内存溢出:

    内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory
    Ø memory leak会最终会导致out of memory!
    在这里插入图片描述

    内存问题曲线

    内存泄漏:内存持续增长 就是 内存泄漏
    内存溢出:直接变为0
    在这里插入图片描述

    二、CPU

    在这里插入图片描述

    性能CPU基础知识 —— CPU时间片
    每个程序运行都需要占用CPU,那么单CPU的机器是如何同时运行多个程序的?

    l 时间片即CPU分配给各个程序的时间,每个程序被分配一个时间段,称作它的时间片,即该程序允许运行的时间

    在这里插入图片描述
    SoloPi工具提供了两个CPU的监控指标:

    • 全局占用CPU和应用进程CPU

    • 全局占用CPU
      l 整机的CPU使用水平,即当前手机的CPU整体使用率。
      l 计算公式:
      Ø 在 Linux 系统下,CPU 利用率分为用户态、系统态和空闲态
      Ø 用户态:表示 CPU 处于应用程序执行的时间
      Ø 系统态:表示系统内核执行的时间
      Ø 空闲态:表示空闲系统进程执行的时间。
      Ø CPU 使用率 = CPU 执行非系统空闲进程时间 / CPU 总的执行时间

    • 应用进程CPU
      l 表示自开机以来,应用程序消耗的CPU时间片的总数

    CPU出现问题产生的影响:
    l CPU使用长时间处于90%以上
    l 手机发热、耗电量增加
    l 反应变慢、引起ANR(Application Not Responding)

    三、流量消耗

    手机上网时消耗的流量需要收费的,因此流量测试是app性能测试中比较重要的一项。
    流量(指网络流量):
    l 用手机打开APP进行互联网操作时,会和服务器之间交换数据,手机流量就是指这些数据的总大小。
    l 数据报文是包含手机上下行的报文

    在这里插入图片描述

    SoloPi工具提供了流畅度的监控指标:网络
    网络:
    l 即网络流量,可以自动统计APP每秒上行和下行的报文大小

    常用的流量测试方法:
    l 统计测试法
    Ø 利用工具获取应用程序收发的数据报文,统计出对应的流量

    面试题:打开页面速度过慢,如何优化?

    流量优化方法:
    Ø 数据的压缩
    Ø 不同数据格式的采用
    Ø 控制访问的频次
    Ø 只获取必要的数据
    Ø 缓存机制
    Ø 针对不同的网络类型设置不同的访问策略

    四、电量

    在这里插入图片描述

    常见的耗电量大的场景:

    l 定位,尤其是调用 GPS 定位。
    l 网络传输,尤其是非 Wi-Fi 环境。
    l 屏幕亮度
    l CPU 运算:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;
    l wake_locker(锁屏-解锁)时间和次数

    五、启动速度

    APP启动测试:测试从启动app到主页面显示的时间,打开一个app等待的时间过长时就会有一种较差的体验
    APP启动:分为冷启动,热启动。

    冷启动:

    l 指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动。

    热启动:

    l 指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动。

    启动速度测试方法
    格式:adb shell am start -W 包名/Activity名
    l TP商城单商户包名/Activity名为:
    com.tpshop.malls/com.tpshop.malls.SplashActivity
    l 该命令获取3个关键指标:
    Ø ThisTime: 当前activity的时间。
    Ø TotalTime:应用的启动时间,包括创建进程、App初始化、
    Activity初始化到界面显示。
    Ø WaitTime:前一个应用activity pause的时间+TotalTime
    

    六、流畅度

    想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度
    l 想达到流畅的效果,至少需要每秒24帧
    l 60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒

    七、稳定性

    稳定性测试:通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常。如闪退crash、无响应ANR等

    稳定性测试工具——Monkey:

    l Monkey是一个命令行工具,是由安卓官方提供的。
    l 测试人员可以通过Monkey来模拟用户的触摸、点击、滑动以及系统按键等操作(操作事件都是随机的),从而实现对
    APP压力的测试和稳定性测试。(具体Monkey的使用在后续app自动化章节介绍)
    l 开发人员结合monkey 打印的日志和系统打印的日志,修改测试中出现的问题。

    常用的APP命令介绍

    在这里插入图片描述

    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的包名

    在这里插入图片描述

    8. 获取包名

    获取手机里所有的包名: adb shell pm list packages
    获取手机里所有的系统应用的包名: adb shell pm list packages -s
    获取手机里所有第三方软件的包名: adb shell pm list packages -3

    9. 获取当前窗口(注意大小写区分)

    Windows: adb shell dumpsys window | findstr mCurrentFocus
    Mac/linux: adb shell dumpsys window | grep mCurrentFocus

    在这里插入图片描述

    10. 清除缓存: adb shell pm clear 包名

    11. 启动/停止应用

    在这里插入图片描述

    12. 获取手机日志: adb logcat > 本地文件

    注意:执行命令后,手机上操作复现步骤
    在这里插入图片描述

    13. 获取启动时间: adb shell am start -W 包名/activity名

    在这里插入图片描述

    14. 获取内存信息: adb shell dumpsys meminfo 包名

    在这里插入图片描述

    15. 获取CPU:

    1. adb shell dumpsys cpuinfo (查看当前CPU占用情况)
    2. adb shell top -s 9(代表CPU)

    在这里插入图片描述

    16. 获取流量消耗值

    1.获取userId : adb shell dumpsys package 包名 | findstr userId
    2.获取上行: adb shell cat proc/uid_stat/userId/tcp_snd
    3.获取下行:adb shell cat proc/uid_stat/userId/tcp_rcv
    注意:cat后的路径是固定; userId中的’i"是大写; package后不加s

    在这里插入图片描述

    17. 稳定性测试(Monkey)

    1. adb shell monkey -p 包名 数字 -v >本地文件
    2. -v -v -v :最高级别日志
    3. 常用命令:adb shell monkey -p 包名 10000 -v -v -v --throttle 500 > 本地文件

    手机抓包操作介绍

    Fiddler抓取手机包

    一.对PC(笔记本)参数进行配置

    1.配置fiddler允许监听到https(fiddler默认只抓取http格式的)

    打开Fiddler菜单项Tools->TelerikFiddler Options->HTTPS,

    勾选CaptureHTTPS CONNECTs,点击Actions,

    勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行),见图:

    1639875468633

    2.配置fiddler允许远程连接

    上一步窗口中点击Tools->TelerikFiddler Options->Connections,勾选allow remote computers to connect,默认监听端口为8888(下图Fiddler listens on port就是端口号),若端口被占用可以设置成其他的,配置好后要重新启动fiddler,如下图:

    1639875506037

    点击完成之后,PC端配置完成,接下来开始配置手机端,以安卓为例,iOS方法同安卓;

    二.对手机端进行参数配置

    首先要保证手机和电脑都处于同一个网络;

    然后要知道电脑的ip地址(当然这个电脑是安装fiddler的电脑),电脑ip地址可通过cmd,输入ipconfig查询,或网络共享中ipv4找到,我的是192.168.103.53,

    再者要知道fiddler的端口号,Tools->TelerikFiddler Options->Connections,port中值就是端口号,一般默认为8888;接下来开始操作手机;

    1.第一步:手机和电脑连接同一个网络,打开手机浏览器,输入http://ip:端口号,点击前往;见下图:

    在这里插入图片描述

    2.第二步:前往之后会跳转到证书下载页,见下图:

    点击FiddlerRootcertificate下载证书;
    在这里插入图片描述

    3.第三步:点击下载之后,安装证书并起个名字,随便写就行,点击确定;

    在这里插入图片描述

    4.第四步:要求设置一个手机密码,自己设置一个,记住密码就行,最后不用了去系统-安全-密码中去掉即可;

    在这里插入图片描述

    5.第五步:更改手机无线网的代理
         手机系统设置-无线网-点击高级,代理选择手动,主机名就是fiddler的电脑ip地址,端口号,就是fiddler的端口号,与浏览器中ip:端口号保持一致,点击确定即可,
    

    在这里插入图片描述

    6.操作手机,电脑fiddler中会显示一些http信息,成功;

    Charles手机抓包

    一、Charles设置

    1、让电脑和手机处于同一个局域网下,即电脑和手机连接同一个WiFi【电脑开WiFi给手机连接也可以】;

    2、打开Charles,点击菜单栏中Proxy –> Proxy Settings···,设置代理端口是8888【默认】,可以不修改端口号, 点击OK::

    img

    图1

    img

    图2

    3、在cmd中ipconfig可以看到电脑的IP:

    img

    图3

    4、如果要对HTTPS抓包的话,还需要设置Proxy -> SSL Proxying Settings -> SSL Proxying -> Add,添加所有的域名和端口:

    img

    图4

    5、点击菜单栏Help->SSL Proxying->install Charles Root Certificates on a Mobile Device or Remote Browser,可以看到手机端安装证书提示:

    img

    图5

    img

    图6

    二、手机设置

    1、根据以上提示,打开手机的WiFi设置,连接和电脑同一个WiFi【或者连接电脑开启的热点】,设置代理IP与端口(代理IP就是上图的IP,端口就是Charles的代理端口8888);

    2、手机浏览器访问网页,输入chls.pro/ssl,出现证书安装页面;

    3、如果是苹果手机,点击安装后完成,在设置里面的通用,关于手机,信任证书:

    img

    图7

    4、如果是Android手机,点击下载,然后在手机设置的安全里面,安装证书:

    img

    图8

    三、手机抓包

    1、以上设置之后,打开手机相关应用,就可以抓包了:

    img

    图9

    img

    图10

  • 相关阅读:
    使用aggregation API扩展你的kubernetes API
    集成学习(随机森林)
    力扣2401.最长优雅子数组
    修改iframe内部元素的样式
    Cesium快速上手7-3dtiles加载
    磐基2.0部署apisix集群
    [Linux打怪升级之路]-缓冲区
    Git详细介绍与SSH链接远程仓库
    k8s安全机制
    项目实战第十七讲:使用异步编排优化商品详情页(对外流量最大)
  • 原文地址:https://blog.csdn.net/m0_63571404/article/details/139859736