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": "19182XX@qq.com",
"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抓包神器教程(13)-Charles如何进行Mock和接口测试的更多相关文章

  1. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(3)-再识Charles

    1.简介 上一篇通过宏哥的介绍想必各位小伙伴或者童鞋们对Charles已经有了一个理性地认识,今天宏哥在从Charles的外貌介绍和分享一下,让小伙伴们或者童鞋们再对Charles有一个感性的认识,今 ...

  2. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(4)-Charles如何设置捕获会话

    1.简介 前边几篇宏哥介绍了Charles界面内容以及作用.今天宏哥就讲解和分享如何设置Charles后,我们就可以愉快地捕获会话,进行抓包了.因为上一篇许多小伙伴看到宏哥的Charles可以分开看到 ...

  3. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(5)-Charles如何设置捕获Https会话

    1.简介 在大数据时代,互联网时代,个人信息安全尤为重要,网络安全在近日多起电信诈骗事情发酵下的情况下,引起国家,企业,个人对于互联网安全进一步的重视.而之前很多以http协议传输的网站出现的网站信息 ...

  4. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(6)-Charles安卓手机抓包大揭秘

    1.简介 Charles和Fiddler一样不但能截获各种浏览器发出的 HTTP 请求,也可以截获各种智能手机发出的HTTP/ HTTPS 请求. Charles也能截获 Android 和 Wind ...

  5. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下

    1.前言 今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识.其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler. 1. ...

  6. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(7)-Fiddler状态面板-QuickExec命令行

    1.简介 Fiddler成了网页调试必备的工具,抓包看数据.Fiddler自带命令行控制,并提供以下用法.Fiddler的快捷命令框让你快速的输入脚本命令. 除了输入默认命令,也可以自定义命令,你可以 ...

  7. Fiddler系列教程2:手机抓包图文教程

    上篇Fiddler教程,我们教了大家Fiddler安装配置及如何使用Fiddler进行基本的Http抓包及模拟请求,今天给大家介绍下如何使用Fiddler进行手机抓包. 运行环境为Windows 10 ...

  8. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(4)-会话面板和HTTP会话数据操作详解

    1.简介 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的会话面板了. 2.会话列表 (Session list) 概览 Fiddler抓取到的每条http请求(每一条称为一个ses ...

  9. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(5)-Fiddler监控面板详解

    1.简介 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的监控面板了.监控面板主要是一些辅助标签工具栏.有了这些就会让你的会话请求和响应时刻处监控中毫无隐私可言.监控面板是fiddl ...

  10. 《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(6)-Fiddler状态面板详解

    1.简介 按照从上往下,从左往右的计划,今天就轮到介绍和分享Fiddler的状态面板了. 2.状态面板概览 Fiddler的状态面板概览,如下图所示: 3.状态面板详解 Fiddler底端状态栏面板详 ...

随机推荐

  1. 1.2 Defining Computer Architecture

    Genuine Computer Architecture: Designing the Organization and Hardware to Meet Goals and Functional ...

  2. software Engineering homework 4

    博客信息 沈阳航空航天大学计算机学院2020软件工程作业 作业要求 https://edu.cnblogs.com/campus/sau/Computer1701-1705/homework/1068 ...

  3. [fiddler的使用]模拟自动回复功能在模拟测试mock第三方对接系统的返回中的使用场景

    [场景描述]在许多对第三方的测试过程中,由于第三方没有测试环境或者测试环境同步开发的时候还未准备好,或者系统间联调时对方还未完成的各种情况下,我们可以通过fiddler来模拟对方的返回. [操作步骤] ...

  4. python学习笔记5--正则表达式

    正则表达式: 语法: import re #导入模块名 p = re.compile("^[0-9]") #生成要匹配的正则对象 , ^代表从开头匹配,[0-9]代表匹配0至9的任 ...

  5. 高并发解决方案之 redis原子操作(适用于秒杀场景)

    秒杀活动: 秒杀场景一般会在电商网站或(APP/小程序)举行一些活动或者节假日在12306网站上抢票时遇到.对于一些稀缺或者特价商品,一般会在约定时间点对其进行限量销售,因为这些商品的特殊性,会吸引大 ...

  6. openstack安装部署私有云详细图文

    本文主要分享的是云计算.openstack的使用.私有云平台建设.云服务器云硬盘的构建和使用.从基本概念入手到私有云建设,信息量非常大.对于openstack的安装部署都是从官方文档中一步步的介绍,内 ...

  7. C输入输出

    由于刚开始学的是cin和cout进行输入和输出,好多时候就不会写printf和scanf,所以导致有时候程序运行超时也不会改正,所以今天先说一说scanf和printf. 这是cin和cout的格式: ...

  8. 【原创】android 7.0 通知报错 java.lang.SecurityException: You need MANAGE_USERS permission to: check if specified user a managed profile outside your profile group

    项目中在后台发送通知,突然某一天测出在Android 7.0上通知发送失败,那么根据提示,我们尝试加了MANAGE_USERS权限,看起来是个系统级别权限,验证后果然无效.接着在搜索后都无果,似乎大家 ...

  9. 【转】【进程管理】Linux进程调度:调度时机

    转自:https://zhuanlan.zhihu.com/p/163728119 概述: 进程切换分为自愿(voluntary)和强制(involuntary)两种.通常自愿切换是指任务由于等待某种 ...

  10. sed随笔

    sed [-hnV]  [-e<script>][-f<script文件>] [文本文件] 参数说明: -e<script>或--expression=<sc ...