通用技术 弱网测试

Yeon9537 · 2024年09月26日 · 最后由 5t5 回复于 2024年10月08日 · 4003 次阅读

什么是弱网测试

  1. 弱网测试主要就是对带宽、丢包、延时等进行模拟弱网环境的测试。(模拟在网络质量差的情况下导致网络丢包,抖动和延迟现象而引发的问题)
  2. 模拟不同的协议、不同的制式、不同的速率 异常网络环境进行健壮性测试,网页的响应时间、页面呈现是否完整一致,页面显示逻辑优化、重试机制加入等,

网络性能好坏的几个指标:
带宽:单位时间内传输的数据量,单位通常是:每秒比特数:bps。带宽反映了网络的传输能力,越大越好。
丢包:数据丢包个数=发送的数据包数 - 接收的数据包数。丢包反映了网络可靠性,越小越好。
时延:数据包从发送开始到接收到该数据,所耗费的时间,单位通常是 ms。时延反映了网络的速度,越小越好。
抖动:指时延的变化,即两个数据包时延的差值。抖动反映了网络的稳定性,越小越好。
乱序:指接收到的数据包顺序和发送顺序不一致的次数。乱序反映了网络的稳定性,越小越好。当乱序比较严重的时候,丢包也会比较严重,所以一般都以丢包指标为主,忽略乱序指标。

为什么需要做弱网测试

  1. 用户体验:
    1.1 使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易损失用户体验, 弱网测试是对网络不稳定或网络较差情况下,用户体验的重要保证,弱网状态下,产品的正确的表现与适当的引导,可以给予用户体验一部分保障,
    1.2 弱网测试作为健壮性测试的重要部分,同样也可以对提升产品的稳定性,提高用户体验做贡献,

  2. 非正常情况下,出现 bug 概率会增加
    提前预知在较差网络环境下的表现,以提前发现问题,进行针对性优化,服务面对异常的网络环境的健壮性不够,导致会出现一些意想不到的 bug。

  3. 弱网状态下数据的安全与稳定性是产品重要的指标,甚至可能可以对性能评估方面做一定的辅助作用。

  4. 常见问题:
    4.1 在请求数据的时候,由于网络较差出现有些接口请求失败导致显示上出现问题,
    4.2 在 update,insert 操作的接口的时候,出现重复提交数据, 而数据库没有做拦截出现重复的数据导致的问题,
    4.3 直播类网络差会导致绿屏,花屏,条纹,丢帧, 丢音等问题,
    4.4 APP 闪退等

弱网测试的衡量指标
衡量指标要根据实际使用环境来确定, 具体场景具体分析;

  1. 响应时间是否可接受,
  2. 数据的一致性和准确性,界面显示的正确性,
  3. 异常网络状态下的各种处理机制合理性 (超时,重连,容错,异常信息),
  4. 安全性 - 是否 dns 劫持等,
  5. 大流量 - 弱网下载或更新等.

弱网测试关注点及常用工具

Linux TC 工具介绍

linux TC 弱网环境搭建

linux TC 弱网的测试策略 (注意点)

共收到 3 条回复 时间 点赞

我理解的:对于服务使用方而言弱网导致的后果有两个:超时、延迟但未超时。
所以平时测试也只测这两种场景。请教下基于什么考虑要测丢包、乱序、延时波动这些场景(这应该是网络层要解决的事,应用层应该不需要测)?

个人现在很不提倡做弱网测试,
一是现在的网络基本上都能覆盖到,原来的地下停车场、电梯等环境网络也不差。
二是现在大家对于弱网的接受程度都有了比较清晰的认知,网络不好的情况下只会吐槽网络而不是 APP。
三是网络不好的情况下,应用本身也解决不了太多问题。

所以,在弱网的情况下,这个 APP 是非用不可么?

以前要做弱网测试,纯粹是因为当时的网络在哪都不给力,4G 之后,基本上就不做这个了。除非产品本身是网络底层相关的。

社会菜鸡 回复

较为复杂的网络交互场景或者说优化场景;
举例:
1、优化 body 结构以及大小;
2、对于 udp 做冗余策略,多发包策略;
前者可能就需要针对延时去作文章,后者可能需要对于丢包去作文章,查看当前网络条件下的表现。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册