全网最细,Python接口自动化测试-Session会话保持(实战详细)

2023-11-02


前言

在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,那么怎样解决呢?

可以通过session进行会话保持。

session(会话)

session,即会话。那么什么又是会话?我们来看一下会话的生存周期就能大致明白,如下:

开始:客户端(通常是浏览器)–>发送第一个请求–>某应用服务器,彼此成功建立连接,即创建会话;
会话中:客户端接着请求该应用服务器的其他资源;
结束:关闭客户端(通常是浏览器)或者会话超时,会话结束。

会话保持

会话保持,可以通俗的理解为使同一用户发送的相关联的请求处于同一个会话中不被断开。

比如使用session成功地登录了某个网站,则在再次使用该session对象请求该网站的其他网页时,都会默认使用该session中之前保存的cookie等参数去请求,而不需要再次登录。

session会话保持大致原理如下:
客户端应用第一次请求该应用服务器时,服务器会创建一个session,该session对象中会存储特定的用户会话所需的属性及配置信息(如用户信息或登录状态等),并保存在服务器中。

创建session时,会赋予其一个session ID,该session ID会被置于set-cookie中随着请求返回给客户端,并保存在本地的cookie中。

后续,客户端请求本应用中其他资源时,服务器就会收到cookie中的session ID,并根据ID在内存中查找之前创建的session对象,如果能找到且未过期,则说明是来自同一户用的请求。

python进行session会话保持

在接口自动化测试中,某些情况下可以使用session会话保持机制来保持登录状态,这样就不需要每次清求接口都需要先登录。

接下来,我们以查看TesterHome网站上个人的通知消息、个人信息为例,来说明在python接口自动化测试中怎样利用session保持登录状态。

注意:
这里我先尝试请求登录接口构造session,然后再利用该session去请求其他接口,仍然提示需先登录,说明该网站此种方式行不通。

因为登陆后跳转到了首页,所以这里我们可以利用请求首页接口构造session,然后就可以利用该session去请求其他接口了。

1、首先,Fiddler抓包获取登录成功后请求首页接口时的cookie

B1

2、拿到cookie,利用请求首页接口构造session对象。

import requests

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
    "cookie": '如上面截图所示获取的cookie,即登录成功后跳转时,请求首页接口https://testerhome.com/时的cookie'
}

# 构造一个全局session对象
S = requests.session()

# 使用session对象即S模拟登录成功后请求首页接口,更新S
h_url = "https://testerhome.com/"
h_res = S.get(url=h_url, headers=headers).text

这一步会得到的session对象S中就包含了登录成功后的cookie等信息了,再使用该session对象去请求其他接口就不需要再次登录了。

3、使用上一步得到的session对象,查看个人通知消息、个人信息接口。

# 使用session对象S请求个人通知消息接口
n_url = "https://testerhome.com/notifications/personal"
n_res = S.get(url=n_url).text
print(n_res)

# 使用session对象S请求个人信息接口
s_url = "https://testerhome.com/setting"
s_res = S.get(url=s_url).text
print(s_res)

请求个人信息接口,执行结果如下:

B2

4、完整代码如下:

import requests

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36",
    "cookie": '如上面截图所示获取的cookie,即登录成功后跳转时,请求首页接口https://testerhome.com/时的cookie'
}

# 构造一个全局session对象
S = requests.session()

# 使用session对象即S模拟登录成功后请求首页接口,更新S
h_url = "https://testerhome.com/"
h_res = S.get(url=h_url, headers=headers).text

# 使用session对象S请求个人通知消息接口
n_url = "https://testerhome.com/notifications/personal"
n_res = S.get(url=n_url).text
print(n_res)

# 使用session对象S请求个人信息接口
s_url = "https://testerhome.com/setting"
s_res = S.get(url=s_url).text
print(s_res)

session与cookie是不同的机制。

相同点:两者都能记录用户的状态,且都是由服务端生成。
不同点:cookie是存储在本地客户端的,而session则存储在服务端。
两者之间存在联系:session会话保持机制需要依赖cookie,因为session ID是存储在cookie中的。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

每一次的付出都将成为未来的光芒,勇敢追逐梦想,挑战自我,坚持不懈。即使路途漫长,也要保持信念,不放弃,奋力前行。相信自己的力量,终将收获辉煌的成果。

不论起点如何,只要心怀梦想,坚持努力,不屈不挠,努力追求,你就能超越自我,绽放出耀眼的光芒,成就辉煌人生。相信自己,勇往直前,胜利属于那些敢于全力奋斗的人。

在追寻梦想的路上,困难和挫折是无法避免的,但只要心怀坚定的信念,勇往直前,努力拼搏,就一定能获得成功的喜悦。每一次的奋斗都是一次革命,为自己的人生谱写壮丽乐章。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

全网最细,Python接口自动化测试-Session会话保持(实战详细) 的相关文章

  • 步骤详图 教你在linux搭建容器环境

    警告 切勿在没有配置 Docker YUM 源的情况下直接使用 yum 命令安装 Docker 1 准备工作 系统要求 要安装Docker CE 社区版 操作系统的最低要求是CentOS7 7以下版本都不被支持 卸载旧版本 Docker改版
  • 测试开发必知:有Tomcat,为什么还要Nginx?

    只用Tomcat 不用Nginx搭建Web服务 行不行 我曾经提出的愚蠢问题 今天详细给自己解释下 为什么必须用Nginx 不用Nginx 只用Tomcat的Http请求流程 浏览器处理一个Http请求时 会首先通过DNS服务器找到域名关联
  • 微信小程序的自动化测试框架

    微信发布了小程序的自动化测试框架Minium 提供了多种运行验证方式 其特点 支持一套脚本 iOS Android 模拟器 三端运行 提供丰富的页面跳转方式 看不到也能去得到 可以获取和设置小程序页面数据 让测试不止点点点 可以直接触发小程
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • 测试用例评审流程优化

    测试用例 评审是QA日常工作流程中的关键一环 是QA同学完善测试用例 交流测试经验的好机会 负责组内测试用例建设以来 作者对于评审流程做了一些优化工作 本文作者将整个优化过程中的心得体会做了一个总结 希望能给大家带来帮助 01 原始流程 1
  • 软件测试|使用Python轻松裁剪视频

    简介 裁剪视频是在视频编辑和处理中常见的任务之一 Python提供了多种库和工具 可以用来裁剪视频 在本文中 我们将详细讨论如何使用Python来裁剪视频 并提供示例代码 步骤1 环境准备 首先 我们要安装必要的Python库 我们将使用
  • 软件测试|SQLAlchemy环境安装与基础使用

    简介 SQLAlchemy 是一个强大的 Python 库 用于与关系型数据库进行交互 它提供了高度抽象的对象关系映射 ORM 工具 允许使用 Python 对象来操作数据库 而不必编写原生SQL查询 本文将介绍如何安装 SQLAlchem
  • 软件测试|教你如何使用Python绘制出奥运五环旗

    简介 我们之前介绍过使用turtle来绘制正多边形 但是绘制正多边形只是turtle模块最基础的使用 我们可以使用turtle模块绘制出更多不一样的精彩图形 本文就来给大家介绍一个比较简单的turtle绘图实例 绘制奥运五环旗 初始化参数
  • 软件测试|教你使用Python下载图片

    前言 我一直觉得Windows系统默认的桌面背景不好看 但是自己又没有好的资源可以进行替换 突然我一个朋友提醒了我 网络上的图片这么多 你甚至可以每天换很多个好看的背景 但是如果让我手动去设置的话 我觉得太麻烦了 我不如使用技术手段将图片下
  • Python自动化测试 | 如何使用Robot Framework进行自动化测试?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 测开和测试平台是否有存在的必要?

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 如何写好一个错误报告

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 摸爬滚打多年的打工人,总结了三条职场真理,绝不假大空!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 软件测试中的白盒测试,这些技巧你知道吗?

    对于很多刚开始学习软件测试的小伙伴来说 如果能尽早将黑盒 白盒测试弄明白 掌握两种测试的结论和基本原理 将对自己后期的学习有较好的帮助 今天 我们就来聊聊黑盒 白盒测试的相关话题 1 黑盒测试的方法和小结 最常见黑盒测试方法包括 边界值 等
  • Python常用的自动化小脚本!

    一 list转json string转json 可以使用Python内置的 json 模块将列表 List 和字符串 String 转换成JSON格式 List转JSON假设我们有一个列表 List my list apple banana
  • 软件测试/测试开发/全日制/测试管理丨Android WebView 技术原理

    Android WebView是一个内置的组件 允许在Android应用中嵌套显示Web内容 Android WebView的技术原理涉及到使用WebKit引擎来渲染Web内容 并提供一系列API和回调函数 使得开发人员可以控制和定制Web
  • Web自动化测试 —— cookie复用

    一 cookie简介 cookie是一些数据 存储于用户电脑的文本文件中 当web服务器想浏览器发送web页面时 在链接关闭后 服务端不会记录用户信息 二 为什么要使用Cookie自动化登录 复用浏览器仍然在每次用例开始都需要人为介入 若用
  • 一文让你快速写出高效的软件测试用例

    前言 编写测试用例的目的就是确保测试过程全面高效 有据可查 但要编写出高效的测试用例 需要搞清楚什么是测试用例 以及如何编写出高效的测试用例 接下来将从以下几个部分来进行展开 1 什么是测试用例 2 如何编写测试用例 3 软件测试学习资源分
  • UI自动化测试之Jenkins配置

    背景 团队下半年的目标之一是实现自动化测试 这里要吐槽一下 之前开发的测试平台了 最初的目的是用来做接口自动化测试和性能测试 但由于各种原因 接口自动化测试那部分功能整个废弃掉了 其中和易用性有很大关系 另外 也和我们公司的接口业务也有关
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐