请求 接口测试的前提条件:
1.网是通的:为了与服务器端进行连接。
2.服务器是可以连接的;如果服务器关了,比如在凌晨2:00到8:00要对服务器进行维护,这个期间把服务器给关了,这个时候想要登录微信去聊天是不可能的。因为它现在告诉你我打样了,这段时间不提供服务了。
3.接收响应数据,测试人员拿到响应数据后去进行验证。
4.最后所有的数据请求结束了,不想做进一步的数据交互了,那就关闭连接。
接口测试原理:
模拟客户端向服务器发送报文请求,服务器接收请求报文后对相应的报文做处理并向客户端返回应答,客户端接收应答的一个过程。
postman是怎么实现这个过程
客户端,可以下载到电脑桌面上安装
另外一种,嵌入的谷歌浏览器,因为postman是谷歌提供的,也可以是谷歌的插件,但现在有独立的版本,可以下载到桌面安装了。
我们跟别人连接,首先要知道别人是谁,要发送数据发给谁,这是基本条件。
1.那么就有我们的url,它就是所谓的接口地址,我们要发送的地址,接口地址,这是你必须要知道的,你不知道这个地址,这个东西就送不出去了,url就表示我们要发送数据的对象,我们要发的接口地址,这是必须要提供的。我们要发送到哪家去。
微信它是有多个接口的,一个接口就提供了一个功能。那登录是登录接口的功能,公众号是公众号的功能,我们还有其他功能,充值,发红包这些,那不同的操作都有不同的功能接口,那我现在要用权限验证的这个功能,那你必须要告诉我这个接口在哪。
就像你在一座大楼里面,你要找904,你要明确告诉我904这个东西,因为一栋楼有非常多的房号,要在那么多房号中选择一个想要的房号,那你就要告诉我这个房号,那这一个房号就是一个口,200个接口意味着有200个房号。
2.请求数据。既然你已经知道你的目的是哪里了 ,接下来告诉你的目的地你要干什么,所以第二件事情就是你的请求数据。在我们的接口请求中,虽然你有请求数据,但是它有不同的请求方式或者说传参方式。
请求数据接口当中有一定方式,get 或者post是主要的两种请求方式,这两种是我们用的非常多的,但是实际上,http请求接口请求除了这两种还有更多的请求方式,着重是get和post。
找个例子演示:https://www.juhe.cn/docs/api/id/58
在网上申请了一个星座运势的接口,这个接口是免费的。免费数据要实名认证。
可以看下这个接口文档中,API文档,API就是接口的意思,接口就是实现的一个功能,API文档里描述了下面这些:
接口地址:http://web.juhe.cn:8080/constellation/getAll
在地址栏放入地址后,选择请求方式,为什么会有那么多不同的请求方法的选择呢,这个是http请求的规范,每一种请求方式它做的事情都是不一样的。我既然要与后台这么大的一个系统服务做各种数据交互,那肯定有不同的处理模式,你来找我肯定有不同的处理模式,
那你来找我的模式是我们常用的get和post,那他两有什么区别呢,get请求说白了就是向服务端去查询数据,它只是一个查询操作,你可以结合多个查询条件向服务端说我要查询什么什么,我想要获取个人信息,你想向微信的服务端获取个人信息,我要查询我现在的余额有多少,我要查询有多少个好友,这个都是向服务器提供查询条件,然后去查询数据就好了 ,没有所谓的中间处理过程。根据你的查询条件,把数据返回给你。
那post又是什么呢,简单一点,你可以这样稍稍区分一下,post我们经常讲一个数据有增删改查,你要对数据进行修改或者更深入的逻辑处理的时候,就用post,像你提供了登录的用户名和密码,是因为你要服务端对你做权限验证,那权限验证这个事情是服务端去做的,你有逻辑处理在里面,所以这个过程一般来说都是post的方式;你去请求关注公众号,是你要去告诉它给你做一件时间,不仅仅是查询那么简单,是你让服务端,告诉它你让它去做一件事,不仅仅是查询那么简单,还有这那这那,还有可能要修改一些数据,就用post。
如果注册接口是什么请求方式?post,注册接口是你向服务器注册一条数据,你注册的数据要在服务端没有存在的,写入数据,对服务端数据修改和校验的过程,所以是post,很多情况下基本全是post,get仅仅是作为查询,服务器根据你的查询条件,把查询结果返回给你,一个是我要对你传入的数据做逻辑处理,甚至要修改数据,就要做post方式,我怎么知道它要不要对数据做逻辑处理,去修改数据呢,这就是你在测试的时候必须对接口的功能有比较多的了解,对业务要了解,否则做不好的。
权限认证,我们现在没有权限认证。请求头,我们暂时也没有,body翻译成中文就是请求数据,请求体。在get请求中,body是灰色的,也就说,你请求数据是不可以写在body里的,它直接给你屏蔽掉了。换成post就可以在body里写了。
如上图:问号前面是我们的请求地址,问号后面跟了一堆参数,这个参数是怎么来的。postman中怎么来写这个参数,在postman中在哪里写呢。