iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python+pytest接口自动化之session会话保持的实现
  • 513
分享到

python+pytest接口自动化之session会话保持的实现

2024-04-02 19:04:59 513人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录前言一、session(会话)二、会话保持三、python进行session会话保持总结前言 在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,

前言

在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,那么怎样解决呢?我们可以通过Cookie绕过登录,其实这就是保持登录状态的方法之一。那么今天笔者想讲通过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

 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)

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

 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中的。

到此这篇关于python+pytest接口自动化之session会话保持的实现的文章就介绍到这了,更多相关python pytest session会话保持内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: python+pytest接口自动化之session会话保持的实现

本文链接: https://www.lsjlt.com/news/152496.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python+pytest接口自动化之session会话保持的实现
    目录前言一、session(会话)二、会话保持三、python进行session会话保持总结前言 在接口测试的过程中,经常会遇到有些接口需要在登录的状态下才能请求,否则会提示请登录,...
    99+
    2024-04-02
  • python+pytest接口自动化之token关联登录的实现
    目录一. 什么是token二. token场景处理这里介绍如下两种处理思路。1. 思路一2. 思路二三. 总结在PC端登录公司的后台管理系统或在手机上登录某个APP时,经常会发现登录...
    99+
    2024-04-02
  • python+requests+pytest接口自动化的实现示例
    目录1、发送get请求2、发送post请求3、发送https请求4、文件上传5、文件下载6、timeout超时7、鉴权 7.1、auth参数鉴权7.2、session操作7.3、to...
    99+
    2024-04-02
  • python+pytest接口自动化之token关联登录怎么实现
    今天小编给大家分享一下python+pytest接口自动化之token关联登录怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-06-29
  • Pytest+Request+Allure+Jenkins实现接口自动化
    利用Pytest+Request+Allure+Jenkins实现接口自动化;实现一套脚本多套环境执行;利用参数化数据驱动模式,实现接口与测试数据分离使用logger定制实现自动化测...
    99+
    2024-04-02
  • Pytest+request+Allure实现接口自动化框架
    目录前言:一、简单介绍二、代码结构与框架流程三、详细功能和使用说明四、Allure报告及Email五、后续优化前言: 接口自动化是指模拟程序接口层面的自动化,由于接口不易变更,维护成...
    99+
    2024-04-02
  • python+pytest接口自动化参数关联怎么实现
    这篇文章主要介绍了python+pytest接口自动化参数关联怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python+pytest接口自动化参数关联怎么实现文章都会有所收获,下面我们一起来看看吧。一...
    99+
    2023-07-02
  • Python接口自动化之cookie、session应用详解
    目录一、cookie1、cookie介绍2、cookie原理二、session1、session介绍2、session原理1. 存储位置不同:2. 存储容量不同:3. 存取方式不同:...
    99+
    2024-04-02
  • Python+Requests+PyTest+Excel+Allure接口自动化测试怎么实现
    本篇内容主要讲解“Python+Requests+PyTest+Excel+Allure接口自动化测试怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python+Requests+PyT...
    99+
    2023-07-05
  • Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
    Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Pyth...
    99+
    2023-02-23
    Python Requests PyTest Excel Allure 接口自动化
  • Python自动化实战之接口请求的实现
    目录使用 Python 发送 请求Python 发送请求的方式requests 库的配置天行数据 - 空气质量接口利用 requests 发送查询 空气质量接口 请求在前文说过,如果...
    99+
    2024-04-02
  • python使用pytest接口自动化测试的使用
    简单的设计思路 利用pytest对一个接口进行各种场景测试并且断言验证 配置文件独立开来(conf文件),实现不同环境下只需要改环境配置即可 测试的场景读...
    99+
    2024-04-02
  • python+pytest接口自动化之日志管理模块loguru简介
    目录安装简单示例add()常用参数说明使用python自带日志管理模块logging,使用时可进行模块化配置,详细可参考博文Python日志采集(详细)。 但logging配置起来比...
    99+
    2024-04-02
  • Pytest+Yaml+Excel 接口自动化测试框架的实现示例
    目录一、框架架构二、项目目录结构三、框架功能说明四、核心逻辑说明配置文件输出目录请求工具类代码编写case程序主入口执行记录一、框架架构 二、项目目录结构 三、框架功能说明 解决...
    99+
    2024-04-02
  • Python接口自动化之文件上传/下载接口怎么实现
    今天小编给大家分享一下Python接口自动化之文件上传/下载接口怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。〇、前...
    99+
    2023-06-29
  • 怎么用Python实现数据驱动的接口自动化测试
    这篇文章主要讲解了“怎么用Python实现数据驱动的接口自动化测试”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python实现数据驱动的接口自动化测试”吧!在接口测试的过程中,很多时...
    99+
    2023-06-17
  • python接口自动化之正则用例参数化的示例详解
    目录前言一、正则表达式语法1.1表示单字符1.2表示数量1.2.1匹配分组1.3 表示边界二、贪婪模式三、re模块3.1 re.findall()3.2re.search()3.3 ...
    99+
    2024-04-02
  • Python自动化办公之Word转PDF的实现
    目录pdf 工具包 - pdfkithtml 转 pdf网址 转 pdf字符串生成pdf结合 pydocx 将 word 转 html 再转 pdf该章节我们将要学习如何将 word...
    99+
    2024-04-02
  • python之Django自动化资产扫描的实现
    目录1. Django项目搭建2. 配置开发及生产环境2.1 base.py2.2 创建开发环境配置2.3 创建生产环境配置2.4 修改/init.py2.5 迁移数据库3. pyc...
    99+
    2024-04-02
  • Python自动化测试之登录脚本的实现
    目录环境准备1、安装selenium模块2、安装浏览器驱动器代码1、登录代码2、xpath定位元素标签环境准备 前提已经安装好python、pycharm,配置了对应的环境变量。 1...
    99+
    2023-02-23
    Python自动化登录 Python自动化测试登录
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作