抓包是不是就是做接口测试(接口测试为什么要抓包)

网友投稿 806 2023-01-11


本篇文章给大家谈谈抓包是不是就是做接口测试,以及接口测试为什么要抓包对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 今天给各位分享抓包是不是就是做接口测试的知识,其中也会对接口测试为什么要抓包进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

接口测试之fiddler抓包篡改(一)

本人软件测试小姐姐一枚,今天开始将日常学习的测试知识梳理总结分享哦。希望能和从事测试的小哥哥小姐姐一起进步,薪资蹭蹭往上涨。

接口是什么呢?接口作用是什么?我们为什么要做接口测试?什么是接口测试?接口测试怎样做呢?这都是我们测试经常接触到的专业名词。虽然我们经常接触接口但实际对他的概念还是很迷糊。首先从概念入手。

1、什么是接口?

      我们经常在测试工作碰到哪个哪个口报错,这个口其实就是接口。接口是提供系统服务的一种渠道,用于数据交互。

2、接口实际就是用于数据包的交互,以百度搜索为例的数据包交互过程如下:

3、接口作用?

接口用于接收用户请求,提交到服务端进行运算,得出结果后,再由接口返回给用户端。

4、什么是接口测试?

API(Application Programming Interface)测试也就是接口测试。接口测试用于检测外部系统与系统之间以及系统内部各子系统之间的交互、数据传输和控制。

5、接口测试的必要性?

①大部分公司做的都是基于UI的功能测试,基于UI的功能测试虽包含接口相关内容,但仍无法对接口进行精准测试,前端会限制用户操作。

②大部分项目都是前后端分离,独立测试接口可以确保服务端的软件质量。

6、为什么使用抓包工具?

目前90%以上的接口都是基于 http/https的网络协议 。为了直观的获取所有接口在 传输时传递的数据包内容 ,提供对其的分析,并且更好的定位bug前后端具体位置,因此对接口的抓包是很有必要的。前端的开发者工具也算是一种抓包工具,抓包是对单个接口进行操作。

7、主流抓包工具:fiddler、Charles(主要用于http和https协议的抓包)、wireshark(抓取其他协议的包)。大部分都是使用fiddler和Charles抓包,我使用fiddler。

8、抓包工具的作用?

fiddler(抓包工具都以fiddler为例)设置断点,进行截包篡改操作。

9、fiddler抓包和Postman接口测试的区别?

抓包和接口测试还是有很大的区别的,不要把抓包就当成了接口测试。fiddler用于抓包,针对单个接口的操作;而Postman用于接口测试,是对整个系统的接口做自动化测试。

被当场抓包是什么意思?

被当场抓包现实生活中多指:做“坏事”的时候现场给逮住发现了或者实说话露馅被别人当场抓到的意思。网络用语是:获取网络通讯时的数据包,对其中的数据进行分析。

抓包的意思是在做“坏事”的时候被当场抓获。这种“坏事”往往和我们的生活息息相关,比如小朋友在做作业时偷偷玩游戏被父母当场抓包、丈夫瞒着家里出去打麻将被妻子当场抓包等。

抓包的本意是网游舞弊,即通过对网络上传输的数据进行抓取、获取和分析来达到篡改游戏数据、获取用户密码等目的。

为什么抓包?

从功能测试角度,通过抓包查看隐藏字段

Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防 CRSF 攻击,防网络爬虫,以及一些其他用途。这些隐藏字段在界面上都看不到,如果想检测这些字段,就必须要使用抓包工具。

通过抓包工具了解协议内容,方便开展接口和性能测试

性能测试方面,性能测试其实就是大量模拟用户的请求,所以我们必须要知道请求中的协议内容和特点,才能更好的模拟用户请求,分析协议就需要用到抓包工具。

接口测试方面,在接口测试时,虽然我们尽量要求有完善的接口文档。但很多时候接口文档不可能覆盖所有的情况,或者因为文档滞后,在接口测试过程中,还时需要借助抓包工具来辅助我们进行接口测试。

但很多时候接口文档不可能覆盖所有的情况,或者因为文档滞后,在接口测试过程中,还时需要借助抓包工具来辅助我们进行接口测试。

fiddler抓包详细教程--接口测试

前言

Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的。

对应没有接口测试文档的时候,可以直接抓完包后,copy请求参数,修改下就可以了。

Composer简介

点开右侧Composer区域,可以看到如下界面,就是测试接口的界面了
1.请求方式:点开可以勾选请求协议是get、post等

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

3.请求头:第三块区域可以输入请求头信息

4.请求body:post请求在此区域输入body信息

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

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

7.请求历史:执行完成后会在右侧History区域生成历史记录

模拟get请求

1.在Composer区域地址栏输入博客首页: http://www.cnblogs.com/yoyoketang/

2.选择get请求,点Execute执行,请求就可以发送成功啦

3.请求发送成功后,左边会话框会生成一个会话记录,可以查看抓包详情

4.右侧history区域会多一个历史请求记录

5.会话框选中该记录,查看测试结果:

选中该会话,点开Inspectors

response区域点开Raw区域

Raw查看的是HTML源码的数据
也可以点WebView,查看返回的web页面数据
Json数据

1.有些post的请求参数和返回参数是Json格式的,如博客园的登录请求: https://passport.cnblogs.com/user/signin

2.在登录页面手动输入账号和密码,登录成功。

3.找到这个登录成功的会话,查看json数据如下图:
模拟post请求

1.请求类型勾选post

2.url地址栏输入对应的请求地址

3.body区域写登录的json参数,json参数直接copy上一步抓包的数据,如下图红色区域
4.header请求头区域,可以把前面登录成功后的头部抓包的数据copy过来

(注意,有些请求如果请求头为空的话,会请求失败的)
5.执行成功后查看测试结果:

–执行成功如第三所示的图,显示success=True

–执行失败如下图所示,显示

message=Invalid length for a Base-64 char array or string.

success=False
get请求(url详解)

前言

上一篇介绍了Composer的功能,可以模拟get和post请求,get请求有些是不带参数的,这种比较容易,直接放到url地址栏就行。有些get请求会带有参数,本篇详细介绍url地址格式。

url详解

1.url就是我们平常打开百度在地址栏输入的: https://www.baidu.com ,如下图,这个是最简单的url地址,打开的是百度的主页
2.再看一个稍微复杂一点的url,在百度输入框输入:上海悠悠博客园
3.查看url地址栏,对比之前的百度首页url地址,后面多了很多参数。当然最主要的参数是:wd=上海悠悠博客园(后面的一大串可以暂时忽略)。

4.那么问题来了,这些参数有什么作用呢?

可以做个简单的对比,在地址栏分别输入:

https://www.baidu.com

https://www.baidu.com/s?wd=上海悠悠博客园

对比打开的页面有什么不一样,现在知道作用了吧,也就是说这个多的”/s?wd=上海悠悠博客园”就是搜索的结果页面

url解析

1.以” https://www.baidu.com/s?wd=上海悠悠博客园”这个url请求的抓包为例
2.那么一个完整的url地址,基本格式如下:

https://host :port/path?xxx=aaaooo=bbb

http/https:这个是协议类型,如图中所示

host:服务器的IP地址或者域名,如图中2所示

port:HTTP服务器的默认端口是80,这种情况下端口号可以省略。

如果使用了别的端口,必须指明,例如:192.168.3.111:8080,这里的8080就是端口

path:访问资源的路径,如图中3所示/s (图中3是把path和请求参数放一起了)

?:url里面的?这个符号是个分割线,用来区分问号前面的是path,问号后面的是参数

url-params:问号后面的是请求参数,格式:xxx=aaa,如图4区域就是请求参数

:多个参数用符号连接

请求参数(params)

1.在url里面请求参数一般叫params,但是我们在fiddler抓包工具看到的参数是:QueryString

2.QueryString是像服务端提交的参数,其实跟params是一个意思,每个参数对应的都有name和value值

3.多个参数情况如下:
UrlEncode编码

1.如果url地址的参数带有中文的,一般在url里面会是这样的,如第二点里的wd=%E4%B8%8A%E6%B5%B7%E6%…

像看到%E4这种编码的就是经过url编码过的,需要解码就能看到是什么中文了

2.用urlencode在线编码/解码工具,地址: http://tool.chinaz.com/tools/urlencode.aspx
post请求(body)

前言上一篇讲过get请求的参数都在url里,post的请求相对于get请求多了个body部分,本篇就详细讲解下body部分参数的几种形式。

注意:post请求的参数可以放在url,也可以放在body,也可以同时放在url和body,当然post请求也可以不带参数。

只是一般来说,post请求的参数习惯放到body部分

body数据类型

常见的post提交数据类型有四种:

1.第一种:application/json:这是最常见的json格式,也是非常友好的深受小伙伴喜欢的一种,如下

2.第二种:application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数

3.第三种:multipart/form-data:这一种是表单格式的,数据类型如下:

4.第四种:text/xml:这种直接传的xml格式

json格式

1.打开博客园的登录页面,输入账号密码后抓包,查看post提交数据,点开Raw查看整个请求的原始数据
2.前面讲过post的请求多一个body部分,上图红色区域就是博客园登录接口的body部分,很明显这种格式是前面讲到的第一种json格式

3.查看json格式的树状结构,更友好,可以点开JSON菜单项
4.查看这里的json数据,很明显传了三个参数:

input1:这个是登录的账号参数(加密过)

input2:这个是登录的密码参数(加密过)

remember:这个是登录页面的勾选是否记住密码的选项,False是不记住,True是记住

x-www-form-urlencoded

1.登录博客园后,打开新随笔,随便写一个标题和一个正文后保存,抓包数据如下
2.如上图的这种格式,很明显就属于第二种了,这种类型的数据查看,在WebFrom里面查看了
3.上面红色框框的Query String是url里面的参数,下面红色框框的body部分就是这次post提交的body参数部分了。

WebFrom

1.为什么登录请求的WebFrom的body部分为空呢?
2.看上图红色框框的显示:这里只支持application/x-www-form-urlencoded这种格式的body参数,也就是说json格式的,需要在JOSN这一栏查看了。

抓包是什么意思呀?

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作抓包是不是就是做接口测试,也用来检查网络安全。抓包也经常被用来进行数据截取等。

背景知识

数据在网络上是以很小的称为帧(Frame)的单位传输的,帧由几部分组成,不同的部分执行不同的功能。帧通过特定的称为网络驱动程序的软件进行成型,然后通过网卡发送到网线上,通过网线到达它们的目的机器,在目的机器的一端执行相反的过程。接收端机器的以太网卡捕获到这些帧,并告诉操作系统帧已到达,然后对其进行存储。就是在这个传输和接收的过程中,嗅探器会带来安全方面的问题。

每一个在局域网(LAN)上的工作站都有其硬件地址,这些地址唯一地表示了网络上的机器(这一点与Internet地址系统比较相似)。当用户发送一个数据包时,如果为广播包,则可达到局域网中的所有机器,如果为单播包,则只能到达处于同一碰撞域中的机器。

在一般情况下,网络上所有的机器都可以“听”到通过的流量,但对不属于自己的数据包则不予响应(换句话说,工作站A不会捕获属于工作站B的数据,而是简单地忽略这些数据)。如果某个工作站的网络接口处于混杂模式,那么它就可以捕获网络上所有的数据包和帧。

扩展资料抓包是不是就是做接口测试

主要作用

通过对网络上传输的数据进行抓取,可以对其进行分析,对于软件的Debug很大的帮助。当然也可以通过抓取用户发送的涉及用户名和密码的数据包来获取用户的密码。

(1)网络通讯的真实内容

(2)网络故障分析

(3)程序网络接口分析

(4)木马通讯数据内容

关于抓包是不是就是做接口测试和接口测试为什么要抓包的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。 抓包是不是就是做接口测试的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于接口测试为什么要抓包、抓包是不是就是做接口测试的信息别忘了在本站进行查找喔。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:抓包是接口测试吗(接口抓包工具)
下一篇:抓包就是接口测试吗(接口防止抓包)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~