Charles下载安装

官网下载安装:https://www.charlesproxy.com/

电脑证书配置

如果不配置证书,无法抓取https协议

  • 配置证书:

    1 - 打开Charles,在help - SSL Proxying - Install Charles Root Certificate



    2 - 设置ssl:

  • 如果勾选以下选项,那么所有经过电脑的网络都会被抓取

为了规避所有经过电脑都抓取数据的杂乱,使用以下方法

  • 抓取浏览器的数据

    在浏览器使用SwitchyOmega设置charles监听端口,下载地址:https://proxy-switchyomega.com/ (根据教程安装使用)
  • 下载安装之后,点击 “选项” - 新建情景模式 - 代理协议选择http - 代理服务器选择 127.0.0.1

    代理端口和Charles设置的代理端口一致



移动端代理配置

  • 1 - 移动端需要与pc端处于同一网络(wifi)
  • 2 - charles

  • 3 - 移动端 修改网络(一般是长按已经链接的wifi),以下两个地址必须与charles一致

  • 4 - 配置证书(与pc端一样,配置证书才能抓取到https)

    打开移动端原生浏览器:chls.pro/ssl

    5 - 注意:android6以上的系统 app默认不信任抓包证书,需要开发修改代码,大部分测试app安装包默认打开状态

抓包分析

  • 应用场景:

    • 解决移动端接口测试
    • 解决接口测试过程中检查参数错误问题
接口分析

限速模拟(手机端测试app时使用)

  • 1 - 开启模拟



    2 - 右下角会出现以下标识



    3 - 设置网速



mock

优点:
  • 不依赖第三方数据
  • 节省工作量
  • 节省连调
使用场景:
  • 1 - 前后端数据交互-前端数据展示

    比如:查看数据边界值场景(超出长度或者股票因为数据变化引发的对应的颜色变化是否符合预期)

    代理返回给客户端相应信息的时候篡改相应信息,查看客户端是否是我们期望的结果

  • 2 - 模拟第三方响应(需开发配合)

    因为某些第三方接口(征信系统、短信系统)会收取费用,会造成成本过高,所以在获取付费接口数据的时候需要开发设置走代理端口,征信系统会返回数据给代理,这时代理就可以篡改数据信息,从而提高测试效率

  • 3 - 软硬件解耦(需开发配合)

    因为公司硬件设备比较昂贵,测试人员不可能人手一台,但又不得不使用的情况,mock原理与模拟第三方基本一致

mock例子 修改响应信息

charles Rewrite:

  • 1 -

  • 2 -

    • 修改规则:

      • 内容匹配

      • 正则匹配(需要勾选Regex)

charles另一大神器:MAP LOCAL

Rewrite 只能进行匹配,如果想精确的进行某一个字段进行修改,而这个字段有容易与其他字段冲突,那怎么办?

使用MAP LOCAL
  • 原理:与服务端没有任何交互,直接读取本地数据文件(即,使用本地json文件替代第三方服务)

  • 针对性会更强

    • 解决的问题:硬件设备不可用
  • 使用:

    • 1 - 首先要拿到正常的响应信息



      2 - 保存json文件

    • 3 - 打开quote.json文件,修改相关数据

    • 4 - 在charles右键响应体文件选择Map Local



    • 右下角会有标记

|

|

|

|

ps:学习笔记,如有侵权,请联系删除,感谢霍格沃兹测试学院

抓包分析与mock实战的更多相关文章

  1. 实战录 | 基于openflow协议的抓包分析

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...

  2. Http实战之Wireshark抓包分析

    Http实战之Wireshark抓包分析 Http相关的文章网上一搜一大把,所以笔者这一系列的文章不会只陈述一些概念,更多的是通过实战(抓包+代码实现)的方式来跟大家讨论Http协议中的各种细节,帮助 ...

  3. python爬虫(3)——用户和IP代理池、抓包分析、异步请求数据、腾讯视频评论爬虫

    用户代理池 用户代理池就是将不同的用户代理组建成为一个池子,随后随机调用. 作用:每次访问代表使用的浏览器不一样 import urllib.request import re import rand ...

  4. Wireshark抓包分析/TCP/Http/Https及代理IP的识别

    前言 坦白讲,没想好怎样的开头.辗转三年过去了.一切已经变化了许多,一切似乎从没有改变. 前段时间调研了一次代理相关的知识,简单整理一下分享之.如有错误,欢迎指正. 涉及 Proxy IP应用 原理/ ...

  5. HTTP2特性预览和抓包分析

    背景 近年来,http网络请求量日益添加,以下是httparchive统计,从2012-11-01到2016-09-01的请求数量和传输大小的趋势图: 当前大部份客户端&服务端架构的应用程序, ...

  6. 抓包分析SSL/TLS连接建立过程【总结】

    1.前言 最近在倒腾SSL方面的项目,之前只是虽然对SSL了解过,但是不够深入,正好有机会,认真学习一下.开始了解SSL的是从https开始的,自从百度支持https以后,如今全站https的趋势越来 ...

  7. 在Hdsi2.0 SQL的注入部分抓包分析语句

    在Hdsi2.0 SQL的注入部分抓包分析语句 恢复cmd ;insert tb1 exec master..xp_cmdshell''net user ''-- ;exec master.dbo.s ...

  8. [转] Android实时抓包分析 : 善用adb调试桥

    Android实时抓包分析 : 善用adb调试桥   谈到android网络抓包,很多人都能想到牛逼轰轰的神器tcpdump.方法就是在android机器上面安装tcpdump,然后通过-w参数把抓包 ...

  9. 云计算之路-阿里云上:Wireshark抓包分析一个耗时20秒的请求

    这篇博文分享的是我们针对一个耗时20秒的请求,用Wireshark进行抓包分析的过程. 请求的流程是这样的:客户端浏览器 -> SLB(负载均衡) -> ECS(云服务器) -> S ...

随机推荐

  1. WPF之交互触发器(CallMethodAction)学习

    需求背景: 当我们需要制作画板时,我们的VM需要记录我们的坐标并保存到Path的Data中,用我们普通的Command是无法办到的,这时我们就衍生出来了一个交互触发器CallMethodAction ...

  2. CF275A Lights Out 题解

    Content 有一个 \(3\times 3\) 的矩阵.一开始每个元素都为 \(1\). 你可以对任意的位置进行操作,每次操作将在这个位置上的元素及其上下左右的元素全部由 \(1\) 改为 \(0 ...

  3. AT266 迷子のCDケース 题解

    Content 有 \(n+1\) 个碟,编号为 \(0\sim n\),一开始 \(0\) 号碟在播放机上,其他的碟依次放进了 \(n\) 个盒子里面.现在有 \(m\) 次操作,每次操作找到当前在 ...

  4. AT1381 エンド・オブ・ビギニング 题解

    Content 有 \(n\) 组询问,每组询问给定三个字符串 \(s_1,s_2,s_3\). 如果 \(s_1\) 是 BEGINNING,输出 \(s_3\) 的第一个字符. 如果 \(s_1\ ...

  5. java 多线程:线程安全问题,示例DateFormat多线程执行冲突解决方案ThreadLocal、方法内变量

    SimpleDateFormat多线程中执行报错 java.lang.NumberFormatException: For input string: ""   import ja ...

  6. 初识requests

    Make a Request 一开始要导入 Requests 模块: >>> import requests 然后,尝试获取某个网页.本例子中,我们来获取 Github 的公共时间线 ...

  7. 超链接 a 标签点击时,弹出提示框,可以按照如下来写

    onclick="return confirm('确定删除该条记录?')" 加上这条记录后,就可以在访问href属性指向的链接时,有弹出提示

  8. 开发webpart时建立图像文件夹和CSS,js文件夹

    如图所示:是通过添加映射来完成,做好之后,把图像拷到文件夹时,当ascx文件里需要用到图像时,直接把图像拖到ascx文件里的位置.这样就知道该图像的路径 了.

  9. MimeMessageHelper代码发邮件时,通过客服端登陆到邮箱,在已发送邮件里没有已经通过代码发送的邮件

    MimeMessageHelper代码发邮件时,通过客服端登陆到邮箱,在已发送邮件里没有已经通过代码发送的邮件, 这个问题很奇怪,这样的话不能看到通过代码发送的邮件历史记录,所以只好借助秘密抄送了,抄 ...

  10. More Effective C++ 基础议题(条款1-4)总结

    More Effective C++ 基础议题(条款1-4)总结 条款1:仔细区别pointers和references 如果有一个变量,其目的是用来指向(代表)另一个对象,但是也有可能它不指向(代表 ...