《手把手教你》系列技巧篇(六十四)-java+ selenium自动化测试 - cookie -中篇(详细教程)

简介: 【6月更文挑战第5天】本文介绍了如何使用Fiddler抓取HTTPS请求并利用Cookie实现自动登录的自动化实践。

1.简介

今天按照原计划宏哥要用实例来给小伙伴或童鞋们来演示一下,如何利用cookie实现跳过验证码进行登录。这个场景是自动登陆。有很多系统的登陆信息都是保存在cookie里的,因此只要往cookie中添加正确的值就可以实现自动登陆了。什么图片验证码、登陆的用例就都是浮云了。而且登录往往就自动化测试的第一步,系统都登录不进去,后边无论是多么高大上都是白扯。因此宏哥拿出一篇文章的篇幅对其进行介绍和分享,希望对你能够有所帮助。

2.Fiddler

2.1IE 、谷歌浏览器抓取HTTPS请求

1.IE 、谷歌浏览器抓取HTTPS请求

Tools -- Options -- HTTPS --勾选 Decrypt HTTPS traffic --点击 OK,直接抓取HTTPS请求,如果抓不到,则设置证书

2.设置证书

Tools -- Options -- HTTPS --勾选 Decrypt HTTPS traffic--点击Actions -- 选择最后一个选项,重置所有证书 --点击确定--然后就一直选择确定就安装成功了。

 

3.如果查看是否安装成功呢:

Tools -- Options -- HTTPS --勾选 Decrypt HTTPS traffic--点击Actions--Open Windows certificate manage--操作--查找证书--输入fiddle--看是否要相关的证书,

如果有找到,则说明安装成功,重启fiddler和浏览器则可以抓包成功!

3.自动化实践

3.1抓包

1.开启Fiddler 工具,如下图所示:

2.通过浏览器登录正常登录百度账号。如下图示

3.通过Fiddler获取登录请求的Cookie。找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie。

4.然后,找到重要的两个参数“BAIDUID”和“BDUSS”。

3.2代码设计

3.3参考代码

package lessons;


import org.openqa.selenium.By;

import org.openqa.selenium.Cookie;

import org.openqa.selenium.WebDriver;

import org.openqa.selenium.chrome.ChromeDriver;


/**

* @author 北京-宏哥

*

* @公众号:北京宏哥

*

* 《手把手教你》系列技巧篇(六十三)-java+ selenium自动化测试 - cookie -中篇(详细教程)

*

* 2022年1月26日

*/

public class CookieBaidu {

   

   public static void main(String[] args) throws InterruptedException {

       

       System.setProperty("webdriver.gecko.driver", ".\\Tools\\chromedriver.exe"); //指定驱动路径

         

       WebDriver driver = new ChromeDriver ();

       driver.get("http://www.baidu.com");

       driver.manage().window().maximize();

       Thread.sleep(5000);

       System.out.println(driver.manage().getCookies());

       

       // 通过fiddler抓包工具,找到Host为“passport.baidu.com”的URL,在右侧窗口查看该请求的Cookie,

       // 找到重要的两个参数“BAIDUID”和“BDUSS”

       Cookie c1 = new Cookie("BAIDUID", "****************************************:FG=1");

       Cookie c2 = new Cookie("BDUSS", "AAAAAAAAAAAAAAAAAAAAAAAAA4X7mEOF-5hM");

       

       driver.manage().addCookie(c1);

       driver.manage().addCookie(c2);

       

       driver.navigate().refresh();

       

       // 获得登录用户名

       String username = driver.findElement(By.className("user-name")).getText();

       System.out.println("username = " +username);

       

       System.out.println(driver.manage().getCookies());

       

       Thread.sleep(6000);

       System.out.println("browser will be close");

       driver.quit();

   }

}

3.4运行代码

1.运行代码,右键Run AS->Java Appliance,控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作,如下小视频所示:

4.小结

  这里演示了如何跳过验证码实现登录,如果没有验证码,我们直接就通过用户名和密码登录后,获取cookie后,然后保存cookie后,进行相应的操作(例如接口测试时,后续的接口可能需要cookie或者session、token,这里会在后续的接口部分进行详细讲解,这里就不做赘述了)。好了,今天时间也不早了就分享和讲解到这里。感谢您耐心的阅读!



每天学习一点,今后必成大神-


往期推荐(由于跳转参数丢失了,所有建议选中要访问的右键,在新标签页中打开链接即可访问):


Appium自动化系列,耗时80天打造的从搭建环境到实际应用精品教程测试

Python接口自动化测试教程,熬夜87天整理出这一份上万字的超全学习指南

Python+Selenium自动化系列,通宵700天从无到有搭建一个自动化测试框架

Java+Selenium自动化系列,仿照Python趁热打铁呕心沥血317天搭建价值好几K的自动化测试框架

Jmeter工具从基础->进阶->高级,费时2年多整理出这一份全网超详细的入门到精通教程

Fiddler工具从基础->进阶->高级,费时100多天吐血整理出这一份全网超详细的入门到精通教程

Pycharm工具基础使用教程

相关文章
|
2天前
|
测试技术 API Android开发
《手把手教你》系列基础篇(九十七)-java+ selenium自动化测试-框架设计篇-Selenium方法的二次封装和页面基类(详解教程)
【7月更文挑战第15天】这是关于自动化测试框架中Selenium API二次封装的教程总结。教程中介绍了如何设计一个支持不同浏览器测试的页面基类(BasePage),该基类包含了对Selenium方法的二次封装,如元素的输入、点击、清除等常用操作,以减少重复代码。此外,页面基类还提供了获取页面标题和URL的方法。
13 2
|
3天前
|
Web App开发 XML Java
《手把手教你》系列基础篇(九十六)-java+ selenium自动化测试-框架之设计篇-跨浏览器(详解教程)
【7月更文挑战第14天】这篇教程介绍了如何使用Java和Selenium构建一个支持跨浏览器测试的自动化测试框架。设计的核心是通过读取配置文件来切换不同浏览器执行测试用例。配置文件中定义了浏览器类型(如Firefox、Chrome)和测试服务器的URL。代码包括一个`BrowserEngine`类,它初始化配置数据,根据配置启动指定的浏览器,并提供关闭浏览器的方法。测试脚本`TestLaunchBrowser`使用`BrowserEngine`来启动浏览器并执行测试。整个框架允许在不同浏览器上运行相同的测试,以确保兼容性和一致性。
14 3
|
5天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
19 5
|
1月前
|
存储 编解码 应用服务中间件
会话跟踪技术(Session 以及Cookie)
会话跟踪技术(Session 以及Cookie)
|
1月前
|
存储 前端开发 小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
表白墙完善(数据库,前端,后端Servlet),再谈Cookie和Session。以及一个关于Cookie的练习小程序
|
2月前
|
存储 Web App开发 安全
Cookie和session 及Web相关工具
Cookie和session 及Web相关工具
|
23天前
|
存储 前端开发 JavaScript
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
VSCode调试揭秘:Live Server助力完美测试Cookie与Session,远超“Open in Browser“!
|
23天前
|
存储 安全 网络协议
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
Django路由与会话深度探索:静态、动态路由分发,以及Cookie与Session的奥秘
|
1月前
|
JSON 前端开发 Java
Spring第一课,了解IDEA里面的文件,回顾Cookie和Session,获取Session,Cookie,Header的方式
Spring第一课,了解IDEA里面的文件,回顾Cookie和Session,获取Session,Cookie,Header的方式
|
28天前
|
存储 移动开发 JavaScript
对于session、cookie、 localStorage和SessionStorage的理解
对于session、cookie、 localStorage和SessionStorage的理解
30 0

热门文章

最新文章