当前位置: 首页 > news >正文

Python接口自动化测试之Token详解及应用

以下介绍Token原理及在自动化中的应用。

一、Token基本概念及原理

1.Token作用

为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。

2.什么是Token

Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。

3.Token运行原理

1.当用户首次登录成功之后, 服务器端就会生成一个 token 值,这个值会在服务器保存token值(保存在数据库中),再将这个token值返回给客户端;

2.客户端拿到 token 值之后,进行保存 (保存位置由服务器端设置);

3.以后客户端再次发送网络请求(一般不是登录请求)的时候,就会将这个 token 值附带到参数中发送给服务器;

4.服务器接收到客户端的请求之后,会取出token值与保存在本地(数据库)中的token值进行比较;

5.如果两个 token 值相同, 说明用户登录成功过,当前用户处于登录状态;

6.如果没有这个 token 值, 没有登录成功;

7.如果 token 值不同,说明原来的登录信息已经失效,让用户重新登录;

4.Token认证优点

5.Token和 Cookie、Session 的选型

对于只需要登录用户并访问存储在站点数据库中的一些信息的中小型网站来说,Session Cookies 通常就能满足。如果有企业级站点,应用程序或附近的站点,并且需要处理大量的请求,尤其是第三方或很多第三方(包括位于不同域的API),则 token显然更适合。

二、Token实战

讲了那么多概念和原理,很多小伙伴可能不知道token长啥样,接下来以接口登录为例。

  1. import requests

  2. url = 'http://127.0.0.1:8000/user/login/'

  3. payload = {

  4. "username":"vivi",

  5. "password":"123456"

  6. }

  7. res = requests.post(url,json=payload)

  8. print(res.text)

响应结果如下:

  1. {

  2. "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6InZpdmkiLCJleHAiOjE1ODY4NDg5NzgsImVtYWlsIjoidml2aUBxcS5jb20ifQ.a2ExtNVjGrY8T1gefcJTnk4JUOx9NVtCk6lMK8o47co",

  3. "user_id": 1,

  4. "username": "vivi"

  5. }

响应结果有返回token,但是token要怎么用呢,不急,我们一步步来。假设现在有个项目列表的接口,在不登录的前提下,不能访问。
  1. import requests

  2. url = 'http://127.0.0.1:8000/projects/'

  3. pro_res = requests.get(url)

  4. print(pro_res.json())

AI写代码python运行

响应结果:提供认证信息

{'detail': '身份认证信息未提供。'}

AI写代码

AI生成项目

项目列表接口需要携带token,服务器校验成功后,才能成功返回信息

重点来了,如何从登录接口获取token,项目列表接口又如何携带token?

访问登录接口,并获取token。

  1. import requests

  2. url = 'http://127.0.0.1:8000/user/login/'

  3. payload = {

  4. "username":"vivi",

  5. "password":"123456"

  6. }

  7. login_res = requests.post(url,json=payload)

  8. # 从响应结果中获取token值

  9. token = login_res.json()["token"]

  10. print("token:", token)

响应结果为:

token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6InZpdmkiLCJleHAiOjE1ODY4NTEyMjksImVtYWlsIjoidml2aUBxcS5jb20ifQ.neqVM5MFGuFbKIUOCqW_qXBajhTTQMfmAs2PWTkEMes

AI写代码

AI生成项目

那项目列表接口又如何携带token呢,token直接加在请求头,这样就可以了么,当然不是,我们还需要在token前加上前缀,前缀由后端设置,见过最多的前缀是:Bearer,不清楚的参照接口文档。

项目列表携带token访问。

  1. import requests

  2. url = 'http://127.0.0.1:8000/projects/'

  3. # 拼接最终的token,注意中间有个空格

  4. token = "Bearer" + " " + token

  5. headers={

  6. "authorization": token

  7. }

  8. pro_res = requests.get(url,headers=headers)

  9. print(pro_res.json())

响应结果为:

  1. {

  2. "count": 2,

  3. "results": [

  4. {

  5. "id": 1,

  6. "name": "自动化测试平台项目1",

  7. "tester": "vivi"

  8. },

  9. {

  10. "id": 2,

  11. "name": "自动化测试平台项目2",

  12. "tester": "coco"

  13. }

  14. ],

  15. "total_pages": 1,

  16. "current_page_num": 1

  17. }

总结:本文主要介绍token基本概念、运行原理及在自动化中接口如何携带token进行访问。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

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

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

http://www.jsqmd.com/news/225101/

相关文章:

  • 政府公文信息抽取:AI智能实体侦测服务格式兼容性处理教程
  • 接口测试 —— 接口测试的意义
  • 线上医院挂号系统毕业论文+PPT(附源代码+演示视频)
  • Qwen2.5-7B最佳实践:避开显存坑,云端按需扩容
  • 开源RaNER模型部署教程:AI智能实体侦测服务完整指南
  • Windows玩转Qwen2.5:云端方案比装双系统简单
  • Qwen2.5-7B模型解析:云端GPU实操,2小时深度体验
  • 智能实体侦测服务:RaNER模型API开发指南
  • AI智能实体侦测服务性能对比:RaNER vs 其他主流NER模型
  • 怕浪费钱?Qwen2.5按秒计费方案,用1分钟付1分钟
  • RaNER模型WebUI定制:多主题样式切换
  • RaNER模型实战:多语言文本实体识别部署案例
  • 多租户SaaS架构实现:AI智能实体侦测服务隔离部署实战案例
  • RaNER模型部署实战:从零开始搭建中文实体识别系统
  • AI智能实体侦测服务异常检测联动:非规范实体预警功能实现
  • 预算有限?Qwen2.5体验成本对比,云端方案省80%
  • RaNER模型应用实战:科研论文实体识别系统
  • RaNER模型实战:电商评论实体抽取与分析案例
  • 中文命名实体识别API开发:RaNER模型服务化
  • 导师严选2026 AI论文工具TOP9:专科生毕业论文必备测评
  • Qwen2.5-7B环境配置太复杂?云端一键解决所有依赖
  • 没GPU怎么微调Qwen2.5?云端解决方案1小时1块钱起
  • Qwen2.5-7B实操案例:客服机器人部署,成本节省70%
  • RaNER模型准确率提升秘诀:AI智能实体侦测服务调优指南
  • AI智能实体侦测服务实战案例:金融领域实体抽取应用
  • AI智能实体侦测服务医疗科研:医学文献实体抽取
  • Qwen2.5-7B学术研究指南:学生专属云端GPU优惠方案
  • RaNER模型应用案例:舆情分析实体识别
  • AI实体识别WebUI实战:基于RaNER的高效部署案例
  • AI智能实体侦测服务保姆级教程:从零开始实现中文命名识别