文章目录
- [一. 什么是自动化测试](#一. 什么是自动化测试)
- [二. Selenium的介绍](#二. Selenium的介绍)
-
- [1. Selenium是什么](#1. Selenium是什么)
- [2. Selenium的特点](#2. Selenium的特点)
- [3. Selenium的工作原理](#3. Selenium的工作原理)
- [4. Selenium+Java的环境搭建](#4. Selenium+Java的环境搭建)
一. 什么是自动化测试
自动化测试是指使用软件工具或脚本来执行测试任务的过程,以替代人工进行重复性、繁琐或耗时的测试活动。通过编写脚本和使用自动化测试工具,可以自动执行测试用例、验证软件系统的功能和性能,并生成相应的测试结果和报告。
通俗的说,自动化测试就相当于将人工测试手段进行转换,让代码去执行.
自动化测试包括UI自动化,接口自动化,单元测试自动化.按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自动化测试产出投入比(ROI),可以用较少的投入获取很好地收益.
-
单元测试(Unit Testing):它是针对软件系统中最小的可测试单元------模块或函数进行测试的过程。通过编写测试用例,开发人员可以针对每个单元独立地进行测试,以确保其在各种情况下的行为符合预期。单元测试通常使用测试框架来帮助组织和执行测试用例。
-
接口自动化测试(API Testing):它是通过模拟和调用软件系统的接口来测试系统的正确性和稳定性。接口可以是应用程序接口(API)、网络接口、数据库接口等。接口自动化测试通常涉及到发送请求并验证响应的过程,可以使用编程语言和测试框架来实现。
-
UI自动化测试(UI Testing):它是通过模拟用户与图形用户界面(GUI)交互来测试应用程序的正确性和用户体验。UI自动化测试涉及到模拟用户操作、验证页面显示和响应等过程。它可以检查用户界面元素的布局、样式、交互和功能,并确保应用程序在不同环境和设备上运行正常。
二. Selenium的介绍
1. Selenium是什么
Selenium
是一个广泛使用的自动化测试工具和框架,用于Web应用程序的自动化测试。它提供了一组API,允许开发人员使用多种编程语言(如Java、C#、Python等)来控制浏览器的行为,模拟用户与网页的交互。通过Selenium,开发人员可以自动化执行各种操作,如点击按钮、填写表单、提交请求、获取网页元素等。它还支持模拟不同的浏览器,并提供了丰富的功能和灵活性,以支持各种测试需求。Selenium被广泛用于功能测试、回归测试和UI测试等领域。
2. Selenium的特点
-
跨平台:Selenium支持多种操作系统,包括Windows、Mac和Linux。
-
多浏览器支持:Selenium可以与多种浏览器一起使用,如Chrome、Firefox、Safari等。
-
多语言支持:Selenium支持多种编程语言,包括Java、Python、C#等。这使得开发人员可以根据自己的偏好选择适合他们的语言来编写测试脚本。
-
强大的定位元素能力:Selenium允许通过各种方式定位页面上的元素,如ID、名称、类名、CSS选择器、XPath等。
-
支持多种交互方式:Selenium可以模拟用户的键盘输入、鼠标操作以及拖放等行为,从而实现更复杂的交互操作。
-
支持并行测试:Selenium支持在多个浏览器实例中同时执行测试,从而提高测试效率。
-
丰富的测试报告:Selenium可以生成详细的测试报告,包括测试结果、错误信息、截图等,方便开发人员进行问题排查和分析。
3. Selenium的工作原理
总结上图,Selenium的工作原理为以下:
- 开发人员编写自动化脚本代码(测试代码),使用Selenium提供的API来控制浏览器。
- 测试代码通过Web驱动程序(如ChromeDriver、GeckoDriver等)与所选浏览器建立通信。
- Web驱动程序将命令发送给浏览器,并接收来自浏览器的响应。
- 浏览器执行接收到的命令,例如导航至指定URL、查找和操作页面上的元素等。
- 浏览器将执行结果返回给Web驱动程序。
- Web驱动程序将结果传递给测试代码,以便进行进一步的处理和验证。
4. Selenium+Java的环境搭建
- 下载Google浏览器
谷歌浏览器下载官网
- 查看Chrome浏览器对应的版本号.
复制版本号.
-
打开下载驱动的网址:
驱动
-
下载完压缩包后,我们将文件压缩至
C:\Program Files\Java\jdk1.8.0_192\bin
文件目录下.注意我们之前在下载IDEA时配置的环境变量的问题.
-
打开IDEA创建一个Maven项目
-
然后在pom.xml文件中添加以下Maven依赖:
xml
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
</dependencies>
添加后记得reload,第一次加载Maven依赖的时间可能比较久,耐心等待一会即可.
- 创建一个Main.class文件
java
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Main {
public static void main(String[] args) {
WebDriver webDriver = new ChromeDriver();
webDriver.get("https://www.baidu.com");
}
}
运行上述代码,得到如下结果:
即为完成Selenium的环境搭建.
上述代码的含义:
java
public static void main(String[] args) {
ChromeOptions options = new ChromeOptions();
//允许所有请求
options.addArguments("--remote-allow-origins=*");
WebDriver webDriver = new ChromeDriver();
//打开百度首页
webDriver.get("https://www.baidu.com");
}