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

相关推荐
朦胧之7 小时前
AI 编程-老项目改造篇
java·前端·后端
程序猿大帅11 小时前
别再只当调包侠了:用 Spring AI 落地 Function Calling,我被大模型硬生生砸出了三个大坑
java
程序员晓琪12 小时前
约定大于配置:基于 Java 包名自动生成 API 版本路由的最佳实践
java·spring boot·后端
Flittly13 小时前
【AgentScope Java新手村系列】(11)中断与恢复
java·spring boot·spring
众少成多积小致巨13 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
东坡白菜13 小时前
破局全栈:前端开发的Java入门实战记录—JPA(2)
java·后端
刘棕霆16 小时前
18—sentry-static 入口收敛:从多能力检查到 1 个静态分析入口
aigc·测试
SimonKing19 小时前
艹,维护AI写的代码,我心态崩了......
java·后端·程序员
用户2986985301420 小时前
Java Word 文档样式进阶:段落与文本背景色设置完全指南
java·后端
小bo波1 天前
从"任意文件复制"深挖Java I/O:字符流与字节流的本质抉择
java·nio·io流·后端开发·文件复制