news 2026/6/10 19:20:39

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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进行访问。

总结:

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

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

软件测试面试文档

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

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 13:43:45

接口测试 —— 接口测试的意义

1、接口测试的意义(优势) (1)更早的发现问题: 不少的测试资料中强调,测试应该更早的介入到项目开发中,因为越早的发现bug,修复的成本越低。 然而功能测试必须要等到系统提供可测试…

作者头像 李华
网站建设 2026/6/9 20:09:58

上市公司公告信息抽取:AI智能实体侦测服务财务数据识别实战

上市公司公告信息抽取:AI智能实体侦测服务财务数据识别实战 1. 引言:上市公司公告中的信息提取挑战 在金融与投资分析领域,上市公司公告是获取企业动态、财务状况和重大事项的核心信息来源。然而,这些公告通常以非结构化文本形式…

作者头像 李华
网站建设 2026/5/15 5:13:43

RaNER模型实战:新闻标题实体抽取系统构建

RaNER模型实战:新闻标题实体抽取系统构建 1. 引言:AI 智能实体侦测服务的现实需求 在信息爆炸的时代,新闻、社交媒体和公开文档中充斥着海量非结构化文本。如何从中快速提取关键信息——如人名、地名、机构名等命名实体(Named E…

作者头像 李华
网站建设 2026/6/10 13:25:57

Python 四大主流 Web 编程框架

目前Python的网络编程框架已经多达几十个,逐个学习它们显然不现实。但这些框架在系统架构和运行环境中有很多共通之处,本文带领读者学习基于Python网络框架开发的常用知识,及目前的4种主流Python网络框架:Django、Tornado、Flask、Twisted。 …

作者头像 李华
网站建设 2026/6/9 17:26:02

Pytest自动化测试框架

Pytest是一种基于Python编程语言的自动化测试框架,它提供了丰富的功能和灵活的扩展性,可以用于单元测试、集成测试、功能测试、端到端测试等多种场景。本文将介绍Pytest框架的基础知识,包括安装、配置、运行测试、断言和参数化等方面。 一、…

作者头像 李华
网站建设 2026/6/10 2:38:57

AI智能实体侦测服务版本控制:Git分支管理模型推荐

AI智能实体侦测服务版本控制:Git分支管理模型推荐 1. 引言:AI 智能实体侦测服务的工程化挑战 随着自然语言处理技术的快速发展,AI 智能实体侦测服务已成为信息抽取、知识图谱构建和智能搜索等场景的核心组件。本文聚焦于一个基于 RaNER 模型…

作者头像 李华