Eclipse+maven+selenium自动化测试用例入门

相关的开发环境搭建参考以下文章:

Eclipse+maven+selenium自动化测试开发环境搭建

确认环境搭建成功后,在src/test/java目录下,defaut package右键新建class,命名为:GoogleTest,相关代码如下:

java 复制代码
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import io.github.bonigarcia.wdm.WebDriverManager;
import java.time.Duration;

public class GoogleTest {
	
	WebDriver driver;
	
	@BeforeEach
	void setup() {
		
		WebDriverManager.chromedriver().setup();
		driver = new ChromeDriver();
		
	}
	
	
	@Test
	void googleSearchTest() {
		
		driver.get("https://www.google.com");
		//element search
		driver.findElement(By.name("q")).sendKeys("Selenium WebDriver");
		driver.findElement(By.name("q")).submit();
		
		//Explicit Wait
		WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
		wait.until(ExpectedConditions.titleContains("Selenium WebDriver"));
		
		//assert
		assertTrue(driver.getTitle().contains("Selenium"));
		
	}
	
	@AfterEach
	void tearDown() {
		driver.quit();
	}
	
	
}

@BeforeEach中的setup方法初始化webdriver,这两行代码必不可少,否则可能出现意想不到的错误。

WebDriverManager.chromedriver().setup();

driver = new ChromeDriver();

@Test中开始真正的测试了。

driver.get("https://www.google.com"); //打开google主页

driver.findElement(By.name("q")).sendKeys("Selenium WebDriver"); //找到搜索框,并输入Selenium WebDriver

driver.findElement(By.name("q")).submit(); //相当于回车执行搜索

WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); //设置显式等待,等待时间为10秒,当然3秒、5秒也可以。

wait.until(ExpectedConditions.titleContains("Selenium WebDriver")); //在10秒内等待,直到页面出现期待结果,包含Selenium WebDriver的信息。

assertTrue(driver.getTitle().contains("Selenium")); //断言设置结果为:网页title包含Selenium,测试通过。

@AfterEach中设置销毁driver,释放资源。更加严谨的逻辑是先判断driver是否还存在,如果存在执行driver.quit(); 这里不加赘述,自行研究。

void tearDown() {

driver.quit();

}

以上代码没有语法问题后,在GoogleTest.java点击右键,run as--->junit test

可以看到执行成功。到这里自动化测试算是入门了一条腿了。

到这里,我们可以发现,如果每个测试class都加上@BeforeEach,@AfterEach,并且Test中元素查找、页面等待都包含在内的话,代码显得臃肿,且维护复杂。如果将@BeforeEach @AfterEach等提取出去,并且把测试相关的页面、元素查找、用例成功的要素等单独封装到其他的类中,测试类就只关注测试步骤,这样测试就变得容易维护了。这里也就是常说的Page Obejcet Model页面对象模型。接下来会继续发布POM相关的实践过程。

相关推荐
曹牧1 天前
Eclipse:大小写转换的快捷键
eclipse
小白学大数据1 天前
使用 Selenium 爬取京东手机销量与评分数据 (1)
爬虫·selenium·测试工具·智能手机
qq_232045571 天前
pom.xml读本地Maven配置文件
maven·profile·snakeyaml·profiles·grovvy
杂家1 天前
Hudi集成Flink
大数据·flink·eclipse
h***38182 天前
maven导入spring框架
数据库·spring·maven
开开心心_Every2 天前
免费进销存管理软件:云端本地双部署
java·游戏·微信·eclipse·pdf·excel·语音识别
while(1){yan}2 天前
图书管理系统(超详细版)
spring boot·spring·java-ee·tomcat·log4j·maven·mybatis
计算机毕设指导62 天前
基于微信小程序的考研资源共享系统【源码文末联系】
java·spring boot·后端·考研·微信小程序·小程序·maven
叶 落2 天前
[Maven基础课程]15_以 RuoYi 为例看下 Maven 多模块工程
maven·maven 基础课程·maven 基础