自动化测试
什么是自动化
有效减少人力的消耗,同时提高生活的质量
通过自动化测试有效减少人力的投入,同时提高了测试的质量和效率
由于回归测试,版本越来越多,版本回归的压力越来越大,仅仅通过人工测试来回归所有版本是不现实的,所以自动化测试就变得需要。
自动化测试分类
- 接口自动化测试
- UI自动化测试(界面测试)
- 移动端自动化测试
- web端自动化测试 (selenium)
selenium工具
自动化测试工具有许多,那么我们为什么选择selenium作为我们的web自动化测试工具?
- 开源免费
- 跨平台、多平台支持: linux、windows、mac
- 支持多浏览器 :Firefox、Internet Explorer、Safari、Opera、Chrome、Edge
- 核心功能:就是可以在多个浏览器上进行自动化测试
- 可以搭配多种编程语言使用:Java、Python、C#、JavaScript、Ruby等
- selenium包提供了很多可供测试使用的API
环境部署【Java】—— 环境部署博客
- 浏览器
- 浏览器驱动
- selenium工具包
jdk版本最低要求8
关于环境部署常见问题总结
SessionNotCreatedException
原因:selenium找不到Chrome.exe的安装路径
解决办法:
前提:请先确认您下载的谷歌浏览器不是盗版。
驱动实例化中使用绝对路径:
ChromeDriver driver = new ChromeDriver("E:/browser/Google/Chrome/Application/chrome.exe);//注意:这里放同学自己的Chrome.exe所在路径哦,不要盲目复制粘贴~~
The version of ChromeDriver only support xxxxxxxxx
原因:浏览器版本和驱动版本不匹配,重新在官网下载对应版本的驱动
下载地址:浏览器驱动下载
3. The path to the driver executable the path to
原因:浏览器驱动没有放到系统环境变量下
解决办法(二选一即可):
1)找到驱动所在路径,复制路径并添加系统环境变量
2)将驱动放到jdk路径下
selenium编写的自动化脚本是如何打开浏览器的【案例】
这里说的就是 selenium、 驱动 、 浏览器 三者之间的关系。
- 使用selenium编写自动化脚本代码
- 驱动要接收selenium脚本发过来的http请求,并且解析请求
创建Maven项目
引用selenium依赖包
创建自动化实例
AutoTest.java
import org.openqa.selenium.By;
import org.openqa.selenium.chrome.ChromeDriver;
/**
* @author SunYuHang
* @date 2023-01-17 12:26
* @ClassName : AutoTest //类名
*/
public class AutoTest {
//打开我自己发布的博客网站 登录博客网站
public void Test() throws InterruptedException {
//打开浏览器
ChromeDriver chromeDriver = new ChromeDriver();
//在浏览器访问 http://43.140.252.242:8080/blog_system/blog_login.html
chromeDriver.get("http://43.140.252.242:8080/blog_system/blog_login.html");
//找到用户名输入框并输入用户名
chromeDriver.findElement(By.cssSelector("#username")).sendKeys("admin");
Thread.sleep(5000);
//找到密码输入框并输入密码
chromeDriver.findElement(By.cssSelector("#password")).sendKeys("123456");
Thread.sleep(5000);
//点击登录按钮
chromeDriver.findElement(By.cssSelector("#submit")).click();
Thread.sleep(5000);
//结束会话
chromeDriver.quit();
}
}
RunAutoTest.java
/**
* @author SunYuHang
* @date 2023-01-17 12:26
* @ClassName : RunAutoTest //类名
*/
public class RunAutoTest {
public static void main(String[] args) throws InterruptedException {
AutoTest autoTest = new AutoTest();
autoTest.Test();
}
}
效果展示