接口自动化入门:登录流程中的cookie,Session, Token鉴权实践

http协议:简单、快捷、无连接、无状态。多次请求之间是没有关联的,独立的。

一、cookie鉴权

1、什么是cookie?

cookie是在服务器产生的存储在客户端的一小段文本信息,格式是字典,键值对。

2、cookie的分类

会话级:保存内容,当浏览器关闭就会丢失
持久化:保存硬盘,只有当失效时间到了才会被清除

3、如何查看cookie

name,value、domain、path、express、size

4、cookie如何实现鉴权(原理)

当客户端第一次访问服务器时,那么服务器就会产生cookie,然后通过相应头的方式在Set-Cookie传输到客户端。客户端从第2-N次请求都会自动的带上这些cookie。

致命的弱点:cookie保存在客户端,对于一些敏感信息,用户名,密码,身份证。 不安全

第一个接口:

第二个接口:

二、session鉴权

当用户第一次访问服务器的时候,然后再服务器端保存一个sessionid,这个sessionid是经过加密的,然后通过cookie吧这个sessionid保存到客户端,然后请求服务器的时候只发送sessionid。

sessionid保存在服务器内存中。

致命弱点:解决了cookie不安全的问题,但是随着又出现了新的问题。当用户量特别大的时候,会导致服务器崩溃。

服务器集群: 请求IP捆绑、session复制、单点登录。

第一个接口:

第二个接口:

三、token鉴权

当一个用户登录之后,就给他发送一个token令牌,下一次用户再次请求的时候,只要带上这个令牌。token可以通过抓包抓取(http)
token保存在文件中或是保存在数据库中。
加密:
对称加密:des aes
双钥加密:RSA

只加密不解密:md5 SHA
token的分类:
access_token:有时间期限,限制在15分钟
refresh_token:一般15天

第一个接口:

第二个接口:

四、cookie、session、token的相同点和区别?

相同点:都是用于做鉴权的,都是服务器产生的。

区别:

(1)cookie存储在客户端,session存储在服务器,session的安全性比cookies高。所以一般情况下把重要的信息放在session,把不重要的放cookies。

(2)session存在服务器内存,token存在服务器的为难或者数据库中,token的好处是比session更省服务器资源。token只需要在服务器解密即可。

自动化层面:

工具:postman、jmeter

代码:借口关联,cookie鉴权、session鉴权、web自动化用cookie跳过验证码

出现了新的问题:第三方支付,银行,金融项目,安全的要求更高。

数字证书:

五、接口签名:sign

既可以在工具里面解决,也可以在代码里面解决。

为什么我们有工具postman、jmeter,那么我们为什么做代码级别的接口自动化?

(1)敏捷开发:接口巨大 不容易做版本控制和团队协作

(2)工具太死,我们需要自定义一些功能

(3)一个项目中有多种协议的接口

(4)定位问题

(5)工具,没有办法生成美观的报告。allure

(6)对于复杂的接口,多接口协议,数据库

(7)日志监控

(8)接口自动化 web自动化

深度:接口自动化

(1)所有的请求都必须要统一管理

(2)封装好接口自动化测试框架之后,功能测试只需要写测试用例,不需要写代码

1、什么是接口签名?

使用用户名、密码、时间戳和所有排过序的参数组合起来,再加密得到的字符串,字符串是唯一的幼犬访问第三方金融接口的鉴权码。=sign接口签名。

2、为什么需要做接口签名?

1、防伪装攻击 2、防篡改攻击 3、防重放攻击 4、防数据泄露

3、如何做接口签名,了解签名规则

1、对所有请求的参数按key按ASCII码做升序排列
{“c”:“3”,“b”:“2”,“a”:“1”} ➡️ {“a”:“1”,“b”:“2”,“c”:“3”}
2、把参数名和参数值连接成字符串
a=1&b=2&c=3
3、用申请到的appid和appsecret连接到字符串的头部
appid:用户名 appsecret:密码
appid=admin&appsercet=123&a=1&b=2&c=3
4、用时间戳链接到字符串的尾部
appid=admin&appsercet=123&a=1&b=2&c=3&timestamp=786276574
5、然后把这个字符串按照32位的MD5加密,加密后再转化成大写。
sign=***
10秒有效

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

猜你喜欢

转载自blog.csdn.net/myh919/article/details/131641176
今日推荐