首页 > 其他分享 >《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(13)-Charles如何进行Mock和接口测试

《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(13)-Charles如何进行Mock和接口测试

时间:2023-04-04 09:45:56浏览次数:42  
标签:教程 请求 Charles 爆肝 接口 测试 所示 Mock

1.简介

Charles最大的优势在于抓包分析,而且我们大部分使用的功能也在抓包的功能上,但是不要忘记了,Charles也可以做接口测试。至于Mock,其实在修改请求和响应数据哪里就已经介绍了,宏哥就是在这里简单的提一下介绍一下它的理论知识,今天主要介绍和分享的是使用Charles进行接口测试实操。

2.什么是Mock?

百度百科是这么说的:Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

Mock 就是在测试过程中,对于一些不容易构造/获取的对象,创建一个 Mock对象 来模拟对象的行为。

Mock 方法 是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。

3.Mock测试的优点

3.1团队并行工作

开发过程中,只要交互双方定义好接口,团队之间可以并行工作,进程互不影响,不需互相等待对方进度,只需约定好相互之间的数据规范(接口文档),即可使用 mock 构建出可用接口,然后尽快进行开发和自测,提前发现缺陷.

3.2测试驱动开发 TDD (Test-Driven Development)

单元测试是 TDD 实现的基石,而 TDD 经常会碰到协同模块尚未开发完成的情况,但有了 mock,测试人员可提前接入测试,提供测试效率,当接口定义好后,测试人员就可以创建一个 Mock,把接口添加到自动化测试环境,提前创建测试。

3.3测试覆盖率

接口涉及入参,或者业务逻辑复杂的情况,某些场景无法通过正常手段进行操作,而通过mock虚拟模拟,可以有效的增加覆盖率

3.4隔离系统

若一个接口在不同的状态下要返回不同的值,常见做法是复现这种状态然后再去请求接口,但使用某些接口时,可能因操作时机或方式不当导致失败,甚至污染后端存储如数据库等, 为避免系统数据库被污染,可以将接口调整为 Mock 模式,以保证数据库纯净。

4.Mock测试的缺点

Mock也不是万能的,使用Mock也存在着风险,需要根据项目实际情况和具体需要来确定是否选用Mock。

测试过程中如果大量使用Mock,mock测试的场景失去了真实性,可能会导致在后续的系统性测试时才发现bug,使得缺陷发现的较晚,可能会造成后续修复成本更大

5.Mock客户端

接口文档已对接完成,但后端接口还未开发完成,测试人员需要进行单元测试,或提前进行接口自动化测试,需要使用Mock各种请求返回的内容。

6.Mock服务端

遇到前端人员已完成开发任务,而后端人员开发打接口尚未完成这种情况,需要和前端人员联调进行测试,则需要搭建Mock服务。

好了,Mock的理论就介绍到这里,有兴趣的自己可以私下查资料。接下来就要进入今天的重点:使用Charles进行接口测试。

7.Compose

用Charles进行测试,我们使用的主要是Composer功能。这个和Fiddler工具类似。Composer允许自定义请求发送到服务器,可以手动创建一个新的请求。具体操作步骤如下:

7.1方法一

1.打开Charles,点击【Tools】-->【Compose】或者【Compose New...】 。如下图所示:

2.填写你要测试接口的信息,有接口文档,按接口文档填写,没有就自己抓包填写,如下图所示:

7.2方法二

1.选中抓到的接口请求信息,右键-->【Compose】,如下图所示:

 2.出现了接口请求的相关信息。如下图所示:

8.界面功能解析

根据下图图标注位置对Composer的界面功能进行说明。

1.请求方式:点开可以勾选请求协议是get、post等

2.url地址栏:输入请求的url地址

3.Execute按钮点击后就可以执行请求了

4.执行完成后会在右侧History区域生成历史记录

5.http版本:可以勾选http版本

6.添加请求参数

9.接口测试实战

9.1POST API实战

现在免费的接口很不好找,找了半天找到python里有一个,之前在Fiddler中也用的这个。就用这个举例吧。

接口信息:

接口信息描述
https://httpbin.org/post 接口地址
请求方式 HTTP POST
请求参数 请求参数格式为 JSON

参数格式:

{
    "form": {
        "comments": "北京宏哥post接口测试", 
        "custemail": "[email protected]", 
        "custname": "北京宏哥", 
        "custtel": "13045032408", 
        "delivery": "15:45"
  }
}

那么如何使用Charles调试一个POST请求并带有json格式的数据,具体操作步骤如下:

1.启动Charles,打开Compose面板, 在Compose新建面板中的输入URL(输入请求接口的地址),下拉框中选择POST请求方式,如下图所示:

2.点击【Compose】后,如下图所示:

3.点击【JSON Text】,然后输入请求的JSON数据,最后点击【Execute】如下图所示:

4.点击Execute(执行),若在会话列表中看到结果返回200表示操作成功,如下图所示:

5.在Inspectors里面查看到请求响应的结果了,我们事先知道接口返回的是json格式数据,点击响应部分的json将数据格式化,方便阅读。如下图所示:

9.2GET API实战

接口信息:一个带参数的 get 请求,如在豆瓣网搜索:西游记,url 地址为:https://www.douban.com/search?q=西游记。具体操作如下图所示:

1.启动Charles,打开Compose面板, 在Composer面板中的输入URL,下拉框中选择GET请求方式,如下图所示:

2.输入请求接口的参数,如下图所示:

3.点击Execute(执行),若在会话列表中看到结果返回200表示操作成功,如下图所示:

10.小结

 今天主要讲解和分享了如何使用Charles进行接口测试的两种请求方式,其他的请求类似!!!好了,今天时间也不早了,宏哥就讲解和分享到这里,感谢你耐心地阅读!!!

标签:教程,请求,Charles,爆肝,接口,测试,所示,Mock
From: https://www.cnblogs.com/du-hong/p/17144429.html

相关文章

  • office2021pro安装教程
    打开软件选择应用版本是office21pro等安装完成打开学习工具,第一次打开提示无法联网需要重新打开即可 目测安装21所有许可证退出即可打开office点完这个关闭后进入账户即可看到激活 ......
  • AutoCAD 2023 下载安装、激活教程,永久激活,亲测可用
    本此提供的是正式cad2023激活版,其中还附带了相对应的注册机及序列号和密钥,从而可以完美有效的帮助用户免费激活软件进行无限制的永久使用AutoCAD2023的软件介绍:AutoCAD2023目前已经正式发布,是世界领先的2D和3DCAD工具的设计和文档软件。它将允许您使用其强大而灵活的功能来......
  • Swift中文教程(十七) 可选链
    可选链(OptionalChaining)是一种可以请求和调用属性、方法及子脚本的过程,它的自判断性体现于请求或调用的目标当前可能为空(nil)。如果自判断的目标有值,那么调用就会成功;相反,如果选择的目标为空(nil),则这种调用将返回空(nil)。多次请求或调用可以被链接在一起形成一个链,如果任何一个节点为......
  • 怎么在springboot中配置https证书的详细教程
    前言由于小程序需要https,然后之前申请的域名过期了,用了两年由于忘记续费要将域名赎回居然要1200....想了一下之前还有另一个域名,干脆就用这个域名弄个二级域名出来,所以二级域名建立出来后需要在springboot项目上开启https访问废话不多说,开整在阿里云新建二级域名这个......
  • windows安装npm教程(nodejs)
     1、在使用之前,先类掌握3个东西,明白它们是用来干什么的:npm: nodejs下的包管理器。webpack:它主要用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源作相应的准备,比如资源的合并和打包。vue-cli:用户生成Vue工程模板。(帮你快速开始一个vue的项目,也就是给你一......
  • 下载Maven教程
    前言:Maven是学习Spring的捷径,可以帮助项目快速发布;是apache的一个开源项目,并且具有跨平台的特性(同一套指令适用于不同系统),主要提高基于java平台的项目构建、依赖管理、项目信息管理等服务;可以看作一个统一管理jar包的开发规范和工具。【maven的下载必须是建立在已有jdk的前提......
  • Elasticsearch系列-Elasticsearch入门教程
    引言Elasticsearch是著名的开源分布式搜索和数据处理平台,是一个基于Lucene的分布式、实时、全文搜索系统,其稳定、可靠、高可用、可大规模扩展等特性,使得Elasticsearch的应用十分广泛。特别是结合Logstash、Kibana形成的ELK套件,更是在日志收集和可视化场景被大规模应用。本文将从零......
  • Markdown简单实例教程
    在线markdown:mahua简书首先来张源码图片<fontface="黑体">我是黑体字</font><fontface="微软雅黑">我是微软雅黑</font><fontface="STCAIYUN">我是华文彩云</font><fontcolor=#0099ffsize=7face="黑体">我是黑体深蓝色<......
  • Vimgenius使用教程
    (需要绕过IP封锁等访问限制)BecomeaVimGeniusIncreaseyourspeedandimproveyourmusclememorywithVimGenius,atimedflashcard-stylegamedesignedtomakeyoufasterinVim.It’sfreeandyoudon’tneedtosignup.Whatareyouwaitingfor?StartNow......
  • 联芸mas0902固态使用量产工具的开卡方法,mas0902/mas1102开卡软件教程
    MAS0902是一款固态存储器芯片,一般固态硬盘损坏的情况下才需要量产,在量产过程中,需要从量产部落网下载对应主控型号和闪存颗粒类型的量产工具后,使用量产工具来对芯片进行初始化和测试。以下是MAS0902固态使用量产工具的开卡方法:1.首先,将采用MAS0902芯片的固态硬盘短接ROM孔后,连......