一)什么是自动化?为什么要做自动化?
自动化测试可以代替一部分手工测试,不能够完全代替手工测试
1)自动化测试相比于手工测试来说人力的投入和时间的投入是非常非常少的,自动化测试能够提高测试效率
2)在回归测试里面,如果你回归的功能越来越多,迭代的版本越来越多,版本回归压力也会越来越大,所以仅仅通过人工测试的方式来回归所有的版本肯定是不现实的,所以我们需要借助自动化进行回归
二)为什么选择selenium作为自动化测试工具?
selenium是web应用中的基于UI的自动化测试框架,支持多平台,多浏览器,多语言
选择它一定是有原因的
1)支持多浏览器,在进行兼容性测试的时候,我们要对浏览器进行测试,因为用户可能会使用多个浏览器,因为它可以支持多浏览器进行自动化测试;
2)支持多平台多个操作系统,比如说linux系统,mac系统,windows系统,MacOS系统;
3)开源免费,不用花钱;
4)selenium支持多语言,比如说JAVA还支持python;
5)selenium包底层有很多可以使用的API;
三)环境部署
selenium工具包
Chrome浏览器
ChromeDriver谷歌驱动
Java版本最低要求是8
四)什么是驱动?驱动的工作原理是什么?
4.1)汽车是具有驱动的,两个轮子也是有驱动的,四个轮子还是有驱动的,驱动可以使汽车跑起来
4.2)计算机里面也是有驱动程序的,可以驱动计算机和设备工作起来
4.3)打开浏览器也是需要驱动的,在人工测试的情况下,人工可以手动的驱动打开浏览器
但是对于自动化测试来说,代码不能够手动的直接打开浏览器,需要借助驱动程序来协助打开浏览器,总结:代码可以驱使驱动打开浏览器
五)驱动的工作原理:
前提:使用selenium来编写代码
1)我们使用的selenium编写的自动化脚本代码会给浏览器的驱动发送一个HTTP请求
2)webdriver浏览器驱动会接受这个HTTP请求并进行解析
3)wendriver浏览器驱动会操控浏览器来执行一些操作
4)浏览器会把执行结果包装成HTTP响应给驱动,驱动再把执行结果返回给应用程序
必须知道请求驱动的地址是什么?那么此时驱动在这里面应该扮演这是一个啥样的角色呢?
驱动应该是一个服务器吧,IP+端口号,IP地址就是本机IP,端口号就是默认的9515
当前驱动程序已经建立好了TCP链接
六)简单的自动化测试脚本
1)创建一个maven项目
2)引入依赖
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java --> <dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-java</artifactId> <version>4.0.0</version> </dependency>