Python接口自动化测试:利用的是requests库,Fiddler抓包配合、以及鉴权的流程

1.前言:

今天服务器那边还在改Bug,平台有些功能测不了,海哥突然让我写自动化脚本,受宠若惊,压根没干过,所以讲过程和知识点仔细记录下来。
主要解决问题:接口自动化之Cookie,Session,Token鉴权解决方案
今天终于把鉴权问题解决了!

2.情景:

平台是需要登录后才能使用相关功能,我所要做的是就是某个添加功能模块不断的添加设备数据。

3.相关知识点:

http协议:多个请求之间是独立的,但是在某些场景下需要验证多个请求时同一个主机发出

3.1 Cookie

Cookie并不是缓存,Cookie是在服务器产生的存储在客户端的一小段文本信息,格式是字典(键值对)
Cookie分类: 会话级(浏览器关闭就会丢失) 持久化(保存在硬盘里,过了失效时间被清除)
Cookie鉴权原理:
Cookie缺点:保存在客户端,对于一些敏感信息不够安全。

3.2 Session

当用户第一次访问服务器的时候,服务器会产生一个Session_ID(字符串)并保存起来(保存在服务器内存),这个Session_ID传输的过程中是加密的,客户端收到之后会保存在Cookie里,之后请求只发生Session_ID
Session缺点:解决了Cookie不安全问题,但当用户量比较大的时候容易导致服务器崩溃

3.3 token

当用户第一次访问服务器的时候,服务器会返回一个Token令牌(保存在数据库里),下次申请带上这个令牌就可
token分类:access_token(一般15分钟) refresh_token(一般15天)

3.4 Cookie Session token三者的异同点

相同点:都是服务器产生的数据
不同点:使用Session可不用存储敏感信息,Cookie保存在客户端不安全,Session保存服务器内存中数据量大易崩溃, token保存在数据库或者文件中。

4.思考过程

4.1 登录接口

开始时是完全没有头脑的,只能先在浏览器上操作一遍用Fiddler抓包把相关参数记录下来。
其中每一个请求方式是在header中在这里插入图片描述
抓包要注意的有,URL,数据格式、具体参数。除此之外还要注意header里面
一下是登录接口,在这里Body中的内容既可以写成键值对,因为变化不对也可以直接写成字符串
在这里插入图片描述

4.2添加设备接口

在添加设备时遇到的最大问题就是鉴权问题,不管是哪种鉴权方式在正常的请求下鉴权信息已经被包含在Header中。
其次就是我开始直接把token信息抓到之后放入我的代码中,因为我在正常网页添加的时候发现每一个token信息都是一样的,这对于自动化接口来说是一个误区,在第一步的登录接口中每次服务器返回的token都不是一样的,所以在这里需要用正则表达式在获取最新的token。

此外还需要注意Authorization认证,这个HTTP的一个基础认证,需要抓包看一下具体内容,一般和用户名、密码、鉴权信息、时间戳有关
在这里插入图片描述

在解决完鉴权之后服务器返回操作错误,最后是因为我得Body里面的内容格式写的有差别,在这里还需要注意一下json的写法
在这里插入图片描述

post请求中json和data的和两种格式:
左图是正确格式,右图是我手残格式
在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42573052/article/details/127015270