JMeter如何和Charles进行接口测试
什么是接口测试,接口测试到底如何开展,我相信任何一个软件测试人员都会有这样的疑问,
这里我以接口测试自动化平台的登录接口进行讲解。
一、什么是接口测试?
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。--------->摘自百度百科
通俗的讲,就是对人扒了皮之后对这个人进行检测,可以直观的看心脏跳不跳动,而不再是依靠听啊或者脉搏来判断心脏是否
在跳动。对应到程序上来讲的话,就是不需要再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界面为:

4.3、jmeter需要依赖java环境,我们需要安装jdk,这里我安装的jdk1.8,至于jdk的环境变量配置请自行百度
4.4、Charles抓包分析接口
4.4.1、安装Charles,按照提示一步一步对照安装即可
4.4.2、打开Charles,打开界面如下图所示:

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

对于截取的到数据,我们有四个地方比较重要,如上图红框圈出的地方,最左侧为接口总请求,右侧上方并排三个红框,分别为接口调用地址、接口
入参、接口出参,如果对接口进行功能性测试,我们需要调用地址、入参和出参与接口文档保持一致。
4.4.3.1、我们先分析一下上图中的overview内容,我们需要的部分如下图所示:

这三种我们需要将其维护至JMeter中
4.4.3.2、分析Request部分,也就是接口请求部分,如下图所示:
4.4.3.3、分析Response,也就是接口返回部分,如下图所示:

至此,对于抓包的数据我们分析完毕,那么怎么将其维护至JMeter中呢?
4.5、打开jmeter,在测试计划中添加线程组,如下图所示:

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

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

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

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

涂鸦部分为实际用户名和密码
温馨提示:该界面的数据与抓包中的数据结合使用
4.5.4、在线程组中添加查看结果树,如下图所示:

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

至此:JMeter和Charles进行接口测试便完成了,如有不明确的地方可以留言,或者加QQ群775129837交流
JMeter如何和Charles进行接口测试的更多相关文章
- jmeter数据库,charles抓包,Python循环语句
jmeter数据库,charles抓包,Python循环语句 一.Jemeter数据库 添加jar包数据库 jemeter=>浏览 添加JDBC Connection Configuration ...
- jenkins+ant+jmeter搭建持续集成的接口测试平台
一.jemter接口脚本的编写步骤如下: 1. 编写接口请求 通过录制或者查看接口文档,编写接口请求,进行调试,确保接口调试通过,对于http的请求来说,就是正确的填写域名,查询字符串,查询参数等信息 ...
- 使用Jmeter进行简单的http接口测试
1.添加线程组:在“测试计划”上点击鼠标右键-->添加-->threads(Users)-->线程组,添加测试场景设置组件,接口测试中一般设置为1个“线程数”,根据测试数据的个数设定 ...
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析
前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下吧.各位如果要转载,请一定注明来源,最好在评论中告知博主一声,感谢.本报告从多个方面对接口测试的三款常用工具 ...
- JMeter一次简单的接口测试(转载)
转载自 http://www.cnblogs.com/yangxia-test 本次接口测试:根据ws查询所有商品的具体的信息.检查商品是否返回成功. 1. 准备测试数据 查询数据库中产品表已上架商 ...
- Jenkins+Ant+Jmeter搭建持续集成的接口测试平台(转)
一.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻 ...
- 第2课:jmeter总结、Charles抓包
1. tps(throughput):每秒钟处理的事务数(请求数),定义与qps类似(qps:每秒完成的请求个数.) 响应时间(average):每个请求的平均响应时间 2. jmeter实现下载 ...
- 【转】Jenkins+Ant+Jmeter搭建持续集成的接口测试平台
一.什么是接口测试? 接口测试是测试系统组件间接口的一种测试.接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点.测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻 ...
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析——灰蓝
前段时间忙于接口测试,也看了几款接口测试工具,简单从几个角度做了个比较,拿出来与诸位分享一下吧.各位如果要转载,请一定注明来源,最好在评论中告知博主一声,感谢.本报告从多个方面对接口测试的三款常用工具 ...
随机推荐
- Spring-Boot导入配置文件与取值
前言: springboot简化了大量配置文件,但是必要时还是需要导入配置文件的,比如dubbo,此处简记之. 正文: 所有的配置文件引入都是使用注解在类上进行引入的,常用的有两种注解@Propert ...
- nodejs调试总结
之前nodejs开发中最痛苦的就是调试,因为我之前开发node时使用的编辑器还没有将nodejs的调试也集成进去,所以简单对nodejs开发的调试做了点探索,nodejs本身就有调试功能,同时node ...
- 对JVM虚拟机中方法区的理解
因为jdk8的jvm已经取消了方法区,所以这边先主要介绍jdk8以下版本中方法区相关内容. 1.虚拟机规范中方法区的概念: 原文链接:http://docs.oracle.com/javase/spe ...
- [洛谷P1197/BZOJ1015][JSOI2008]星球大战Starwar - 并查集,离线,联通块
Description 很久以前,在一个遥远的星系,一个黑暗的帝国靠着它的超级武器统治者整个星系.某一天,凭着一个偶然的机遇,一支反抗军摧毁了帝国的超级武器,并攻下了星系中几乎所有的星球.这些星球通过 ...
- 如何把百度统计代码放入JS文件中?百度统计的JS脚本原理分析
<script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script&quo ...
- html的基本结构
html的基本结构 1.<html>内容</html> html文档的文档标记,也称为html开始标记 这对标记分别位于网页的最前端和最后端,表示开始和结束 2.<hea ...
- 遗传算法详解(LINGO及MatlabGA工具箱求解实现)
遗传算法 1.前言 遗传算法是一种基于生物界自然群体遗传进化机制的自适应全局优化概率搜索算法.它与传统算法不同,不依赖梯度信息,而是通过模拟自然进化过程来搜索最优解. 例子:兔子的遗传进化 有人说,现 ...
- JavaScript数据结构与算法(二) 队列的实现
TypeScript方式源码 class Queue { items = []; public enqueue(element) { this.items.push(element); } publi ...
- IOS开发---视频录制
今天研究了一下使用app录制视频的功能,感觉还是挺简单的.使用了AVFoundation框架,代码比较死,按步骤调用就行. 分享一下今天做的Demo的步骤 一,初始化输入设备,这里涉及到前,后摄像头: ...
- python的布尔类型与流程控制
布尔类型其实可以算是一种特殊的数字,下面是 help() 函数得到的帮助信息: bool 首先,请注意这一行: