首页 > 其他分享 >Selenium41-Cookie管理

Selenium41-Cookie管理

时间:2022-12-29 23:11:56浏览次数:35  
标签:Cookies 登录 管理 cookies 用户 Selenium41 Cookie 服务器

HTTP协议无状态特性

  • 什么是一次会话

    • 用户打开浏览器访问某个网站, 在这个网站上浏览任意页面, 访问完成后将浏览器关闭的过程称为是一次会话
  • HTTP协议是无状态的协议,带来的问题

    • 一旦数据交换完毕,客户端与服务器的连接就会关闭,再次交换数据需要建立新的连接,这就意味着服务器无法从连接上跟踪会话
    • 也就是说即使第一次和服务器连接后并登录成功后,第二次请求服务器依然不能直到当前的请求是那个用户

Cookie

  • cookie 就是浏览器储存在用户电脑上的一小段文本文件,是纯文本格式,不包含任何可执行的代码。Web 服务器就可以使用这些信息来识别不同的用户

Cookie典型的应用场景:

  • 用户第一次登陆时,勾选下次直接登录或记住密码

Cookie工作原理

Cookie解决的问题

  • Cookie就是为了记住用户状态,使用方式如下
    • 第一次登录服务器后,如果需要记录该用户状态,服务器就使用Response向客户端浏览器颁发一个Cookie,浏览器会把Cookie数据保存在本地。
    • 该用户发送第二次请求的时候,就会自动的把上次请求存储的Cookie数据自动的携带给服务器,服务器检查该Cookie存储name、value等信息,以此来辨认用户状态。
    • 服务器也可以根据业务需要修改Cookie的内容

Cookie里用键值对格式存储的信息内容主要有

  • name:Cookie信息名--必填项
  • value:Cookie的信息的值--必填项
  • expire:过期时间
  • domain:域名
  • path:路径,如果是/,代表所有路径
  • secure:True代表只有https能使用Cookie,False代表http和https都可以使用。
  • httpOnly:True代表不允许js脚本使用Cookie(保证网站安全,防止XSS攻击)

Selenium自动化测试中Cookie的使用

  • webdriver可以读取、添加和删除Cookie信息。

Selenium如何实现自动登录

  • pageobject里的前台登录页实现类里增加以下方法,进行cookies操作完成自动登录
    • save_cookies:保存前台页登录Cookies到txt格式的文件里,按照用户来保存,不同用户存储在不同文件里。
    • read_cookies:如果存在Cookies文件,就从txt格式的文件读取Cookies数据,如果不存在,就登录然后保存一个Cookies文件。
    • login_success:读取Cookies信息后,加入到当前驱动对象里,再打开登录页,完成自动登录操作。

保存前台页登录Cookies到文件里

  • 保存前台页登录Cookies
    • 新建一个cookies文件夹,把前台页登录Cookies按照用户进行保存

读取Cookies文件里的数据

  • 如果文件存在,读取文件里的cookies信息返回
  • 如果文件不存在,登录保存Cookies并返回

封装登录成功方法

login_success: 读取Cookies信息后,加入到当前的驱动对象里,在打开登录页,完成自动登录操作

删除cookies文件

问题:Cookies是有有效期的,不是一直有效
解决方案:运行测试套件前,删除所有的Cookies文件

优化测试套件

  • 运行测试套件前,删除Cookies文件
from ecshop.utils.delete_cookies import DelCookies
if __name__ == "__main__":
    DelCookies().delete_cookies_files()
    …………

测试案例

  • 前台留言板留言功能,增加两组测试登录后留言功能的测试数据

修改测试用例类

  • 修改测试用例代码:testcase包里的testcase9002.py

注意事项

  • 在Selenium中记录cookie信息,并在下次测试时加入cookie信息,要求不能使用localhost作为测试服务器地址。
  • 需要修改为本机具体的对外IP地址。

标签:Cookies,登录,管理,cookies,用户,Selenium41,Cookie,服务器
From: https://www.cnblogs.com/sean-test/p/17013764.html

相关文章

  • ASP.NET期末大作业————图片管理系统
    项目描述:本课题研究的主要内容是用户的注册与登陆,用户的授权及用户登录后的图片管理界面,包括:图片上传;图片审核;图片入库;图片检索;图片浏览及下载等。开发语言: Asp.net技术......
  • 房产管理系统项目结构及后端代码
      bean层经纪人agent类packagebean;publicclassagent{privateintid;privateStringname;privateStringaddress;privateStringphone;@OverridepublicStr......
  • 房产管理系统项目需求
    1、项目需求:某房产公司,欲开发一个房产信息管理系统,其主要功能描述如下:(1)公司销售的房产,房产信息包括,房产编号(唯一性)、房产证明,地址,建造年份,建造面积,销售报价,房产照片以及......
  • 图书管理系统BMS
    图书管理系统BMS效果图:主要代码:表关系的创建:fromdjango.dbimportmodels#Createyourmodelshere.classBook(models.Model):"""图书表"""ti......
  • Linux权限管理
    权限管理一、概述Linux通过rwx3种权限控制系统与保护系统,组成9位权限Linux权限体系还有3位特殊权限,组合起来就是12位权限体系Linux这简单的rwx控制整个Linux系统的安全......
  • 华为云CDN加速服务的精细化管理,让加速变得简单起来​
    著名经济学家吴敬琏先生说过:一套完善且良好的管理模式,不但能让企业的工作效率得到更好地提升,还能降低业务生产成本,为企业带来巨大的效能。同样这套理论也适用于CDN加速服务......
  • 立足信创国产化运维,打造安全可控IT运维管理系统
    随着国产化信创应用试点行业的不断扩大,应用信创产品的企事业单位逐渐增多。大多数企业均面临着陌生的国产化环境与产品,其使用习惯和解决问题的方式都面临改变。北京智和信......
  • 若依管理系统-学习1
    原来不是前后端分离版的,直接换官方文档:RuoYi官网地址:http://ruoyi.vipRuoYi在线文档:http://doc.ruoyi.vip1.环境要求JDK>=1.8,MySQL>=5.5,Maven >=3.02.用......
  • OneAccess | 面对庞大复杂的身份和权限管理,企业该怎么办?
    OneAccess |面对庞大复杂的身份和权限管理,企业该怎么办?随着各领域加快向数字化、移动化、互联网化的发展,企业信息环境变得庞大复杂,身份和权限管理面临巨大的挑战:应用规模快......
  • Spring声明式事务配置管理方法
    事务配置首先在/WEB-INF/applicationContext.xml添加以下内容:<!--配置事务管理器--><beanid="transactionManager"class="org.springframework.orm.hibernate3.Hibernat......