测试6:自动化测试--概念篇(JAVA)

1.自动化

1.1 自动化概念

自动代替人 的行为完成操作,在生活中处处可见。

软件中的自动化测试也是如此,通过自动化测试有效减少人力的消耗 的同时也提高了 测试的质量和效率



自动化的主要目的就是用来进行回归测试

回归测试: 软件有多个版本需要进行功能的整体回归, 为了避免新增 功能影响历史功能 需要进行功能的回归

常见面试题

1.2 自动化分类

【分为接口、客户端、web界面自动化测试】

1.3 自动化测试金字塔

自动化的类型非常 ,那么到底哪一种是最好 的?哪一种测试的收益会更佳

理想 的自动化测试金字塔表达了自动化测试的理想情况,然而实际上在企业 中,自动化往往是"冰淇淋蛋筒反模式"。

2.web自动化测试(浏览器)

web系统的测试前提是需要打开浏览器 ,通过访问web服务器 来对服务器界面进行一系列的操作。

自动化测试程序 需要安装 web驱动WebDriver),它会以本地化 方式 驱动浏览器打开并执行我们预期的操作流程。

驱动程序 实际上就是一个服务器 ,它有对应的 IP 地址和端口号。我们编写的自动化脚本需要向这个服务器发送指令或请求 ,驱动程序接收到请求后,便会操控浏览器执行一系列操作。因此,驱动程序本质上就是一个服务器,大家不必对它感到神秘或难以理解。


安装web驱动程序

种:手动 下载(不推荐

https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/https://www.selenium.dev/documentation/webdriver/troubleshooting/errors/driver_location/


种:由驱动管理程序自动下载与浏览器版本匹配的驱动(推荐)

pom.xml 文件中添加以下配置刷新

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

3.Selenium(web自动化测试工具

第一步程序通过web驱动(WebDriver)来打开浏览器,第二步需要使用selenium编写web自动化测试脚本

selenium库中提供了丰富的方法供给使用者进行web自动化测试】

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

(1)安装selenium库

pom.xml 文件中添加以下配置刷新

XML 复制代码
<dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>4.0.0</version>
</dependency>

(2)使用selenium编写代码

java 复制代码
public void example_test(){
    //驱动程序管理的⾃动化
    WebDriverManager.chromedriver().setup();
    ChromeOptions options = new ChromeOptions();
 
    //允许访问所有链接
    options.addArguments("--remote-allow-origins=*");
 
    //1、打开浏览器
    WebDriver driver = new ChromeDriver(options);
 
    //2.输⼊百度⽹址:https://www.baidu.com
    driver.get("https://www.baidu.com");
 
    //3、找到输⼊框并输⼊"春节"
    driver.findElement(By.xpath("//*[@id=\"kw\"]")).sendKeys("春节");
 
    //4、找到"百度⼀下"按钮并点击
    driver.findElement(By.xpath("//*[@id=\"su\"]")).click();
 
    //5、关闭浏览器
    driver.quit();
}

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

实现web自动化测试 需要浏览器浏览器驱动selenium自动化脚本

相关推荐
追随者永远是胜利者2 小时前
(LeetCode-Hot100)39. 组合总和
java·算法·leetcode·职场和发展·go
wjs20242 小时前
Lua 字符串处理详解
开发语言
追随者永远是胜利者2 小时前
(LeetCode-Hot100)34. 在排序数组中查找元素的第一个和最后一个位置
java·算法·leetcode·职场和发展·go
爱凤的小光2 小时前
VisionMaster软件---脚本梳理
java·服务器·网络
航哥的女人2 小时前
最小可运行示例(C++ TCP回显)
开发语言·c++·tcp/ip
lsx2024063 小时前
React 事件处理
开发语言
JQLvopkk4 小时前
能用C#开发AI
开发语言·人工智能·c#
郝学胜-神的一滴5 小时前
当AI遇见架构:Vibe Coding时代的设计模式复兴
开发语言·数据结构·人工智能·算法·设计模式·架构