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

相关推荐
weixin_440730506 小时前
迭代器Iterator(列表生成器、可迭代的如何生成迭代器)
开发语言·python
朝朝辞暮i6 小时前
C++ 第 31C 课:Subscriber 到底是什么
开发语言·c++·算法
海绵宝宝转agent6 小时前
操作系统八股开源笔记分享
java·面试
weixin_440730507 小时前
内置函数、json文本、pickle二进制
开发语言·python·json
殷色玫瑰7 小时前
C++ string类详解:常用接口、字符串操作与模拟实现
java·linux·c语言·开发语言·数据结构·c++
李游Leo7 小时前
HarmonyOS 7 + Spatial Recon Kit-C++:3DGS 高斯参数的非有限值隔离与可渲染性门禁【鸿蒙心迹】
开发语言·c++·3d·harmonyos
CHEEVEN_QY7 小时前
新能源汽车电池托盘FSW量产的工艺稳定性控制
java·前端·汽车
惊讶的猫7 小时前
MCP-server
java
ZealSinger7 小时前
Boot4升级PostConstruct不跑了
java·spring boot·spring·升级迁移
Code_Solitude7 小时前
C语言:关于二维数组的作业总结
java·c语言·前端