自动的代替人的行为完成操作。
自动化在生活中处处可见

自动洒水机,主要通上水就可以自动化洒水并且可以自动的旋转。
自动洗手液,免去了手动挤压可以自动感应出洗手液。
超市自动闸门,不需要手动的开门关门。
生活中的自动化案例有效的减少了人力的消耗,同时也提高了生活的质量。
软件中的自动化测试也是如此,通过自动化测试有效减少人力的消耗的同时也提高了测试的质量和效率。
自动化的主要自的就是用来进行回归测试。回归测试是什么要讲到位
软件有多个版本需要进行功能的整体回归。
为了避免新增功能影响到历史的功能需要进行功能的回归。
常见面试题 1.自动化测试能够取代人工测试吗? 自动化测试不一定比人工测试更能保障系统的可靠性,自动化测试是测试人员手工编写,后续如果有功能的变更自动化也需要进行不定期的维护和更新。 2.自动化测试可以大幅度降低工作量? 错误 坑!!“⼀定程度上”和“大幅度”的表达方式也需要注意 tips:测试笔试中的选择题尽量不要选择说的太死或者太绝对的选项~~~~
• 很多人经常听到自动化这个词,但是很容易误以为自动化就是一个东西,自动化是个统称,大家可以理解为我们常说的吃瓜这样的表达方式和自动化是一样的,吃瓜可以是吃西瓜,吃哈密 瓜,吃香瓜,自动化也包含多种,如接口自动化,web自动化,移动端自动化等等... • 主要介绍各测试分类为什么需要实施自动化,目的和意义

什么是接口自动化测试? 为什么要做?解决了什么问题,目的是什么
UI测试也称为界面测试,常见的UI自动化测试包含web自动化测试、移动端自动化测试等等。
• 移动端自动化测试 什么是移动端自动化测试? 为什么要做?解决了什么问题,目的是什么
移动端,顾名思义,就是部署在手机上的应用程序。移动端自动化测试主要测试程序部署在手机上能否按照预期的结果的进行操作。

移动端测试通常不是将程序部署在移动端上进行测试,而是需要安装模拟器,在电脑上编写自动化测试脚本代码对模拟器上的软件进行操作
移动端测试难度相对较大,移动端测试的稳定性要比接口自动化测试和web自动化测试的稳定性要差很多,原因主要是移动端测试收到的环境影响比较多,诸如什么呢????
• web自动化测试 什么是web自动化测试? 为什么要做?解决了什么问题,目的是什么
如何进行百度搜索?
通常来说我们手动进行百度搜索的步骤如下,web自动化能够代替我们自动的执行。

模拟人在浏览器上的操作行为,自动的打开浏览器,访问百度首页,并进行一系列的搜索和验证等行为。
自动化的类型非常多,那么到底哪一种是最好的?哪一种测试的收益会更佳? 这里我们介绍测试圈内非常著名的自动化测试金字塔

理想的自动化测试金字塔表达了自动化测试的理想情况,利用较少的时间和精力在单元测试上就能够发现更多有效的问题。
然后实际上在企业中,自动化往往是“冰淇淋蛋筒反模式”

自动化需要大量的初始投资,找到“突破点”,与手动测试相比,我们开始看到它对长期成本产生的积极影响,也能够清楚,这两种测试活动都是完全兼容,产生短期和长期利益。
看到这里,大家对自动化测试能够有一定的了解。然后实际在企业中,我们需要对某一个特定的软件进行自动化的实施,包含但不限于软件所有界面的UI自动化测试、所有接口的接口自动化测试。 接下来我们将正式步入web自动化测试的学习,了解企业中是如何使用工具来统一编写和管理自动化用例。
上面给大家已经介绍过,web系统的测试前提是需要打开浏览器,通过访问web服务器来对服务器界面进行一系列的操作。对于手工测试来说,这一系列的操作都需要测试人员手动的,一步一步的来执行测试。那么对于自动化程序来说,程序如何才能打开浏览器并执行我们预期的操作流程呢?
驱动一词应用广泛,大家都不会陌生。
车有了驱动才能够让车跑起来。

计算机有了驱动程序就可以与设备(耳机,摄像头,麦克风,键盘,显示器等等设备)进行通信。

程序想要打开web浏览器就需要安装web驱动(即WebDriver),WebDriver以本地化方式驱动浏览器。
驱动管理:
WebDriverManager是一个开源Java库,以完全自动化的方式对Selenium WebDriver所需的驱动程序(如chromedriver、geckodriver、msedgedriver等)进行管理(即下载、设置和维护),自版本5起,WebDriverManager还提供了其他相关功能,如发现本地系统中安装的浏览器的能力,构建 WebDriver对象(如ChromeDriver、FirefoxDriver、EdgeDriver等)
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
<scope>test</scope>
</dependency>万事俱备,只欠东风。
接下来就是使用selenium来编写web自动化测试脚本。

selenium是⼀个web自动化测试工具,selenium中提供了丰富的方法供给使用者进行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();
}
实现web自动化测试需要浏览器、浏览器驱动、selenium自动化脚本。这三者是如何交互最终实现 web的自动化测试?

1)通过selenium编写的自动化脚本代码中在ChromeDriverService中创建一个服务
2)通过创建好的服务打开webdriver,安装在本地的驱动服务IP为localhost,PORT为 ChromeDriverService中创建的端口号,该服务地址为selenium向webdriver发送请求的服务地 址。
3)向浏览器驱动程序发送HTTP请求,浏览器驱动程序解析请求,打开浏览器,并获得sessionid,如果再次对浏览器操作需携带此id
4)打开浏览器后,所有的selenium的操作(访问地址,查找元素等)均通过创建好的服务链接到 webdriver,然后使用execute发送请求
5)驱动收到请求并对请求进行解析,转成浏览器能够解析的脚本并发送给浏览器,浏览器通过请求的内容执行对应动作
6)浏览器再把执行的动作结果通过浏览器驱动程序返回给测试脚本
驱动需要接收、解析请求,发送请求给浏览器,那么驱动到底是什么样的角色呢? 验证方式: 执行selenium编写的自动化脚本代码中,可以在终端看到创建的驱动服务地址。
