怎么从0学习接口测试?(文中附经典bug)

今天要给大家分享一下接口测试的相关知识,废话不多说下面直接进入今天的分享。

这是咱们今天要讲的内容目录


那么什么是接口,接口测试又是什么呢?

这是我们首先需要搞清楚的东西,如果连接口都不知道,那还谈何做接口测试呢?


根据百度百科显示,接口测试就是:测试系统组件间接口的一种测试。后面的都是关于接口测试的补充。

对于新人来说,看到这个解释肯定也是懵懵懂懂,还是不知道到底什么是接口。

那到底什么是接口呢?


这张图对于新手来说就比较友好了,咱们现在的客户端(你的电脑)和服务器要建立一种连接。

比如说你打开一个网页,服务器要告诉你这个网页有什么东西,首先要建立一个连接,连接

就是一个通道,有了通道之后,客户端就发送一个请求信息(即网页的网址)给服务端,服务端

收到之后就会给你一个响应信息,告诉你这个页面上到底长什么样子。最后再把这个通道关掉。

这就有点像咱们生活中打电话的情形:也是你先拨号,说话。对方听到,再给你回话。最后挂电话。

接口就是上图“发出请求信息”这一项。

那接口测试测什么呢?

既然“发出请求信息”这项就是接口,那么接口测试测的也就是这块东西。

最常见的接口就是我们的http:/www.  类接口了。只要是问服务器拿到的任何逻辑都是接口。

既然现在我们知道了什么是接口,接口测什么。那下一步自然是——

接口测试怎么实现?


这里给大家三个方向,一个是手动流(不常见),一个是工具控,一个是码农。

工具控&码农优劣势对比表
 工具控码农
优势不需要懂太多代码,简单,学习成本低应用范围不容易被限制
劣势应用范围容易被工具本身限制非常耗时,学习成本高

手动流是一个很复杂的过程,但是它可以屏蔽掉任何的干扰(不管是加密还是什么),但是操作比较难

也要看真个网站做的怎么样,网站本身不行的话,做起来也会很烦。

隐藏在指尖的BUG

打开两个相同的浏览器,进入同一个网站的注册页面,先输入一个“test”用户名,再在另一个浏览器输入

相同的“test”用户名,然后就出现了下面的bug


然后,再重新点击两个浏览器中显示“用户名可用”的输入框和“手机号码”输入框,你会发现


这时,已经出现了一个不可重现的bug。那些不可重现的bug就是这么来的。大家也可以打开链接去尝试一下:https://passport.banggo.com/CASServer/custom/registryPage.do?service=http://bgact.banggo.com//Login/Reg

那么这到底是为什么呢?

首先,我们抓个包试试,先抓这个错误的请求。


这个错误的请求发给服务器之后,服务器返回的是“请求非法,请重试”。

再打开一个对的请求,大家可以看看服务器返回的是什么?


可以看到,这时服务器返回的是“该用户名已存在”!

我:¥@!%¥#……%¥……¥¥#¥

下面就揭晓答案


可以看到,每当新打开一个页面就会出现箭头所指的随机参数,它的目的是防止爬虫等,为了限制外部的访问频率而做的“手脚”。当然,这也是有弊端的,弊端就是每次打开页面都会生成一个新的随机参数 。

这时候就产生了上述问题:当第一次打开页面时,它给我一个token1,当再次打开相同的

页面的时候,它给我一个token2。这时,token1就被失效了。每次新打开的那个页面是显示

的是对的,原来的就失效了。


session和token有什么区别?

token就相当于门票,第一次凭票入场,后面就不需要再验证了。数据都是存在“门票”上的。

而session就相当于一个自动验证的机器,它是没有“票”发的。 数据都是存在服务器上的。

结语

咱们这一次的分享就先到这里结束了,下次会为大家带来剩下的“基于加密的接口测试”和

Jmeter实战,敬请期待。对接口测试感兴趣的,乐意一起交流的,可以加群680748947,不仅

为大家提供一个测试技术交流圈子,还有关于测试的学习资料可以提供。注意关注管理消息哦~







评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值