JMeter如何和Charles进行接口测试

时间:2022-11-06 16:08:07

  什么是接口测试,接口测试到底如何开展,我相信任何一个软件测试人员都会有这样的疑问,

这里我以接口测试自动化平台的登录接口进行讲解。

一、什么是接口测试?

  接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。--------->摘自百度百科

  通俗的讲,就是对人扒了皮之后对这个人进行检测,可以直观的看心脏跳不跳动,而不再是依靠听啊或者脉搏来判断心脏是否

在跳动。对应到程序上来讲的话,就是不需要再UI上进行点击来猜测这个数据能否调通,可以直接通过接口返回直观的看到数据是

否已调通。

二、接口测试的好处

  2.1、前后端bug分离,更好的将问题指定给对应的开发人员

  2.1、缩短项目周期,接口测试可以在开发给出对应的接口后就能够进行测试,理论上来说,开发好一个接口,就可以测试一个

接口,减少联调的时间,后期进行功能测试的时候只需要对应前端开发人员即可

三、接口测试如何开展

  3.1、优良的接口文档

  3.2、接口测试工具

这里我用到的接口测试工具是JMeter

  首先说明一下什么是优良的接口文档:优良的接口文档必定具有两个特性,可读性和可执行性。对于接口文档来说,我们必定会

在里面看到接口的定义(包含:入参、出参、请求方式、调用地址、接口的业务关联关系)。如果没有接口文档,公司又要求我们需要

做接口自动化,那么这时候怎么办?

  因此呼应题中的Charles  ,来抓包对接口进行分析,再将其维护至JMeter中

四、如何使用JMeter

  4.1、下载jmeter压缩包,下载地址:https://jmeter.apache.org/download_jmeter.cgi

  4.2、解压缩,并在并目录点击jmeter.bat打开jmeter,如下图所示

JMeter如何和Charles进行接口测试

打开后的jmeter界面为:

JMeter如何和Charles进行接口测试

  4.3、jmeter需要依赖java环境,我们需要安装jdk,这里我安装的jdk1.8,至于jdk的环境变量配置请自行百度

  4.4、Charles抓包分析接口

  4.4.1、安装Charles,按照提示一步一步对照安装即可

  4.4.2、打开Charles,打开界面如下图所示:

JMeter如何和Charles进行接口测试

  4.4.3、在浏览器中输入你所需的项目路径,并进行操作,这是你会发现,你的操作中的请求会被Charles截取到,如下图所示:

JMeter如何和Charles进行接口测试

对于截取的到数据,我们有四个地方比较重要,如上图红框圈出的地方,最左侧为接口总请求,右侧上方并排三个红框,分别为接口调用地址、接口

入参、接口出参,如果对接口进行功能性测试,我们需要调用地址、入参和出参与接口文档保持一致。

    4.4.3.1、我们先分析一下上图中的overview内容,我们需要的部分如下图所示:

JMeter如何和Charles进行接口测试

这三种我们需要将其维护至JMeter中

    4.4.3.2、分析Request部分,也就是接口请求部分,如下图所示:

    4.4.3.3、分析Response,也就是接口返回部分,如下图所示:

JMeter如何和Charles进行接口测试

至此,对于抓包的数据我们分析完毕,那么怎么将其维护至JMeter中呢?

4.5、打开jmeter,在测试计划中添加线程组,如下图所示:

JMeter如何和Charles进行接口测试

在测试计划中添加http信息头管理器,如下图所示:

JMeter如何和Charles进行接口测试

  4.5.1、在http信息头管理器中,添加之前抓包数据中说的请求信息头中信息,如下图所示:

JMeter如何和Charles进行接口测试

  4.5.2、在线程组下面添加http请求,如下图所示:

JMeter如何和Charles进行接口测试

  4.5.3、接口中的调用地址、入参如何写入jmeter中呢,如下图所示:

JMeter如何和Charles进行接口测试

涂鸦部分为实际用户名和密码

温馨提示:该界面的数据与抓包中的数据结合使用

  4.5.4、在线程组中添加查看结果树,如下图所示:

JMeter如何和Charles进行接口测试

  4.5.5、执行JMeter脚本,并查看执行结果,如下图所示:

JMeter如何和Charles进行接口测试

至此:JMeter和Charles进行接口测试便完成了,如有不明确的地方可以留言,或者加QQ群775129837交流