【接口自动化测试基础之路 03】接口鉴权

本文记录关于自动化测试的基础学习内容

使用的语言:python

python基础这里不做复习


一、接口鉴权

1、 cookie鉴权
第一次访问时,服务器产生,保存在客户端
cookie信息一般包括:name、value、domain、path、expires/max age、size
分为:会话级cookie和持久型cookie

2、session鉴权
第一次登录时,服务器产生,保存在服务器内存中
一般通过cookie传参sessionID,原理和cookie类似,用于判断是否为同一个客户端
(一般sessionID为一个会话级cookie)
一般失效时间为30分钟(可以修改配置)
sessionID也可以通过隐藏域、URL传递

3、token鉴权
服务器产生,保存在服务器的文件或数据库(硬盘)中
一般接口测试用专门的接口获取token(例如登录),后续请求其他接口都必须带上token

相同点:都是服务器产生,都用于鉴权
不同点:
cookie保存在客户端,不安全,一般用于存放不太重要的数据;
session一般用于存放重要的数据;
token是独立的鉴权,与cookie和session无关

二、接口mock sever(概念)

mock一般是为了解决单元之间的耦合依赖关系(桩服务)
应用场景比如:
1、前后端分离的架构,项目中,前端开发完成,后端接口未实现
2、项目对接第三方接口

具体的mock sever使用方法可以搜一下网上的 postman mock sever使用方法(比较简单,不做描述)

三、接口加解密(概念)

常见加密方式:
1、对称式加密(私钥加密):DES、AES、base64
2、非对称式加密(双钥加密):RSA(生成公钥和私钥,公钥加密文本,私钥解密文本)
3、只加密不解密:MD5、SHA1、SHA3等

具体的加解密代码可以搜一下网上的方法(套用就行)

四、接口签名(接口鉴权的一种)

1、概念
接口签名:将appID、appSecret、nonce、timestamp,以及其他参数按照一定规则组成一个识别你的账号是否有访问接口权限的字符串,再将这个字符串加密成新的字符串就是sign签名

appID、appSecret:针对不同的接口调用方提供
nonce:流水号或订单号,一串10位以上的随机字符串
timestamp:时间戳,一般10分钟内有效

2、作用(提高接口的安全性)
防止接口鉴权码泄露
防止接口数据被篡改(签名针对所有请求,如果某个数据改动,签名就会变)
防止接口重复请求(nonce唯一、时间戳有效时间)

3、接口签名规则(各公司大同小异)
第一步:获取到的所有参数(包括params和body),将参数的Key按照ASCII码进行升序排序
第二步:把排序后的参数使用&符号连接,形成字符串(例如:a=3&b=4)
第三步:将appID和appSecret拼接到字符串最前面
第四步:将nonce和timestamp拼接到字符串最后面
第五步:将上述字符串进行MD5加密成新的字符串,形成sign
第六步:将sign放在请求头(或者URL或者请求体)中,发送给服务器做鉴权

你可能感兴趣的:(接口自动化学习笔记,自动化)