软件测试之弱网测试
创作时间:
作者:
@小白创作中心
软件测试之弱网测试
引用
CSDN
1.
https://m.blog.csdn.net/weixin_46232820/article/details/144452482
弱网测试是在网络环境不佳(如网络带宽低、延迟高、丢包严重等)的情况下,对应用软件或系统进行的测试。其目的是验证软件或系统在这种不稳定网络环境中的性能、稳定性和可靠性,确保用户在各种网络条件下都能获得良好的使用体验。
一.弱网测试的简要介绍
弱网测试是在网络环境不佳(如网络带宽低、延迟高、丢包严重等)的情况下,对应用软件或系统进行的测试。
其目的是验证软件或系统在这种不稳定网络环境中的性能、稳定性和可靠性,确保用户在各种网络条件下都能获得良好的使用体验。
主要测试场景:
- 高流量事件:音视频交互、大文件上传等
- 高实时性服务:在线游戏、实时交易平台
主要测试阶段: - 功能测试之后:在软件或系统的基本功能得到验证之后,进行弱网测试可以确保软件或系统在各种网络条件下都能正常运行。
- 性能测试之前:在性能测试之前进行弱网测试可以发现并解决与网络相关的问题,确保在性能测试时不会因为网络问题而影响测试结果。
- 回归测试阶段:在每次版本更新或功能修改后,进行弱网测试可以确保新引入的功能或修改没有引入与网络相关的问题。
- 发布前:在软件或系统发布前进行弱网测试是最后一道防线,可以确保软件或系统在实际部署到用户环境中时能够稳定运行。
二.弱网测试的基本指标
- 1.上下行带宽
定义:指网络传输数据的速率,通常用Mbps或Kbps表示。
意义:带宽反映了网络的传输能力,是评估网络性能的重要指标。在弱网测试中,带宽的限制会直接影响数据的传输速度和效率。 - 2.丢包
定义:数据丢包个数等于发送的数据包数减去接收的数据包数,通常用丢包率来表示。
意义:丢包反映了网络的可靠性。在弱网环境下,由于网络不稳定或信号弱,数据包在传输过程中可能会丢失,导致数据不完整或传输失败。 - 3.时延
定义:数据包从发送开始到接收到该数据所耗费的时间,单位通常是毫秒(ms)。
意义:时延反映了网络的速度。在弱网测试中,时延的增加会导致用户感受到的网络延迟和卡顿。 - 4.抖动
定义:指时延的变化,即两个数据包时延的差值。
意义:抖动反映了网络的稳定性。在弱网环境下,由于网络波动或不稳定,时延可能会发生变化,导致用户感受到的网络速度不稳定。 - 5.乱序
定义:指接收到的数据包顺序和发送顺序不一致的次数。
意义:乱序反映了网络的稳定性。当乱序比较严重时,可能会导致数据包的丢失或重传,从而影响网络的性能和稳定性。然而,在实际测试中,由于乱序通常与丢包相伴而生,且乱序对网络性能的影响相对较小,因此一般会以丢包指标为主,忽略乱序指标。
不同网络的参考配置参数:
三.弱网测试的基本方法
1.实地测试
实地测试是通过在实际的网络环境中进行测试,以真实反映应用程序在弱网条件下的表现。
常见的实地测试场景包括:
- 电梯、楼梯间等信号较弱的地方。
- 地下车库、地铁等信号屏蔽严重的地方。
实地测试的优点是能够直接反映应用程序在实际使用中的表现,但其缺点是受限于工作环境等客观因素,可能无法全面覆盖所有弱网场景。
2.工具模拟
由于实地测试的局限性,使用工具模拟弱网环境成为了一种更为常见和灵活的测试方法。以下是一些常用的弱网模拟工具及其使用方法。
抓包工具:(适用于PC端和移动端) - Fiddler:作为代理服务器,设置延迟参数,模拟不同的网络情况,但主要支持延迟模拟。(应用层的延时模拟)
- Charles:作为代理服务器,支持延迟、丢包、带宽等弱网配置,但弱网配置项只支持HTTP/HTTPS。(网络层的丢包、延时模拟)
弱网测试工具:(适用于PC端) - Clumsy:专门针对弱网测试的工具,支持延迟、丢包、带宽等弱网配置。(网络层的丢包、延时模拟)
- Network Emulator Toolkit:专门针对弱网测试的工具,支持延迟、丢包、带宽等弱网配置。(链路层的丢包、延时模拟)
浏览器开发者工具:(适用于PC端和移动端网页) - DevTools:适用于浏览器网页的弱网模拟
交换机路由器:(适用于PC端和移动端) - 通过登录路由器内置的网址进行网速调整
Qnet弱网测试工具:(适用于Android设备) - 腾讯WeTest推出的一款针对移动应用的弱网测试工具
具体使用方法: - 1.Fiddler:
- 1.启动fiddler找到Rules—Customize Rules点击打开Fiddler ScriptEditor
- 2.在Fiddler script里搜索delay关键字,找到设置模拟延迟的代码,设置网络请求和响应延迟的时间(MS),点击保存
- 3.在Fiddler→Rules→Performance,勾选Simulate Modem Speed启动生效
设置参数:
request-trickle-delay 为上行延迟的时间,即请求延迟的时间;
response-trickle-delay 为下行延迟的时间,即响应延迟的时间; - 2.Charles:
- 1.点击Proxy-Throttle Settings,进入到配置页面
- 2.设置需要模拟限速的域名,不设置默认对所有网址都生效
勾选Enable Throttling-Only for selected hosts
点击add添加,选择协议、域名、端口号 - 3.设置弱网参数,保存
设置参数:
Throttle preset:截流预制(Charles提供了一些可选择的网络类型)
Bandwidth:带宽
Download:下载的速率
Upload:上传的速率
Utilisation:利用率。宽带利用率,默认100%
Round-trip Latency:请求往返延时。客户端向服务端发送请求到服务端返回响应给客户端的总时间
MTU:最大传输单元。数据传输时,tcp数据包的最大尺寸。一般采用默认即可
Reliability:可靠性。数据传输过程中,丢包的百分比
Stability:稳定性。数据传输过程中,网络抖动造成的不稳定性
unstable quality range:不稳定质量范围 - 3.Clumsy
1.可设置上行/下行限制,生效的ip/网段
2.设置弱网参数(提供了一些可选择的网络类型))
3.点击start生效
设置参数:
Lag:延迟,把请求缓存一段时间再发出,可以用来模拟网络延迟,最大3000ms
Drop:丢包,随机丢弃一些请求
Throttle:节流,把一小段时间内的请求拦截下来,再在同一时间发出去
Duplicate:重发,随机复制一些请求,与原请求一起发送
OutOfOrder:乱序,打乱请求的发送顺序
Tamper:篡改,随机修改小部分请求的内容 - 4.Network Emulator Toolkit
- 1.新建VirtualChannel,点击Configuration->New Channel;
- 2.再建一个过滤器Filter,Configuration->New Filter
All Network 是指所有网络;
IPV4、IPV6(本地IP(Local IP),或者远程IP(Remote IP)及子网掩码(IP Mask));
可以指定本地端口(Local Port)或远程端口(Remote Port)大小范围;
协议(Protocol),针对TCP\UDP协议;
可以选择网卡适配器(Adapaters),对适配器增删改; - 3.新建连接Link,Configration->New Link
- 4.设置UpStream和DownStream
- 5.保存并应用,点击start生效
设置参数:
loss:丢包(No Loss/Periodic loss/Random loss/Burst loss/G-E loss)
error:数据错误(网络传输过程中,包中一个或者多个字节出现Error)(No Error /Random error/G-E error)
Latency:延时
BW&Queue:带宽和队列
BgTraffic:背景流,有延时效果
Recorder:接收顺序
Disconnection:模拟周期性断开 - 5.浏览器开发者工具(chrome/edge)
- 1.打开Chrome开发工具
- 2.选择Network-No throttling下拉按钮
- 3.选择Add按钮,进入到自定义页面,点击Add custom profile增加配置文件按钮
- 4.设置弱网参数,保存
设置参数:
Download:下载速率
Upload中:上传速率
Latency:延迟时间
Packet Loss:丢包率
Packet Queue Length:数据包队列长度
Packet Reodering:乱序
四.弱网测试的一些关注点
弱网测试更关注软件或系统在网络不稳定时的行为,如数据重传、错误处理、用户反馈等,以确保软件或系统在各种网络条件下都能正常运行。
五.弱网测试的主要流程
- 1.制定测试指标和测试计划,编写测试用例
确定测试的重点区域,如视频播放、实时通信、文件上传下载、支付交易等
设定明确的测试指标,如加载时间、失败率、重试机制触发频率等 - 2.搭建环境,选择测试工具,进行测试
- 3.记录测试数据和日志信息:
测试表现:包括客户端表现、功能表现等
指标数据:如响应时间、数据丢失情况、重传次数等 - 4.分析结果,进行优化:
对测试数据进行深入分析,找出应用在网络波动下的问题和瓶颈
比如调整网络参数、优化代码、调整服务器配置等
热门推荐
构建有效的安全生产双控体系:管理与技术双重保障
梦,有何意义?
提升自动化测试脚本准确性:六大实用策略分享
键盘灯亮着但按键无效?11种实用解决方案帮你轻松应对
黄巢《题菊花》:他年我若为青帝,报与桃花一处开
学府社区:网格微项目,撬动社区蝶变新杠杆
网站制作奖励和奖励机制是怎样实现的
热电式脉冲型激光功率计:原理、应用与优势
8道经典药膳,助你春天吃出好气色
当一个男人问你喜欢他什么怎么回答
如何进行高效的供应链预测预警分析以提升应对能力?
戒烟之后没有烟瘾,还能偶尔再吸一支烟吗?不妨听听医生咋说
医生提醒:男性如果长期不抽烟,一段时间后,身体会出现4大变化
哪个品牌的眼药水适合治疗青少年假性近视
生物芯片材质分类及表面修饰
公司利润分配应遵循哪些原则
优化涂层吸波材料的涂布工艺以减少缺陷和气泡
锂电池涂布工艺缺陷分析与解决方案
高校教师退出机制,来了!
硬件应用的创新探索与未来发展趋势
经期的注意事项及饮食建议
图文讲解,什么是TN-C、TN-S、TT、IT供电系统?
破产法属于诉讼法吗?全面解析与分类探讨
猫糖尿病全方位指南:从治疗到护理
学校治理架构的核心组成部分是什么?
提升流动资金周转率的有效策略与方法
如何更好地应用人工智能
一篇Word论文的字体格式规范指南
肝郁脾虚锻炼方法有哪些
济南“共建花园”让居民享受绿色生活带来的幸福与美好