没有用过Fiddler的人应该对FiddlerScript没啥感触,我是真心觉得FiddlerScript对测试有一定的帮助哈。

在web前端开发过程中,Fiddler是最常用的一款调试工具,那对于测试来说,对测试来说也是一大利器。在大多数情况下,通过Fiddler的菜单就可以满足我们基本的使用,但是涉及比较复杂的场景,通过fiddler基本菜单无法满足。这时候就可以利用FiddlerScript,

1通过断点可以修改http请求和相应的数据,不过不可以更改http头部,url,http相应码等等,所以这时候FiddlerScript就可以爬上用场了。

2因为设置断点更改http请求数据,手动查找参数,输入,点击重新启动按钮,这一系列的动作就耗费一定的时间,有时候前段判断响应的时间比较短,还没来得及修改完,响应时间超时,那么更改无效,所以这时候FiddlerScript实现自动修改就爬上用场了。

下面介绍贴上我常用的FiddlerScript  ,OnBeforeRequest部分

//更改http头文件,两种方式都可以
 if (oSession.uriContains("172.16.0.62")) {
     oSession.oRequest.headers["lat"]="22.547";
 //oSession.oRequest["lon"] = "114.125";
 }
 //移除某个头文件
 if (oSession.uriContains("objectId=1")) {
     oSession.oRequest.headers.Remove["lat"];
 }
 //增加头文件
 if (oSession.uriContains("172.16.0.61")) {
     oSession.oRequest.headers.Add("lat","22.548")
 }
 //host 是要写完整
 if (oSession.host == "hstoa.wisdom-gps.com:8888") {      
 }

if (oSession.uriContains("172.16.0.61")) {
     oSession["ui-color"] = "winered";
 }

//修改get请求url
 if (oSession.uriContains("C_Account/LogOn")){
     var geturl = oSession.url
     geturl=geturl.Replace("111111","222222");
     oSession.url = geturl;
 }

//修改post请求的boby
 var strBody=oSession.GetRequestBodyAsString();
 // 用正则表达式或者replace方法去修改string
 strBody=strBody.replace("1111","2222");
 // 弹个对话框检查下修改后的body               
 FiddlerObject.alert(strBody);
 // 将修改后的body,重新写回Request中
 oSession.utilSetRequestBody(strBody);

//将请求URI中http协议替换成https协议
 oSession.fullUrl = "https" + oSession.fullUrl.Substring(oSession.fullUrl.IndexOf(':'));

常用的OnBeforeResponse部分:

//增加响应头
 if (oSession.uriContains("C_Account/LogOn")) {
     oSession.oResponse.headers.Add("test1","11111")
 }
 //修改响应头
 if (oSession.uriContains("C_Account/LogOn")) {
     oSession.oResponse.headers["Date"] = "Wed, 27 Oct 2016 03:11:15 GMT";
 }
 //移除响应头
 if (oSession.uriContains("C_Account/LogOn")) {
     oSession.oResponse.headers.Remove["Date"] ;
 }
 //修改http状态码
 if (oSession.uriContains("C_Account/LogOn")) {
     oSession.responseCode = "404"
 }
 //修改响应boby,如修改Result值1更改为2
 if (oSession.uriContains("C_Account/LogOn")) {
     var bobystr = oSession.GetResponseBodyAsString();
     bobystr = bobystr.Replace("\"Result\":1","\"Result\":2");
     oSession.utilSetResponseBody(bobystr);
 }
 //响应状态标识颜色
 if (oSession.uriContains("C_Account/LogOn")) {
     var reponseboby = oSession.GetResponseBodyAsString()
     if (reponseboby.Contains("\"Result\":0")) {
     oSession["ui-color"] = "blue";
     }
 }

转载于:https://blog.51cto.com/4297765/1866738

FiddlerScript-常用总结相关推荐

  1. 编辑Fiddler的FiddlerScript脚本,代理请求到本地

    前言 博主JAVA开发工程师一枚. 最近两年工作基本上都是前后端分离~ 之前做电商项目,版本开发过程中,App开发同事(安卓/IOS)都会打一个测试包给我们,对自己开发的那部分接口进行自测.然而,Ap ...

  2. fiddler抓包常用功能

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统, ...

  3. Kubectl 常用命令, 开发人员常用k8s命令

    Kubectl 常用命令: 什么是常用,我用的,就是常用的

  4. 力扣1002.查找常用字符

    力扣 1002. 查找常用字符 本人力扣练习已上传至码云,可互相学习借鉴. 难度-简单 题目: 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表 ...

  5. spring boot项目 中止运行 最常用的几种方法

    spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...

  6. 作为一个java程序员,常用的linux命令(越攒越多)

    本篇记录我在工作中不断遇到的常用的linux命令,并进行总结,时常更新! 1. 升级服务时先停止服务,然后进行替换 linux中杀进程时候,如果你是知道它所占用的端口号的话,可以通过 netstat ...

  7. 后端怎么防止重复提交?(常用的做法)

    后端怎么防止重复提交?(常用的做法) 客户端的抖动,快速操作,网络通信或者服务器响应慢,造成服务器重复处理.防止重复提交,除了从前端控制,后台也需要控制.因为前端的限制不能解决彻底.接口实现,通常要求 ...

  8. nginx介绍及常用功能

    什么是nginx nginx跟Apache一样,是一个web服务器(网站服务器),通过HTTP协议提供各种网络服务. Apache:重量级的,不支持高并发的服务器.在Apache上运行数以万计的并发访 ...

  9. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  10. 常用开源协议介绍以及开源软件规范列表

    1. 开源协议介绍 GPL: General Public License,开源项目最常用的许可证,衍生代码的分发需开源并且也要遵守此协议.该协议也有很多变种,不同变种要求会略微不同. MPL: MP ...

最新文章

  1. Facebook发布Detectron2,下一个万星目标检测新框架
  2. Spring 中的各种注解,光会用可不够哦!
  3. 钢材规格解读的软件_万维软件ERP五金建材行业解决方案
  4. 《java程序员修炼之道》pdf书籍
  5. Python 内置模块之 re
  6. php 页面开启错误提示,php开启与关闭错误提示
  7. 新年计划书...2012-01-01
  8. 16 张图解带你掌握一致性哈希算法
  9. 【华为云网络技术分享】HTTP重定向HTTPS配置指南
  10. 别奢望大数据会为你做这10件事儿!
  11. c语言程序设计环境软件下载,c语言编程软件
  12. Eclipse启动出错误:An error has occurred.See the log file。。。。
  13. quora 分享链接
  14. java集合(超详细)
  15. Java架构师必备知识体系
  16. c++篇 cad.grx 入门,手动配置编译环境
  17. Android studio编译错误
  18. 古诺的寡头模型—寡占的斯塔克伯格模型
  19. 展讯pinmap解析
  20. 搜狗 workflow异步调度框架--1.基本介绍篇

热门文章

  1. 汇编语言-014(编写过程的应用、伪指令LEA、ENTER、LEAVE、LOCAL、递归函数、INVOKE、ADDR、PROC伪指令声明过程)
  2. 按钮旁边加一个提示_地铁站的那些“红色按钮”,你知道是干啥用的吗?乱按可能被拘留...
  3. 使用宝塔部署node项目_使用宝塔面板进行项目的自动部署WebHook
  4. LeetCode单链表题目测试代码(只需添加对应题目,本地即可debug)
  5. ubuntu下搭建nfs服务器
  6. C语言 二级指针内存模型混合实战
  7. 进程常用指令 (从创建到回收 包含守护)
  8. Java未来路在何方?挑战大厂重燃激情!
  9. RocketMQ消费者是如何获取消息的?转疯了!
  10. Java中key可以重复的Map集合:IdentityHashMap