1.什么是自动化测试
自动化测试指软件测试的自动化,在预设状态下运行应用程序或者系统,预设条件包括正常和异常,最后评估运行结果。将人为驱动的测试行为转化为机器执行的过程。
2. Selenium 介绍
2.1 Selenium 是什么
selenium 是用来做web自动化测试框架。在Java中,直接在 pom.xml 中导入依赖。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
没错,就是导个包。然后使用其中的API来操作浏览器,从而实现自动化。
Selenium 的特点:支持各种浏览器,支持各种平台,支持各种语言,有丰富的API。
2.2 Selenium + Java 环境搭建
这里以chrome浏览器为准,也就是使用 chrome 浏览器来做自动化测试。
- 下载 chrome 浏览器。
- 查看当前浏览器的版本,我的版本是
117.0.5938.132。
- 下载 chrome 浏览器驱动。
Chrome for Testing availability (googlechromelabs.github.io)
对照你的版本下载,当你使用的是 Chrome 版本 115 或更高版本,就点最上面的链接:
找到你对应的版本,我这里是117.0.5938.132
将链接复制到地址栏中就直接开始下载了。建议关闭浏览器的自动更新,因为驱动的版本要与浏览器版本对应。
- 解压后,把里面的
chromedriver.exe放到你的Google\Chrome\Application目录下,我这里是C:\Program Files\Google\Chrome\Application
- 配置环境变量
path 中:
6. 打开IDEA,创建一个Maven项目,在
pom.xml 中添加如下依赖:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
- 测试是否搭建成功:
public class Main {
public static void main(String[] args) {
WebDriver webDriver = new ChromeDriver();
webDriver.get("https://juejin.cn");
}
}
点击运行,如果打开了该网页说明搭建环境成功。
2.3 Selenium WebDriver 的工作原理
我们上面导的依赖就是 Selenium WebDriver 的一部分(Java 的 Selenium API),Selenium WebDriver 还包含了其他语言的Selenium API以及组件。
- 当程序运行的时候,Selenium WebDriver 会调用Selenium API库中的相应方法,这些方法会根据你脚本中的信息,生成一个HTTP请求,并发送给浏览器驱动。
- 浏览器驱动中包含了一个 HTTP Server,用来接收这些 HTTP 请求。
- HTTP Server接收到请求后,会解析 HTTP 请求中的指令,并将其转换为浏览器能够理解的协议。同时,浏览器驱动会启动或连接到浏览器,并通过 WebSocket 连接发送指令给浏览器。
- 根据指令来具体操控对应的浏览器。
- 浏览器将结果返回给浏览器驱动,浏览器驱动再将结果封装成HTTP响应,返回给 Selenium WebDriver。
- Selenium WebDriver接收到响应后,可以根据结果进行断言或其他操作。