接口测试实战接口测试之cookie实战

Posted 黑黑白白君

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口测试实战接口测试之cookie实战相关的知识,希望对你有一定的参考价值。

部分前情:

《【接口测试实战(零)】接口测试简介》

《【接口测试实战(一)】搭建接口测试环境》

《【接口测试实战(二)】根据接口文档使用postman测试》

《【接口测试实战(五)】接口测试之断言实战》

《【接口测试实战(七)】postman之变量与沙盒实战》

《【接口测试实战(八)】postman之Collections和数据驱动测试实战》



1)cookie

1.1 什么是cookie?

HTTP 是无状态协议,它不对之前发生过的请求和响应的状态进行管理。也就是说,无法根据之前的状态进行本次的请求处理

  • 假设要求登录认证的 Web 页面本身无法进行状态的管理(不记录已登录的状态),那么每次跳转新页面要么需要再次登录,要么需要在每次请求报文中附加参数来管理登录状态
  • 如果让服务器管理全部客户端状态,则会增加服务器的 CPU 及内存资源的消耗。

Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。Cookie 的工作机制是用户识别及状态管理。

  • 调用 Cookie 时,由于可校验 Cookie 的有效期,以及发送方的域、路径、协议等信息,所以正规发布的 Cookie 内的数据不会因来自其他Web 站点和攻击者的攻击而泄露。
  • 目前使用最广泛的 Cookie 标准却不是 RFC 中定义的任何一个,而是在网景公司制定的标准上进行扩展后的产物。

Cookie交互情景:

在这里插入图片描述

1、Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息,通知客户端保存 Cookie。

在这里插入图片描述
2、当下次客户端再往该服务器发送请求时,客户端会自动在请求报文中加入 Cookie 值后发送出去。

  • 服务器端发现客户端发送过来的 Cookie 后,会去检查究竟是从哪一个客户端发来的连接请求,然后对比服务器上的记录,最后得到之前的状态信息。

报文交互过程:

1、请求报文(没有 Cookie 信息的状态)

在这里插入图片描述

2、响应报文(服务器端生成 Cookie 信息)

在这里插入图片描述

3、请求报文(自动发送保存着的 Cookie 信息)

在这里插入图片描述

1.2 postman的cookie支持

Postman操作cookie可以有两种方式:

  1. 直接在头域中添加cookie头域(适用于已知请求时的cookie头域的情况)。
  2. 使用Postman的cookie管理机制,既可以手动添加,同时postman也会将操作流程中获取的参数自动保存,从而可以通过调用前置接口来完成cookie获取(静态获取的时候,可以直接通过 MANAGE COOKIES来自动提取)。

postman测试时,除了静态分析填写Cookie,遇到Cookie频繁变化的常见,需要动态获取Cookie,可以通过变量的方式获取和传递。

  • 这部分暂时还没研究,具体可参考:https://www.pianshen.com/article/25891441331/

2)实战:电商接口测试

在登陆接口完成登录之后,通过购物车接口获取购物车中的信息,此时购物车接口需要使用登录后的cookie以保持登录状态

  • 登录接口:http://www.testingedu.com.cn:8000/index.php?m=Home&c=User&a=do_login&t=0.5404187243051779
    • POST
    • body需要填写username、password和verify_id
  • 购物车接口:http://www.testingedu.com.cn:8000/index.php?m=Home&c=Cart&a=header_cart_list

2.1 手动添加cookie的方式

手动登录时抓包可以看到购物车接口:
在这里插入图片描述

  • 方式1:通过在Headers直接把cookie复制进去,即可获取购物车的内容:
    在这里插入图片描述

  • 方式2:通过cookie管理机制添加cookie:

    cookie的参数可以在抓包中看到:

    在这里插入图片描述
    在postman中的cookie里添加对应的参数:

    在这里插入图片描述

2.2 先调用登录接口,然后让postman自动添加cookie的方式

先用POST进行登录:
在这里插入图片描述
然后可以看到cookie中已经自动添加了对应的cookie,此时调用查看购物车内容的接口,可以得到预期返回值:

在这里插入图片描述

可以用collections按顺序进行测试,结果如下:

在这里插入图片描述



【部分内容参考自】

  • 《图解HTTP》
  • 电商接口来源:软件测试-Postman接口测试实战从入门到精通【特斯汀学院】

以上是关于接口测试实战接口测试之cookie实战的主要内容,如果未能解决你的问题,请参考以下文章

接口测试实战接口自动化之持续集成(postman+newman+jenkins)

接口测试实战postman之Collections和数据驱动测试实战

接口测试实战postman之变量与沙盒实战

接口测试实战接口测试之sandbox(沙盒)

接口测试实战接口测试之断言实战

接口测试框架实战与自动化进阶指南!