什么是自动化测试
将人为驱动的测试行为转化为机器执行的过程。
自动化测试包括UI
自动化,接口自动化,单元测试自动化。按照这个金字塔模型来进行自动化测试规划,可以产生最佳的自贡话测试产出投入比(ROI
),可以用较少的投入获得很好的收益。
selenium
Selenium
是 W
eb
应用中基于
UI
的自动化测试框架,支持跨平台、多浏览器、多语言。
工作原理
Selenium + Java 环境搭建
一、推荐使用 Chrome 浏览器。先查看浏览器版本:
二、因为我的版本是 127 的,所以需要去这个地方下载:下载链接
三、把压缩包解压后把 chromedriver.exe 复制到:
① Chrome 浏览器目录下:
② Java - jdk 的 bin 目录下:
四、创建 Java Maven 项目,引入 pom.xml 依赖
<dependencies>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
</dependencies>
五、创建一个 Java 类,验证环境是否配置成功:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Test {
public static void main(String[] args) {
ChromeOptions options = new ChromeOptions();
options.addArguments("--remote-allow-origins=*"); // 允许所有的请求
WebDriver webDriver = new ChromeDriver(options);
webDriver.get("https://www.baidu.com"); // 打开百度首页
}
}
Selenium 常用的 API
定位元素
findElement:css 选择
// 选中百度搜索框
WebElement element = webDriver.findElement(By.cssSelector("#kw"));
xpath 选择
// 选中百度搜索框
WebElement element = webDriver.findElement(By.xpath("//*[@id=\"kw\"]"));
操作测试对象的 API
click:
点击对象
send_keys:
在对象上模拟按键输入
clear:
清除对象输入的文本内容
submit:
提交(效果和 click 一样,但是这个元素要在 form 表单中,否则会报错)
text:
用于获取元素的文本信息
// 往搜索框输入内容
element.sendKeys("奥运会");
// 找到 百度一下 按钮,然后点击
webDriver.findElement(By.cssSelector("#su")).click();
// 清空输入框
webDriver.findElement(By.cssSelector(".s_ipt")).clear();
添加等待
// 硬等三秒
sleep(3000);
// 隐式等待,如果发现了要找的元素就停止等待,到时间了还没找到就报错
webDriver.manage().timeouts().implicitlyWait(3, TimeUnit.HOURS);
打印信息(获取信息)
打印 title:
打印 url: