在平时的生活中,自动化到处都是,自动门,自动洒水器,自动除草机;但是在软件测试中,目的概念如下所示:
软件测试自动化,有效减少了测试过程中的人力消耗,并提高了软件测试的效率与正确性
软件有多个版本需要进⾏功能的整体回归。 为了避免新增功能影响到历史的功能需要进⾏功能的回归
即在多次版本更新中,需要进行软件的历史功能测试,防止新增功能影响历史功能;
自动化测试会取代人吗?
⾃动化测试不⼀定⽐⼈⼯测试更能保障系统的可靠性,⾃动化测试是测试⼈员⼿⼯编写,后续如果有功能的变更⾃动化也需要进⾏不定期的维护和更新
自动化测试可以一定程度上降低测试测试人员的工作;
所谓的接口自动化,这里主要是涉及到后端代码层面,聚焦于自动化测试应用程序编程接口(API),保证接口的准确性,稳定性;
这里的UI自动化也可以分为两类,即Web自动化,以及客户端自动化;
Web自动化:
客户端自动化:
理想的自动化测试:
解释:顾名思义,从上到下,手动测试,自动化测试,接口测试(根据请求,检查响应数据格式以及内容),以及单元测试(即对程序最小单元执行,一般是由开发人员进行测试)
顶端就是要消耗更多的时间精力,但是收获相反很小;往下就是更低的时间精力消耗,但是获得的投资回报率更高;
但是在现实的自动化测试如下:
即在真实的测试中,手动测试以及自动化测试的消耗的精力更高,那么投资回报率越高;因为在进行手动测试以及UI自动化测试的过程中,后端的问题会在前端进行显示;
即模拟我们人为对于浏览器的操作;那么我们要打开浏览器,就需要浏览器驱动;此时我们需要下载驱动;
驱动下载问题:不同的浏览器需要不同的浏览器的驱动,不同版本的浏览器需要不同版本的浏览器驱动
那么我们浏览器会自动更新,那么每次更新我们都要下载新的驱动吗?答案不是的,那么就引入驱动管理程序;
创建我们的项目文件:
WebDriverManager是⼀个开源Java库,以完全⾃动化的⽅式对Selenium WebDriver所需的驱动程 序(如chromedriver、geckodriver、msedgedriver等)进⾏管理(即下载、设置和维护)
这里我们需要引入依赖:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
</dependency>
接下来就是使⽤selenium来编写web⾃动化测试脚本。selenium是⼀个web⾃动化测试⼯具,selenium中提供了丰富的⽅法供给使⽤者进⾏web⾃动化测试。
代码如下:
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
接下来就是编写代码,一般作为测试人员,我们最好是在test包里进行代码的编写;
目的:
1.打开百度浏览器; 2.输入我们要输入的内容; 3.点击百度一下; 4.关闭浏览器;
第一步的代码如下所示:
public class FirstTest {
void test1() throws InterruptedException {
//创建浏览器驱动
WebDriverManager.chromedriver().setup();
//增加浏览器配置
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
//创建驱动对象
WebDriver driver = new ChromeDriver(options);
Thread.sleep(3000);
}
}
接下来小编进行一一的解释:
第一步创建谷歌浏览器的驱动,然后创建驱动对象,进行后序的相关操作;但是由于浏览器对于自动化操作不安全问题,自动配置options进行所有网址的访问;
第二步代码如下:
//输入请求的网站
driver.get("https://www.baidu.com/");
Thread.sleep(3000);
//找到输入框,然后输入内容
driver.findElement(By.cssSelector("#kw")).sendKeys("蔡徐坤");
Thread.sleep(3000);
//找到元素并点击
driver.findElement(By.cssSelector("#su")).click();
Thread.sleep(3000);
driver.quit();
解释:
这里就是通过get访问百度网址,然后通过findelement进行元素的查找,此时我们通过选择器cssSelector进行查找对应的元素,那么“#kw指的就是百度搜索框,通过sendKey输入我们要查找的内容;
最后通过同样的方式找到这里的百度一下点击搜索元素,通过click进行点击操作,最后退出浏览器;(小编这里使用sleep强制等待是为了方便自己查看,因为程序自动运行操作很快)