接口自动化测试(3)状态码、请求头、响应头、token
一、常用状态码(重点!!)
200 请求成功
201 created :添加资源成功
204 No Content :删除资源成功
301 Moved Permanently 永久重定向(请求A的时候,会自动跳转到B)
302 临时重定项
400 Bad Request 客户端请求错误
401 Unauthorized 无权限访问该系统
403 Forbidden 有权限但是禁?访问
404 请求的资源不存在
405 不被允许的请求?法
415:只有请求头不对
500 服务器内部错误
504 GateWay Timeout网关超时
1.1 返回301:永久重定向
如在空白标签页进入www.360buy.com会跳转到京东,并且状态码显示为301(就说明此域名被永久重定向到京东的首页了),这种情况与开发确认即可。
1、请求头不对 2、请求参数不对
(检查发出的请求)
1.3 针对401和403在postman中认证(授权、鉴权)方式:
1、基本 basic
2、常规 digest
3、自定义
4、oauth2.0 (微信)
(资源路径错误返回404)
如果之前的方法都是允许的,但是突然所有方法都出现405,这可能是引入了安全体系,需要找运维把服务器ip地址增加到白名单里。
1.6 415:只有请求头不对
1.7 500 :服务器内部错误
(开发问题)
1.8 504 :
网关超时---》不一定是程序员代码的问题,也可能是第三方的问题
APIgateway 网关:
1、统一API访问入口
2、监控API流量
二、请求头
请求头中内容:
cookie: 反爬虫 ,认证授权
referer:请求目标地址是从哪个页面发送过来的
content-type:表示什么样的数据格式
user-agent:表示访问目标服务器的是什么系统版本、浏览器、及版本信息
以上四个在请求时都需要输,进行伪装。有些内容可能为内部自定义请求头。
如:在拉钩网搜索职位,在postman中发送请求获取本页的信息:
需要在postman的Headers中输在拉勾网获取的cookie、referer、content-type、user-agent和Body中输在拉勾网获取的Payload请求参数。
三、响应头:
content-type:返回的响应数据是什么样的数据格式 (JSON XML HTML)
Set-cookie:服务端把生成的认证凭证信息返回给客户端
http://ws.webxml.com.cn/webservices/qqOnlineWebService.asmx?op=qqCheckOnline
四、cookie session token(重点!!)
HTTP是一个无状态的协议,所以也就导致了COOKIE技术的发展,通过COOKIE能够记下用户操作的行为状态,但是COOKIE它是存储在客户端的,所以就不安全,为了解决安全的问题,SESSION诞生,SESSION它是存储在服务端相对来说比较安全。后面移动互联网诞生,就有了TOKEN,TOKEN本质上是SESSION原理来实现的,它的流程与SESSION一样,它被称为一个令牌。
4.1 COOKIE:
能够记下用户操作的行为状态
1、存储在客户端
2、不安全
以登录为例来说明COOKIE的流程:
1、客户端输入账户密码登录成功
2、在服务端生成COOKIE的信息,通过响应头中的SET-COOKIE把生成的COOKIE返回给客户端
3、客户端在下次请求的时候,通过请求头中的cookie把返回的cookie带上发送给服务端,服务端内部进行验证。
4.2 SESSION
SESSION记录用户的操作行为,它是存储在服务端相对来说比较安全。
以登录为例来说明SESSION的流程:
1、客户端输入账户密码登录成功
2、在服务端会生成SessionID,同时存储在服务端本地,通过响应头中的Set-cookie把生成的SessionID返回给客户端
3、客户端接收到SessionID后
4、客户端再次请求服务端的时候(比如访问个人主页),会在请求头的cookie中带上SessionID发送给服务端
5、服务端接收到客户端发送过来的SessionID,与存储在服务端本地的SessionID之间会进行对比,如果一致,允许访问个人主页,如果不一致,就会重定向到登录的页面。
实践理解session:
https://i.epwk.com/Home/Employer/index.html
13484545195 asd888/==
1、打开开发者工具后登录此页面
2、登录成功后,捕捉到login,其中的响应头会有一些Set-Cookie(复制出来)
3、点击个人主页进行查看,打开开发者工具,刷新页面后会有我们访问个人主页的这一请求,会看到Cookie数据(复制出来)
4、打开记事本工具或者文本对比工具(比较我们的请求Cookie中应该是包含我们登录时的返回的Set-Cookie的内容的)
4.3 TOKEN
TOKEN本质上是SESSION原理来实现的,它的流程与SESSION一样。
TOKEN特点:
1、每次登录成功后,生成的TOKEN都是不一样的
2、返回的TOKEN是一个随机的字符串
实例理解:
登录页面成功后会返回一个token:
当访问一个页面时,请求头中带着token请求(Authorization的JWT后):
比对返回的TOKEN和请求中带的TOKEN:
持久化:把某些特定的信息存储下来(临时/永久)
当把图中箭头标的位置clear清除时,会立刻跳转到登录页面(相当于删除了持久化中记录的用户状态)