目录
1.自动化
自动化的主要目的就是用来进行回归测试。
1.1回归测试
软件有多个版本需要进行功能的整体回归。
为了避免新增功能影响到历史的功能需要进行功能的回归。
常见面试题
1.自动化测试能够取代人工测试吗?
自动化测试不一定比人工测试更能保障系统的可靠性,自动化测试是测试人员手工编写,后续如果有功能的变更自动化也需要进行不定期的维护和更新。
1.2自动化分类
1.2.1接口自动化
什么是接口自动化测试?
为什么要做?解决了什么问题,目的是什么?
1.2.2 UI自动化
UI测试也称为界面测试,常见的UI自动化测试包含Web自动化测试,移动端自动化测试等。
移动端自动化测试
什么是移动端自动化测试?
为什么要做?解决了什么问题,目的是什么?
移动端,顾名思义,就是部署再手机上的应用程序。移动端自动化测试主要测试程序部署在手机上能否按照预期的结果的进行操作。
移动端测试通常不是将程序部署在移动端进行测试,而是要安装模拟器,在电脑上编写自动化测试脚本代码对模拟器上的软件进行操作。
Web自动化测试
什么是Web自动化测试?
为什么要做?解决了什么问题,目的是什么?
如何进行百度搜索?
通常来说我们手动进行百度搜索的步骤如下,web自动化能够代替我们自动的执行。
模拟人在浏览器上的操作行为,自动的打开浏览器,访问百度首页,并进行一系列的搜索和验证等行为。
2.Web自动化测试
2.1驱动
计算机有了驱动程序就可以与设备(耳机,摄像头,麦克风,键盘,显示器等等设备)进行通信。
2.1.1 安装驱动管理
驱动管理:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
<scope>test</scope>
</dependency>
3.Selenium
selenium是一个web自动化测试工具,selenium中提供了丰富的方法供给使用者进行web自动hau化测试。
3.1一个简单的Web自动化示例
(1)安装selenium库
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
(2)使用selenium编写代码
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自动化脚本。这三者是如何交互最终实现Web的自动化测试?
- 通过selenium编写的自动化脚本代码中在ChromeDiverService中创建一个服务。
- 通过创建好的服务打开webdriver,安装在本地的驱动服务IP为localhost,PORT为ChromeDiverService中创建的端口号,该服务地址为selenium向webdriver发送请求的服务地址。
- 向浏览器驱动程序发送HTTP请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id。
- 打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过创建好的服务链接到webdriver,然后使用execute发送请求。
- 驱动收到请求并对请求进行解析,转成浏览器能够解析的脚本并发送给浏览器,浏览器通过请求的内容执行对应动作。
- 浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本
驱动需要接收、解析请求,发送请求给浏览器,那么驱动到底是什么角色呢?
验证方式:
(1)执行selenium编写的自动化脚本代码中,可以再终端看到创建的驱动服务地址。