Fiddler工具 — 17.Fiddler进行弱网测试

1、什么是弱网测试

从测试角度来说,需要额外关注的场景远不止断网、网络故障等情况,还需要关注弱网情况下测试。

弱网测试属于健壮性测试的内容。随着国内移动端迅猛发展,大大增加用户碎片化使用使用APP的。想象一下,用户在地铁里,甚至是电梯,车库等场景使用APP,我们就需要针对这些场景的弱网环境下,验证出现丢包、延时软件的处理机制,避免因用户体验不友好造成用户的流失。

如果你想学习fiddler抓包,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的fiddler抓包教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386   

2024备战金三银四,最新版fiddler抓包实战教程!_哔哩哔哩_bilibili2024备战金三银四,最新版fiddler抓包实战教程!共计8条视频,包括:1、fiddler和F12抓包对比、2、Fiddler工作原理、3、配置证书抓取https包等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV19j411J7oc/?spm_id_from=333.337.search-card.all.click

2、弱网环境的影响

  1. 用户体验。

    用户使用过程中,弱网的高延迟和高丢包,在实时性要求非常高的场景,容易伤害用户体验。

  2. 非正常情况下,出现bug概率会增加。

    在解决日常的支持需求中,经常会遇到用户反馈一些无法简单复现的bug,有很大一部分的bug是由于用户自身的网络环境波动,或者是本身网络环境就较为恶劣,而服务在面对这些恶劣的网络环境的健壮性不够,导致会出现一些意想不到的bug。

3、弱网环境测试场景

  1. 场景:测试弱网环境下某个操作响应时间

    原因:用户对等待时间容忍度低,若弱网环境加载超过5s,用户很容易kill应用后再次进入应用。

    测试点:性能测试中,加入弱网环境测试点,检测各个场景网络请求的 API 消耗时间(此处可以放入性能测试中,做为衡量软件性能好坏的指标)。

  2. 场景:测试弱网环境下直至超时,UI界面友好度和APP是否稳定。

    原因:容错机制主要是考虑弱网情况下带来的不稳定,常见的问题是:loading超时导致ANR(无响应)或者crash宕机。

    测试点:弱网环境直至超时,判定为断网状态,UI界面和提示,友好且理解无歧义。

  3. 场景:测试断网后环境下,是否自动重发请求。

    原因:不同模块,开发对请求处理不同。测试前可了解,代码是否支持自动重复请求,自动重发请求的频率是什么?

    测试点:断网后恢复网络,是否堆积网络请求(目前来说理财模块,当10s左右无返回,则会重发请求),此时请求和返回正常情况下,是否出现异常情况。比如一次支付操作,断网后堆积多个支付请求,恢复网络后因堆积多个支付请求,是否完成多次支付。

    ps:断网后恢复网络,考虑APP进行操作目的是否对伤害用户体验,通过哪种手段可以达到操作目的,同时用户体验无感或者低伤害。

还有很多弱网测试的场景,就不一一列举了。

4、使用Fiddler进行弱网测试

(1)Fiddler模拟弱网环境

Fiddler模拟弱网环境是非常简单的,操作如下:

Rules菜单 —> Performance —> 勾选Simulate Modem Speeds

勾选之后访问网站会发现网络慢了很多,不需要进行重启Fiddler。

(2)设置弱网的参数

菜单Rules —> Cutomize Rules...,来打开CustomRules.js文件。

在文件中搜索关键字m_SimulateModem

让我们来分析一下这几行代码:

if (m_SimulateModem) {
            // Delay sends by 300ms per KB uploaded.
            oSession["request-trickle-delay"] = "300"; 
            // Delay receives by 150ms per KB downloaded.
            oSession["response-trickle-delay"] = "150"; 
        }

 

  • m_SimulateModem:表示一个开关flag。

    当Rules菜单 —> Performance —> Simulate Modem Speeds是勾选状态,则flag=true,就进入这段代码,开启弱网。如果Simulate Modem Speeds不是勾选状态,则反之。

  • oSession["request-trickle-delay"] = "300";表示限制上传速度。

    注释说的也很明白:上传1KB内容需要300ms,转化一下上传速度:1Kb/0.3s = 3.3KB/s,也就是说网络上行速度只有3.3KB/S

  • oSession["response-trickle-delay"] = "150";表示限制下载速度。

    说明:下载1KB内容需要150ms,转化后的下载速度:1KB/0.15s=6.6KB/s,也就是说网络下载速度只有6.6KB/S

  • 总结:我们就修改最后的数据就可以,数值越大网络越慢。

(3)进行弱网测试对比

1)先用正常的网速发送请求

例如方位:http://test.lemonban.com/ningmengban/app/login/login.html

抓取结果如下:

2)开启弱网环境发送请求

Rules菜单 —> Performance —> 勾选Simulate Modem Speeds

 

可以看到比正常网速发送请求慢了很多。我这里使用的是默认配置,如果需要调整弱网的程度,可以自行调整弱网参数。

(4)恢复设置

完成测试之后,需要再次执行:Rules菜单 —> Performance —> 勾选Simulate Modem Speeds,关闭弱网模拟。

5、补充:TimeTaken/ms列配置

TimeTaken/ms列是计算完成请求的用时。

配置方法:

Rules菜单 —> Custome Rules,搜索class Handlers

加在class Handlers里面添加,如下代码:

//左侧信息会显示时间
public static BindUIColumn("TimeTaken/ms", 120)
function TimeTaken(oS: Session):String{
    var sResult = "0";
    //获得时间戳的ms值
    var t1_ms = oS.Timers.ClientBeginResponse.ToUniversalTime().Millisecond;
    //获得时间戳的minute值
    var t1_m = oS.Timers.ClientBeginResponse.ToUniversalTime().Minute;
    //获得时间戳的second值
    var t1_s = oS.Timers.ClientBeginResponse.ToUniversalTime().Second;
    var t1 = t1_m*60*1000 + t1_s*1000 + t1_ms ;

    var t2_ms = oS.Timers.ClientDoneRequest.ToUniversalTime().Millisecond;
    var t2_m = oS.Timers.ClientDoneRequest.ToUniversalTime().Minute;
    var t2_s = oS.Timers.ClientDoneRequest.ToUniversalTime().Second;
    var t2 = t2_m*60*1000 + t2_s*1000 + t2_ms ;

    if(t1 >= t2){
        var t3 =  t1 - t2;
        sResult = t3.toString();
    }
    return sResult;
}

 提示:不想配置TimeTaken/ms列也可以,在Statistics界面进行查看也行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/403087.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

leetcode hot100 完全平方数

本题中,是给一个整数n,让用完全平方数凑出这个整数,注意,题中给了n的范围,是大于等于1的,也就是说,dp[0]我们可以先不考虑。 整个问题可以抽象成完全背包问题的变形形式,物品就是这…

web前端安全性——CSRF跨站请求伪造

承接上篇讲述的XSS跨站脚本攻击 跨站请求伪造(CSRF) 1、概念 CSRF(Cross-site request forgery) 跨站请求伪造:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注…

三十年一个大轮回!日股突破“泡沫时期”历史高点

2月22日周四,英伟达四季报业绩超预期,而且本季度业绩指引非常乐观,提振美股股指期货并成为芯片股和AI概念股情绪的重要催化剂。今日亚洲芯片股和AI股起飞,日本在芯片股的带动下突破1989年泡沫时期以来的历史最高收盘价。 美股方面…

Rust介绍与开发环境搭建

安装rust rust 安装官方指南:[HTPS][3W].rust-lang.org/tools/install (自己替换 HTPS,3W) Linux或者Macbook上安装rust 打开终端并输入下面命令: #因审核问题下面链接需要替换一下 HTPS->httpscurl --tlsv1.2 [HTPS]://s…

好用的UI自动化测试平台推荐

随着软件行业的不断发展,建立一个完善的自动化测试体系变得至关重要。目前,自动化测试主要涵盖接口自动化测试和UI自动化测试两个主要领域。就目前而言,企业在UI自动化测试方面的覆盖率仍然相对较低。 接口自动化测试可以模拟和执行应用程序…

数据库管理-第152期 Oracle Vector DB AI-04(20240220)

数据库管理152期 2024-02-20 数据库管理-第152期 Oracle Vector DB & AI-04(20240220)1 常用的向量检索方法聚类图搜索哈希量化 2 Oracle Vector DB中的索引索引(默认) 索引(高级)3 EMBEDDINGSSQL EMBE…

【Spring底层原理高级进阶】基于Spring Boot和Spring WebFlux的实时推荐系统的核心:响应式编程与 WebFlux 的颠覆性变革

🎉🎉欢迎光临🎉🎉 🏅我是苏泽,一位对技术充满热情的探索者和分享者。🚀🚀 🌟特别推荐给大家我的最新专栏《Spring 狂野之旅:底层原理高级进阶》 &#x1f680…

基于SpringBoot的在线拍卖系统设计与实现(源码+调试+LW+PPT)

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SpringBoot的在线拍…

2024最佳住宅代理IP服务商有哪些?

跨境出海已成为了近几年的最热趋势,大批量的企业开始开拓海外市场,而海外电商领域则是最受欢迎的切入口。新兴的tiktok、Temu,老牌的Amazon、Ebay,热门的Etsy、Mecari等等都是蓝海一片。跨境入门并不难,前期的准备中不…

科普栏目|水壁炉:光影对家居和空间的影响

在这宁静的夜晚,水壁炉如一位魔法师,点亮了房间的一角。微光中,水在超声波的激荡下,散发出柔和的光芒。灯光随着水离子的律动而变化,犹如水面上微波荡漾。 有时又犹如一位灵巧的调色师,轻抚着橙红的光影&am…

Go语言的100个错误使用场景(48-54)|错误管理

前言 大家好,这里是白泽。**《Go语言的100个错误以及如何避免》**是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析1…

shell脚本实现Mysql分库分表备份

一.数据库的分库分表? 12张图把分库分表讲的明明白白!阿里面试:我们为什么要分库分表https://mp.weixin.qq.com/s?__bizMzU0OTE4MzYzMw&mid2247547792&idx2&sn91a10823ceab0cb9db26e22783343deb&chksmfbb1b26eccc63b784879…

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法)

基于ORB-SLAM2与YOLOv8剔除动态特征点(三种方法) 写上篇文章时测试过程比较乱,写的时候有些地方有点失误,所以重新写了这篇 本文内容均在RGB-D环境下进行程序测试 本文涉及到的动态特征点剔除速度均是以https://cvg.cit.tum.de/data/datasets/rgbd-dat…

c++ 到底是什么呢。需要学的太多了!

如谷歌,苹果,微软,造硬件的更是如此,如amd的,英传达,英特尔,他们都有C加速库。 C难就难在你如果达到顶峰,像些公司一样,是非常难的。因为这些公司已经垄断了市场。 C编译…

Android 圆环带刻度条进度动画效果实现

效果图 需求是根据传感器做一个重力球效果,先实现了动画后续加上跟传感器联动. 又是摆烂的一天, 尚能呼吸,未来可期啊 View源码 package com.android.circlescalebar.view;import android.content.Context; import android.content.res.Typ…

LabVIEW高效核磁测井仪器多线程优化

LabVIEW高效核磁测井仪器多线程优化 为提高核磁测井仪器的测试效率与性能,开发了基于LabVIEW的多线程优化模型。该研究针对传统的核磁测井仪器软件,在多任务调度测试和并行技术需求上存在的效率不高和资源利用率低的问题,提出了一个多线程优…

智慧公厕管理系统:让城市智慧驿站更加智慧舒适

智慧公厕管理系统是城市智慧驿站中不可或缺的一部分,它通过全方位的信息化解决方案,为公共厕所的使用、运营和管理提供了一种智能化的方式。作为城市智慧驿站的重要组成部分,智慧公厕管理系统发挥着重要的作用,为城市社会民生提供…

数字化转型导师坚鹏:数字政府技术、业务、数据融合发展路径探索

数字政府建设与发展研究 ——技术、业务、数据融合发展路径探索 课程背景: 很多政府存在以下问题: 不清楚数字政府建设内涵 不清楚数字政府建设现状 不清楚数字政府融合路径 课程特色: 有实战案例 有原创观点 有精彩解读 学…

基于Android的大学生足球赛事管理系统的设计与实现

足球是世界范围内广受欢迎的一种体育运动,国内有中超、中甲及大学生联赛等各级别的赛事,中超和中甲基本上都有专业的球队在运营,而大学生联赛属于校园级别的赛事,其重视程度较为有限,使得其信息化水平不高,…

【2024软件测试面试必会技能】python(5):python读取excel数据

python读取excel数据 xlrd参考:https://www.cnblogs.com/dream66/p/12572007.html openpyxl参考:https://www.cnblogs.com/dream66/p/12599627.html xlrd/xlwt模块简介: python操作excel主要用到xlrd和xlwt这两个库,即xlrd是读…