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

【自动化测试】如何获取cookie,跳过登录的简单操作

前言

🌟🌟本期讲解关于自动化测试函数相关知识介绍~~~

🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客

🔥 你的点赞就是小编不断更新的最大动力                                       

🎆那么废话不多说直接开整吧~~

 

目录

📚️1.验证问题 

🚀1.1为什么需要验证

🚀1.2如何解决 

📚️2.实现步骤

🚀2.1引入依赖

🚀2.2获取cookie

🚀2.3创建驱动

🚀2.4设置cookie

📚️3.总结

 

📚️1.验证问题 

🚀1.1为什么需要验证

  • 在Web应用中,验证码作为一种安全机制,被广泛应用于用户登录、表单提交等场景,以防止自动化脚本或恶意程序的攻击

  • 主要目的是识别是否机器人操作,大量的机器人(爬虫)操作会向服务器发送大量无效请求,严重占用服务器资源

  • 验证码的存在给WebUI自动化测试带来了挑战,因为传统的自动化测试脚本无法直接处理验证码

🚀1.2如何解决 

  • 手动输入验证码

    • 这是最直接且常见的方法。当自动化测试脚本遇到验证码时,测试人员需要手动输入验证码以完成验证过程。

    • 优点:简单直接,无需技术介入。

    • 缺点:降低了测试的自动化程度,增加了人为干预和错误的可能性。

  • 使用万能验证码

    • 在测试环境中,可以设置一个固定的、已知的“万能验证码”,这样自动化脚本在需要验证时就可以使用这个固定的验证码。

    • 优点:测试人员无需手动输入,提高了自动化程度。

    • 缺点:存在安全风险,仅限于测试环境使用。

  • 读取并发送cookies

    • 在用户成功登录后,获取相关的cookies信息。在后续的自动化操作中,使用这些cookies信息来跳过验证码验证。

    • 优点:自动化程度高,无需处理验证码本身。

    • 缺点:依赖于cookies的有效性和安全性,可能不适用于所有情况。

  • 图片识别验证码

    • 使用图像识别技术(如OCR)来识别验证码图片中的字符或数字,并将识别结果自动输入到验证框中。

    • 可以使用如开源 OCR库来进行图片验证码的识别

    • 优点:高度自动化,减少了人为干预。

    • 缺点:图像识别技术可能受到验证码复杂度和图片质量的影响,导致识别率不高。

  • 滑块验证码处理

    • 对于滑块验证码,需要模拟用户拖动滑块的行为来完成验证,这通常涉及到屏幕截图、图像分析和鼠标操作等技术。

    • 优点:针对特定类型的验证码进行处理,适用于需要处理滑块验证码的场景。

    • 缺点:实现复杂,可能需要针对不同网站和验证码类型进行定制化开发,成功率也不高

📚️2.实现步骤

🚀2.1引入依赖

如下所示:

      <dependencies><dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version></dependency><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.6</version></dependency>

最下面的依赖,是用于截图所使用的;

那么直接进如我们的代码;

🚀2.2获取cookie

这里我们可以在网站进行登录后,通过浏览器开发者工具,查看我们我们登录过后的cookie;

此时我们可以通过右键点击,然后进入我们的浏览器开发者工具;

或者是点击f12进入我们的浏览器开发者工具;

 此时就可以看到我们cookie了;

🚀2.3创建驱动

具体的代码如下所示:

public class AutoConfig {public static WebDriver driver;public AutoConfig(){createDriver();}public WebDriver createDriver(){WebDriverManager.chromedriver().setup();ChromeOptions options = new ChromeOptions();options.addArguments("--remote-allow-origins=*");//创建驱动对象,添加选项driver = new ChromeDriver(options);//设置隐式等待driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(3));return driver;}
}

具体的思路就是,其他测试类继承这个父类,自动调用我们的的构造函数,间接调用我们的创建驱动方法;

🚀2.4设置cookie

此时我们创建另一个类,继承上述的父类后,设置我们的cookie属性;

 @Test(priority = 2)public void cookie() throws NoSuchMethodException, InterruptedException {//拿到我们的cookieString value = "17B63B2D3686F19DC921FDDEFE775505";Cookie cookie = new Cookie.Builder("JSESSIONID",value).domain("47.97.70.52").path("/").build();driver.get("http://47.97.70.52:8081/index.html");driver.manage().addCookie(cookie);driver.get("http://47.97.70.52:8081/index.html");}

添加Cookie前需要先打开目标URL,否则会失败。所以用户应该在driver.get之前先导航到对应的域名,比如先访问http://47.97.70.52:8081/index.html ,然后再添加Cookie,这样domain才会匹配。

这里由于小编设置了拦截,所以会直接跳转到我们的登录页面,所以再次访问首页,就会带着我们的cookie成功进行访问了~~~

📚️3.总结

本期小编主要讲解了如何使用cookie实现绕过前端验证的操作,使用的是小编自己的项目:

我的CSDNhttp://47.97.70.52:8081/index.html

🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!!


💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。

       😊😊  期待你的关注~~~

相关文章:

【自动化测试】如何获取cookie,跳过登录的简单操作

前言 &#x1f31f;&#x1f31f;本期讲解关于自动化测试函数相关知识介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;那么废话…...

每天五分钟深度学习PyTorch:RNN CELL模型原理以及搭建

本文重点 RNN Cell(循环神经网络单元)是循环神经网络(RNN)的核心组成部分,用于处理序列数据中的每个时间步,并维护隐藏状态以捕获序列中的时间依赖关系。 RNN CELL的结构 RNN是一个循环结构,它可以看作是RNN CELL的循环,RNN CELL的结构如下图所示,RNN CELL不断进行…...

【AI提示词】业务开发经理

提示说明 业务开发经理旨在帮助用户构建一个高效、有洞察力的业务发展角色&#xff0c;能够在竞争激烈的市场中寻找并抓住商机。 提示词 # 角色 业务开发经理专家## 注意 - 业务开发经理应具备强烈的市场洞察力和人际沟通能力。 - 专家设计应考虑业务发展的实际需求和挑战。…...

【基于开源insightface的人脸检测,人脸识别初步测试】

简介 InsightFace是一个基于深度学习的开源人脸识别项目,由蚂蚁金服的深度学习团队开发。该项目提供了人脸检测、人脸特征提取、人脸识别等功能,支持多种操作系统和深度学习框架。本文将详细介绍如何在Ubuntu系统上安装和实战InsightFace项目。 目前github有非常多的人脸识…...

进程(完)

今天我们就补充一个小的知识点,查看进程树命令,来结束我们对linux进程的学习,那么话不多说,来看. 查看进程树 pstree 基本语法&#xff1a; pstree [选项] 优点&#xff1a;可以更加直观的来查看进程信息 常用选项&#xff1a; -p&#xff1a;显示进程的pid -u&#xff…...

Linux的网络配置的资料

目前有两种方式&#xff0c;network和NetworkManager。 network方式是在CentOS 6及更早版本中引入的配置方法&#xff0c;支持使用配置文件的方式管理网卡的配置。 NetworkManager是在CentOS 7及后续的版本中使用的配置方法&#xff0c;支持使用命令行和图形化界面的方式来管理…...

C/C++运算

C语言字符串的比较 #include <string.h> int strcmp( const char *str1, const char *str2 );例如: int ret; ret strcmp(str1, str2);返回值&#xff1a; str1 < str2时&#xff0c; 返回值< 0&#xff08;有些编译器返回 -1&#xff09; str1 > str2时…...

【控制学】控制学分类

【控制学】控制学分类 文章目录 [TOC](文章目录) 前言一、工程控制论1. 经典控制理论2. 现代控制理论 二、生物控制论三、经济控制论总结 前言 控制学是物理、数学与工程的桥梁 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、工程控制论 1. 经典…...

AOSP14 Launcher3——最近任务TaskViewSimulator详解

前言&#xff1a;TaskViewSimulator 这个类在最近任务中起到了一个非常重要的作用。 从字面意思上理解&#xff0c;这个单词是由TaskViewSimulator组合而来&#xff0c;字面意思就是TaskView的模拟器&#xff0c;顾名思义&#xff0c;就是一个用来模拟TaskView的类。 为什么要模…...

软考中级-软件设计师 2022年上半年下午题真题解析:通关秘籍+避坑指南

&#x1f4da; 目录&#xff08;快速跳转&#xff09; 大题&#xff08;下午题&#xff09;&#xff08;每题15分&#xff0c;共75分&#xff09;一、结构化分析与设计&#x1f354; 试题一&#xff1a;外卖订餐系统 二、数据库应用分析与设计&#x1f697; 试题二&#xff1a;…...

波束形成(BF)从算法仿真到工程源码实现-第十节-非线性波束形成

一、概述 本节我们基于webrtc的非线性波束形成进行代码仿真&#xff0c;并对仿真结果进行展示和分析总结。更多资料和代码可以进入https://t.zsxq.com/qgmoN &#xff0c;同时欢迎大家提出宝贵的建议&#xff0c;以共同探讨学习。 二、仿真代码 2.1 常量参数 % *author : a…...

《忘尘谷》音阶与调性解析

一、音高与音名的对应关系 根据搜索结果及音乐理论&#xff0c;结合《忘尘谷》的曲谱信息&#xff0c;其音阶与调性分析如下&#xff1a; 调性判定 原曲调性为 D调&#xff08;原曲标注为D调&#xff09;&#xff0c;但曲谱编配时采用 C调指法&#xff0c;通过变调夹夹2品&…...

App测试小工具

前言 最近app测试比较多&#xff0c;每次都得手动输入日志tag&#xff0c;手动安装&#xff0c;测完又去卸载&#xff0c;太麻烦。就搞了小工具使用。 效果预览 每次测试完成&#xff0c;点击退出本次测试&#xff0c;就直接卸载了&#xff0c;usb插下一个手机又可以继续测了…...

小事务架构下的业务完整性保障:基于业务处理记录与补偿机制的技术实现

随着微服务架构、事件驱动架构&#xff08;EDA&#xff09;和最终一致性理念的普及&#xff0c;传统的大事务管理方式被更细粒度的“小事务”所取代。在这种架构中&#xff0c;全局业务流程被拆解成多个局部事务节点&#xff0c;通过异步消息进行编排。这种解耦提高了可扩展性和…...

数智读书笔记系列029 《代数大脑:揭秘智能背后的逻辑》

《代数大脑:揭秘智能背后的逻辑》书籍简介 作者简介 加里F. 马库斯(Gary F. Marcus)是纽约大学心理学荣休教授、人工智能企业家,曾创立Geometric Intelligence(后被Uber收购)和Robust.AI公司。他在神经科学、语言学和人工智能领域发表了大量论文,并著有《重启AI》等多部…...

Apache Kafka UI :一款功能丰富且美观的 Kafka 开源管理平台!!

Apache Kafka UI 是一个免费的开源 Web UI&#xff0c;用于监控和管理 Apache Kafka 集群&#xff0c;可方便地查看 Kafka Brokers、Topics、消息、Consumer 等情况&#xff0c;支持多集群管理、性能监控、访问控制等功能。 1 特征 多集群管理&#xff1a; 在一个地方监控和管理…...

临床协调简历模板

模板信息 简历范文名称&#xff1a;临床协调简历模板&#xff0c;所属行业&#xff1a;其他 | 职位&#xff0c;模板编号&#xff1a;C1S3WO 专业的个人简历模板&#xff0c;逻辑清晰&#xff0c;排版简洁美观&#xff0c;让你的个人简历显得更专业&#xff0c;找到好工作。希…...

【第45节】windows程序的其他反调试手段上篇

目录 引言 一、通过窗口类名和窗口名判断 二、检测调试器进程 三、父进程是否是Explorer 四、RDTSC/GetTickCount时间敏感程序段 五、StartupInfo结构的使用 六、使用BeingDebugged字段 七、 PEB.NtGlobalFlag,Heap.HeapFlags,Heap.ForceFlags 八、DebugPort:CheckRem…...

Linux常见指令介绍上(入门级)

1. ls指令 功能&#xff1a;显示出当前目录下的所有子目录与文件。 PS:注意显示的是当前文件下的子目录与文件。 以下这些是可以和ls配套使用的一些选项 -a 列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件。 -d 将目录象文件一样显示&#xff0c;而不是显示其下…...

【版本控制】git命令使用大全

大家好&#xff0c;我是jstart千语。今天来总结一下git的使用命令&#xff0c;上文会先将git命令都列出来&#xff0c;便于快速寻找&#xff0c;然后还会对部分常用命令图文讲解&#xff0c;适合新手&#xff0c;让你快速地理解。最后还会总结在idea中使用git。如果有缺失的&am…...

新兴技术安全:物联网、区块链与人工智能的安全挑战与应对

目录 新兴技术安全&#xff1a;物联网、区块链与人工智能的安全挑战与应对 一、物联网安全&#xff1a;连接世界背后的安全隐忧 物联网架构安全 设备认证 数据安全 二、区块链安全&#xff1a;信任基石的安全考验 共识机制安全 智能合约安全 私钥管理 三、人工智能安…...

手阳明大肠经之合谷穴

个人主页&#xff1a;云纳星辰怀自在 座右铭&#xff1a;“所谓坚持&#xff0c;就是觉得还有希望&#xff01;” 又名&#xff1a;1.《针灸甲乙经》&#xff1a;虎口。 所属经络&#xff1a;手阳明大肠经 定位 在手背&#xff0c;第1、2掌骨间&#xff0c;当第2掌骨桡侧的中点…...

【VUE3】练习项目——大事件后台管理

目录 0 前言 1 准备工作 1.1 安装pnpm 1.2 创建vue项目 1.3 Eslint & Prettier的配置 1.4 husky 提交代码检查 1.5 目录调整 1.6 VueRouter4 1.6.1 基础配置 1.6.2 路由跳转 1.7 引入 Element Plus 组件库 1.8 Pinia 1.8.1 优化 1.9 封装请求工具 1.9.1 安…...

kylin系统软件移植部署过程中遇到的问题及解决方案

有一个跨平台的c++软件,基于qt,boost,zmq,kafka等库,使用cmake脚本管理构建。在windows下和ubuntu下都能正常编译。在部署到kylin系统下时,遇到了一些问题。记录一下解决过程。 KYLIN 操作系统部署 c++开发环境: 安装了git,ninja,qt,boost等编译必要软件。因为之前…...

万字长篇————C语言指针学习汇总

经过一段时间的学习&#xff0c;我们已经接触到了C语言的很多知识了。不过目前我们接下来我们要接触C语言中一个最大的“门槛”&#xff1a;指针。 什么是指针&#xff1f; 在介绍指针之前&#xff0c;我们首先要明白变量与地址之间的关系。 举一个生活中的案例&#xff1a;一…...

实验一 HDFS的Shell操作

一、实验目的 熟悉HDFS Shell的语法格式&#xff0c;完成对HDFS上文件和目录的一系列操作 二、实验要求 2.1 练习dfs常用的子命令 ① -ls ② -du ③ -mv ④ -cp ⑤ -rm ⑥ -put ⑦ -cat ⑧ -help ⑨ -mkdir ⑩ -get 2.2通过Shell脚本定时采集数据到HDFS 三、实…...

复变函数摘记3

复变函数摘记3 5. 留数5.1 可去奇点、极点、本性奇点5.2 零点与极点的关系5.3 在无穷远点处的情形5.4 留数 5. 留数 \quad 如果函数 f ( z ) f(z) f(z) 在 z 0 z_0 z0​ 及 z 0 z_0 z0​ 的邻域内处处可导&#xff0c;那么称 f ( z ) f(z) f(z) 在点 z 0 z_0 z0​ 处解析。…...

【行测】判断推理:类比推理 and 定义判断

> 作者&#xff1a;დ旧言~ > 座右铭&#xff1a;读不在三更五鼓&#xff0c;功只怕一曝十寒。 > 目标&#xff1a;掌握 类比推理 and 定义判断 基本题型&#xff0c;并能运用到例题中。 > 毒鸡汤&#xff1a;有些事情&#xff0c;总是不明白&#xff0c;所以我不会…...

Java使用WebSocket视频拆帧进度处理与拆帧图片推送,结合Apipost进行调试

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>Configuration public class WebSocketConfig {/*** 启动 WebSocket 服务器*/Beanpublic ServerEndpointE…...

计算斐波那契数列

1.对于斐波那契数列的理解&#xff1a; (1)常规 该数列由兔子繁衍的想法产生&#xff0c;故又“兔子数列” 其数值为&#xff1a;1、1、2、3、5、8、13、21、34 从数学定义上走&#xff1a;F(0)1&#xff0c;F(1)1, F(n)F(n - 1)F(n - 2)&#xff08;n ≥ 2&#xff0c;n ∈…...