测试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自动化脚本

相关推荐
格林威19 小时前
工业相机图像高速存储(C++版):先存内存,后批量转存方法,附堡盟相机实战代码!
开发语言·c++·人工智能·数码相机·计算机视觉·视觉检测·堡盟相机
程序员夏末19 小时前
【AI Agent基础 | 第四篇】Spring AI 集成与多模型支持
java·人工智能·spring·ai·ai agent
所谓伊人,在水一方33319 小时前
【Python数据科学实战之路】第6章 | 高级数据可视化:从统计洞察到交互叙事
开发语言·python·信息可视化
郝学胜-神的一滴19 小时前
力扣86题分隔链表:双链表拆解合并法详解
开发语言·数据结构·算法·leetcode·链表·职场和发展
东离与糖宝19 小时前
Gradle 9.4爆改Java构建:编译速度提升300%,微服务多模块一键优化
java·人工智能
浩宇软件开发19 小时前
基于Android天气预报应用开发APP
android·java·android studio·android开发
愿天堂没有C++19 小时前
Pimpl 设计模式(指针指向实现)
开发语言·c++·设计模式
吾日三省Java19 小时前
GracefulResponse:告别手动Result包装,拥抱企业级统一响应处理
java·微服务·系统架构
Nuopiane19 小时前
MyPal3(4)
java·开发语言
lang2015092819 小时前
24 Byte Buddy 进阶指南:5 种“特种”实现策略,让字节码操作更优雅
java·byte buddy