[三分钟]入门web自动化测试(一):1.使用驱动管理下载web驱动(WebDriver);2.初步认识和使用Selenium

文章目录

1.基本概念

Web自动化测试是一种通过编写自动化脚本模拟用户与Web应用的交互,自动验证系统的功能、性能和稳定性的方法。
举例: 测试百度搜索关键词"CSDN"

2.web驱动

由上述例子可知,web系统测试前需要打开浏览器。对于手工测试来说,测试人员可以来手动打开浏览器;但是对于自动化测试,我们该如何让程序打开浏览器呢?

驱动一词想必大家都听过吧。显卡要有显卡驱动才能正常渲染画面;汽车要有发动机驱动才能跑起来;自动化程序安装了web驱动(WebDriver) 就能执行打开浏览器等一系列操作,WebDriver 以本地化方式驱动浏览器。

2.1使用驱动管理下载驱动

  1. 不同的浏览器需要下载不同的驱动

  2. 不同版本的浏览器需要不同版本的驱动

  3. 通过手动下载官方驱动的方式可能会引发一系列问题:

    比如我下载108版本的驱动,浏览器更新为109后,此时我没有更新驱动再进行自动化测试就会报错。这样就提高了自动化的误报率。

  4. 所以我们可以使用驱动管理来自动下载驱动。

  • 驱动管理:WebDriverManager是一个开源Java库,以完全自动化的方式对Selenium WebDriver所需的驱动程序(如chromedriver、geckodriver、msedgedriver等)进行管理(即下载、设置和维护),自版本5起,WebDriverManager还提供了其他相关功能,如发现本地系统中安装的浏览器的能力,构建WebDriver对象(如ChromeDriver、FirefoxDriver、EdgeDriver等)

  • 只需在程序中引入驱动管理的依赖
    以maven项目为例:在pom.xml文件中加入以下代码,刷新

java 复制代码
<dependency>
 	<groupId>io.github.bonigarcia</groupId>
 	<artifactId>webdrivermanager</artifactId>
 	<version>5.8.0</version>
 	<scope>test</scope>
</dependency>

3.Selenium

3.1Selenium基本概念

selenium是⼀个web自动化测试工具,selenium中提供了丰富的方法供给使用者进行web自动化测

试。我们可以使用selenium来编写web自动化测试脚本。

3.2 一个简单的web自动化示例

  1. 在maven项目中安装selenium库,引入依赖,刷新
java 复制代码
<dependency>
 <groupId>org.seleniumhq.selenium</groupId>
 <artifactId>selenium-java</artifactId>
 <version>4.0.0</version>
</dependency>
  1. 使用selenium编写代码
    在src/test/java下创建两个类:FirstAutoTest 和 runCase;

    FirstAutoTest写入代码:
java 复制代码
public class FirstAutoTest {
    // 测试百度搜索关键词"CSDN"
    void test01() throws InterruptedException {

        // 1.打开谷歌浏览器
        WebDriverManager.chromedriver().setup();

        // 浏览器配置:允许访问所有链接
        ChromeOptions options = new ChromeOptions();
        options.addArguments("--remote-allow-origins=*");

        WebDriver driver = new ChromeDriver(options);

        Thread.sleep(3000);
        
        // 2.输入网址:https://www.baidu.com
        driver.get("https://www.baidu.com");
        Thread.sleep(3000);

        // 3.找到搜索框,输入关键词
        driver.findElement(By.cssSelector("#kw")).sendKeys("CSDN");
        Thread.sleep(3000);

        // 4.找到百度一下按钮,并点击
        driver.findElement(By.cssSelector("#su")).click();
        Thread.sleep(3000);

        // 5.关闭浏览器
        driver.quit();
    }
}

runCase中写入代码,并运行:

java 复制代码
public class runCase {
    public static void main(String[] args) throws InterruptedException {
        FirstAutoTest test = new FirstAutoTest();
        test.test01();
    }
}

运行结果

以上我们只是简单地使用了selenium进行自动化测试,下面章节我会详细介绍...

4.selenium+驱动+浏览器的工作原理

  1. 通过selenium编写的自动化脚本代码中在ChromeDriverService中创建一个服务

  2. 通过创建好的服务打开webdriver,安装在本地的驱动服务IP为localhost,PORT为

    ChromeDriverService中创建的端口号,该服务地址为selenium向webdriver发送请求的服务地

    址。

  3. 向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id

  4. 打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过创建好的服务链接到

    webdriver,然后使用execute发送请求

  5. 驱动收到请求并对请求进行解析,转成浏览器能够解析的脚本并发送给浏览器,浏览器通过请求的内容执行对应的操作

  6. 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本

相关推荐
蓑雨春归5 小时前
自主智能Agent如何重塑工作流自动化:技术、经济与未来展望
人工智能·chatgpt·自动化
chaofan9806 小时前
AI驱动的浏览器自动化革命:Claude Code + BrowserCat MCP深度实践指南
运维·自动化·claude code
集成显卡9 小时前
Rust 实战三 | HTTP 服务开发及 Web 框架推荐
开发语言·前端·http·rust·web
宝山哥哥9 小时前
python办自动化--利用vba或者python按需求读取excel文件指定列,更改列名后,按照要求将列排序,最后填充空白单元格
python·数据分析·自动化·excel·pandas
凯子坚持 c12 小时前
基于 Claude Code 与 BrowserCat MCP 的浏览器自动化全链路构建实践
运维·自动化
可可南木13 小时前
ICT模拟零件测试方法--电阻测试
开发语言·测试工具·pcb工艺
YGY Webgis糕手之路13 小时前
OpenLayers 综合案例-底图换肤(变色)
前端·经验分享·笔记·vue·web
金融RPA机器人丨实在智能16 小时前
RPA在医药行业应用分析:全产业链的自动化渗透丨RPA百科
人工智能·自动化·rpa·医药行业
CoCode88816 小时前
测试自动化不踩坑:4 策略告别 “为自动化而自动化”
自动化·cocode自动生成测试用例·测试用例自动化·coproject智能项目管理·cocode自动生成测试脚本
李白你好17 小时前
一个高效的阿里云漏洞库爬虫工具,用于自动化爬取和处理CVE数据
爬虫·自动化·cve漏洞