【软件测试】自动化测试 — selenium快速上手
目录
1. 自动化测试的概念
2. web自动化测试
2.1 驱动
2.2 驱动管理
3. Selenium
3.1 导入依赖
3.2 快速上手
3.3 selenium + webDriver + 浏览器的原理
1. 自动化测试的概念
通过模仿人的行为,将人为驱动转变为机器驱动,设定好预期的结果,通过校验预期的结果和实际的结果是否一致,从而达到测试软件的功能的目的,通过⾃动化测试有效减少人力的消耗的同时也提⾼了测试的质量和效率。
自动化测试的典型应用场景就是回归测试
回归测试:避免因为添加某个新功能或修复某个bug,导致原来的功能受到影响
在回归测试中,很多的测试都是重复的,传统的手工测试太耗费时间,让机器进行测试,可以提高测试的准确性和执行效率
2. web自动化测试
web自动化测试,使用专门的软件测试工具,自动驱动web浏览器,执行预先定义好的用户操作,并验证网页的元素状态是否符合预期
2.1 驱动
显卡要有显卡驱动才能正常渲染画面;汽车要有发动机驱动才能跑起来;
自动化程序安装了web驱动(WebDriver) 就能执行打开浏览器等一系列操作,WebDriver 以本地化方式驱动浏览器。
不同的浏览器需要使用不同的浏览器驱动,不同版本的浏览器也需要不同版本的浏览器驱动
也就是说每次浏览器更新,都需要下载对应版本的浏览器驱动,那一天浏览器更新了,驱动没有更新,就会导致自动化失败,这样很繁琐,其实也有解决办法
2.2 驱动管理
我们不需要下载驱动程序,只需要在程序的pom文件中,导入对应的依赖,驱动管理程序会自动下载正确的驱动
<dependency><groupId>io.github.bonigarcia</groupId><artifactId>webdrivermanager</artifactId><version>5.8.0</version><scope>test</scope></dependency>
通过导入依赖,很好的解决了WebDriver不好管理的问题,可以自动化处理浏览器驱动的下载、版本匹配和路径配置,让 Selenium等测试工具的 Web 自动化测试更稳定、更便捷。
3. Selenium
selenium是目前流行的Web自动化测试工具,通过使用selenium中提供的方法可以很方便的对web进行自动化测试
3.1 导入依赖
使用起来很方便,只需要在项目中导入对应的依赖即可
<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>4.0.0</version></dependency>
导入后,即可使用selenium中提供的方法,编写代码,对web浏览器进行自动化测试
3.2 快速上手
在我们设计测试用例时,需要写清楚执行的步骤,自动化测试代码编写也是同样如此,规定好先干什么,后干什么(别忘记导入对应的依赖)
比如:在百度页面搜索《三国演义》
- 打开谷歌浏览器
- 输入网址:https://www.baidu.com
- 找到输入框,手动输入《三国演义》
- 点击搜索按钮
- 关闭浏览器
这个是百度页面搜索水浒传的步骤,自动化测试代码编写
//测试百度搜索void test01() {//1.记载对应的驱动WebDriverManager.chromedriver().setup();//2.设置加载的策略ChromeOptions options = new ChromeOptions();//允许访问所有链接options.addArguments("--remote-allow-origins=*");WebDriver webDriver = new ChromeDriver(options);//2.输入网址webDriver.get("https://www.baidu.com");//3.输入内容webDriver.findElement(By.cssSelector("#kw")).sendKeys("《三国演义》");//4.点击搜索webDriver.findElement(By.cssSelector("#su")).click();//5.关闭浏览器webDriver.quit();}
3.3 selenium + webDriver + 浏览器的原理
实现原理:
-
Selenium脚本通过调用WebDriver API创建HTTP请求
-
webDriver获取请求后并解析,将解析后的数据发送给浏览器
-
浏览器执行实际操作