Charles应该是目前最常用的代理软件(之一),使用简单。Charles强大的抓包与协议调试代理功能可以满足我们大部分需求,居然还免费(我可没说有破解版)。日常测试中,我吗常用的几个功能主要是抓取网络请求,查看协议内容,修改请求与响应,另外断点功能以及过滤功能也很实用。简单总结下,各位老鸟请无视,本菜鸟还要飞上天呢。
  • 修改网络请求
    有时候为了调试服务器的接口,需要修改请求的内容与参数。Charles可以方便我们对网络请参数的修改。在网络请求上右键,选择Edit,即可创建一个新的网络请求,设置请求方式,修改URL请求以及header等内容,甚至可以手动添加对象字段,完成后点击Execute即可运行。
 
 
  • 修改服务器返回内容
    Charles提供了Map功能、Rewrite以及Breakpoint功能,都可以修改服务器返回内容。其中map功能可以直接将返回匹配为目标文件,map可以匹配网络文件,使用Map Remote功能,也可以map local匹配本地文件。一般情况下,我们可以将一个网络响应保存到本地,通过编辑器进行修改参数内容,再使用Map Local替换,即可达到目的。
    首先对目标网络请求右键,选择Save Response。打开编辑器修改参数内容后保存。再右键选择map local,设置好协议类型、端口号等参数,保存后即可。
  • Rewrite功能
  Rewrite功能一般对发送的请求或者网络响应内容按照指定的样式替换,不过是对所有经过Charles网络包进行修改。Map功能则是指定了某一类型的网络响应修改与替换。在Proxy选项里选择Rewrite,可以选择本地已经存储的Rules,也可以按照目标设定。选择修改的类型,Request与Reponse的选择则视情况而定,填好指定字段以及需要替换的内容,保存即可。可以根据需要选择替换一处还是多处。
 
 
  • Breakpoints。

适合临时修改请求,在目标请求上右键选择Breakpoints,发起网络请求,网络请求进行会被中断,然后根据需要执行execute观察网络。根据需要选择请求类型以及网络URL,同时可以选择Add添加请求参数,修改好的请求可以在Overview中看到。测试完毕记得去Proxy中Disable Breakpoints。

  • 过滤网络请求
     对网络请求进行过滤有两种方法,第一个就是在所有的请求中进行关键字过滤。选择Sequence模式,在中间Filter一栏中输入查看的关键字即可进行过滤。
 
     
     另外一种方式在Charles的菜单栏里选择“Proxy”-->Recording Setting,在include栏中选择添加对应的目标地址与端口号,这样就只会抓取目标请求。
 
  • 弱网络测试
     Charles可以模拟慢速网络或者高延迟等弱网络情况。在选择中,Proxy中选择Throttle Setting,选择enable后,可以选择自己想要设置的网络以及带宽速率。
 
  • 允许终端接入
     每次有新手机接入代理时都需要通过,尤其是在需求方体验的时候,比较麻烦。可以在设置允许直接接入代理,这样就你可以省去不少小麻烦。
     Proxy中选择Proxy Aceesee Setting,新窗口中可以看到已经允许连接的终端IP。选择add功能,输入0.0.0.0/0,保存。即可任意手机连接了。
 
 

Charles几个常用测试功能小结的更多相关文章

  1. 常用Linux命令小结

    常用Linux命令小结 Linux下有很多常用的很有用的命令,这种命令用的多了就熟了,对于我来说,如果长时间没有用的话,就容易忘记.当然,可以到时候用man命令查看帮助,但是,到时候查找的话未免有些临 ...

  2. Gson Json 序列号 最常用的功能 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  3. python 几种常用测试框架

    测试的常用规则 一个测试单元必须关注一个很小的功能函数,证明它是正确的: 每个测试单元必须是完全独立的,必须能单独运行.这样意味着每一个测试方法必须重新加载数据,执行完毕后做一些清理工作.通常通过se ...

  4. RealView编译器常用特有功能(转)

    源:RealView编译器常用特有功能 一. 关键字和运算符 1. __align(n):指示编译器在n 字节边界上对齐变量. 对于局部变量,n 值可为 1.2.4 或 8. 对于全局变量,n 可以具 ...

  5. Impala系列: Impala常用的功能函数

    --=======================查看内置的函数--=======================hive 不需要进入什么内置数据库, 即可使用 show functions 命令列出 ...

  6. Java常用测试工具

    第一部分:九款性能测试 Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runti ...

  7. iOS常用小功能

    CHENYILONG Blog 常用小功能 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong  ...

  8. iOS 网易彩票-6设置模块三(常用小功能)

    该篇文章中,用到很多iOS开发过程中常用的小功能,当前只是将这些功能集成到网易彩票的设置中.iOS-常用小功能介绍,请参考我的另一篇文章: iOS 常用小功能 总结:http://www.cnblog ...

  9. iOS 常用小功能 总结

    常用小功能 iOS中的很多小功能都是非常简单的,几行代码就搞定了,比如打电话.打开网址.发邮件.发短信等 打电话 方法一(不被采用): 拨号之前会弹框询问用户是否拨号,拨完后能自动回到原应用 NSUR ...

随机推荐

  1. LeetCode--034--在排序数组中查找元素的第一个和最后一个位置(java)

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...

  2. 多组图自动无限循环(swiper轮播)

    前两天的一个项目中遇到多组图片无限轮播,当时采用了swiper 但是没有解决让它无限轮播.今天再次尝试了一下发现是自己的样式写错了.今天在这里写一下,为了给自己一个警醒不要犯同样的错误 首先先引入一下 ...

  3. Django中ORM介绍和字段及字段参数

    Object Relational Mapping(ORM) 1 ORM介绍 1.1 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对 ...

  4. Petrozavodsk Winter Camp, Day 8, 2014, Ship

    $dp(i,j)$表示i-j这段还没运走时的状态,包括 运输了多少次,还剩多少空间 每次枚举运输左边还是右边转移 #include <bits/stdc++.h> #define rep( ...

  5. mac电脑上不能用移动硬盘的原因和方法

    原因: 一般性是因为这个移动硬盘的格式是 NTFS 格式的,对于这种格式的磁盘格式,在苹果系统中却是不支持往硬盘里写入数据的 解决方法: 方法一: ntfs的格式分区,这种格式分区与我们的苹果电脑自身 ...

  6. BackBone Network

    总结至维基百科https://en.wikipedia.org/wiki/Backbone_network 骨干连接各个网络,用于不同的局域网或子网(LANs or subnetworks)之间信息交 ...

  7. java Data、String、Long三种日期类型之间的相互转换

    java Data.String.Long三种日期类型之间的相互转换      // date类型转换为String类型   // formatType格式为yyyy-MM-dd HH:mm:ss// ...

  8. Windows10 下安装 Apache2.4+PHP7.1+MySQL5.7

    这个教程主要是分享如何快速组建WAMP开发环境,对于软件的详细配置,自行参考文档或搜索. Visual C++ Redistributable for Visual Studio 2015 下载地址: ...

  9. php单点登录

    http://blog.csdn.net/luyaran/article/details/54890036

  10. for 循环常见内置参数

    系统相关的信息模块: import sys sys.argv 是一个 list,包含所有的命令行参数. sys.stdout sys.stdin sys.stderr 分别表示标准输入输出,错误输出的 ...