自动化测试工具selenium搭建
1. 自动化和selenium基本概念
1) 什么是自动化?为什么要做自动化?
自动化测试能够代替一部分的手工测试,自动化测试能够提高测试的效率。随着项目功能的增加,版本越来越多,版本的回归测试的压力也就越来越大,所以仅仅通过人工测试来回归所有版本肯定是不够的,所以需要借助自动化来进行回归测试。
2) 为什么选择selenium作为web自动化工具?
最主要是selenium开源免费,其次就是
- 支持Chrome、Firefox、edge等主流浏览器
- 支持windows、Linux、Mac操作系统
- 支持多种语言,比如Java、Python等
- selenium包底层提供很多可以使用的API
2. selenium环境搭建
在在pom.xml中引入Maven依赖
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.0.0</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
查看自己的浏览器版本
下载对应版本的谷歌驱动Selenium
选择至少保证版本号前两组一致最新的浏览器驱动。
注意:JDK版本最低要求为8
把下载后的驱动直接解压到jdk的安装的bin目录下,然后点击启动
编写一个测试代码:
这是一个通过谷歌浏览器大概百度首页搜索软件测试的自动化案例
public class Demo {
public static void test() throws InterruptedException {
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*");
ChromeDriver driver = new ChromeDriver(options);
Thread.sleep(1500);
driver.get("https://www.baidu.com/");
Thread.sleep(1500);
driver.findElement(By.cssSelector("#kw")).sendKeys("软件测试");
Thread.sleep(1500);
driver.findElement(By.cssSelector("#su")).click();
Thread.sleep(3000);
driver.quit();
}
public static void main(String[] args) throws InterruptedException {
test();
}
}
3. 什么是驱动?驱动的功能原理是什么?
驱动是很常见的,汽车有汽车的驱动,驱动可以让汽车跑起来。电脑有网卡驱动,没有网卡驱动电脑有网卡也是上不了网的。
我们手动打开浏览器进行测试是不需要驱动的,而对于自动化来说代码是不能够直接打开浏览器的,需要借助驱动程序来协助打开浏览器。
代码可以驱使驱动来打开浏览器,代码要发送请求,我们得知道请求的地址是什么,那么驱动就是一个类似于服务器的角色,通过本机环回Ip加上驱动的端口号9515就能给驱动发送请求, 127.0.0.1 : 9515 127.0.0.1:9515 127.0.0.1:9515