0


SpringBoot中Selenium详解

文章目录

SpringBoot中Selenium详解

一、引言

在现代软件开发中,自动化测试是提高软件质量、减少重复工作的重要手段。Selenium 是一个强大的自动化测试工具,它支持多种编程语言和浏览器,能够模拟用户对网页的操作。Spring Boot 作为一个轻量级的Java应用框架,与 Selenium 结合可以极大地提高开发效率和测试的便利性。本文将详细介绍如何在 SpringBoot 中集成 Selenium,并给出具体的代码示例。

二、集成Selenium

1、环境准备

在开始之前,确保你已经安装了Java开发环境和Maven构建工具。你还需要下载对应版本的ChromeDriver或GeckoDriver,以便Selenium能够控制浏览器。

1.1、添加依赖

在SpringBoot项目的

pom.xml

文件中添加Selenium和TestNG的依赖:

<dependencies><!-- selenium --><dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.141.59</version></dependency><!-- TestNG --><dependency><groupId>org.testng</groupId><artifactId>testng</artifactId><version>RELEASE</version><scope>compile</scope></dependency></dependencies>

2、编写测试代码

2.1、测试主类

创建一个测试类,继承SpringBaseTestNGTest,并注入页面对象和截图工具:

packagecom.et.selenium;importcom.et.selenium.page.google.GooglePage;importcom.et.selenium.util.ScreenShotUtil;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.context.annotation.Lazy;importorg.testng.Assert;importorg.testng.annotations.Test;importjava.io.IOException;publicclassGoogleSearch1TestextendsSpringBaseTestNGTest{@AutowiredprivateGooglePage googlePage;@Lazy@AutowiredprivateScreenShotUtil screenShotUtil;@TestpublicvoidGoogleTest()throwsIOException,InterruptedException{this.googlePage.goToGooglePage();Assert.assertTrue(this.googlePage.isAt());this.googlePage.getSearchComponent().search("spring boot");Assert.assertTrue(this.googlePage.getSearchResult().isAt());Assert.assertTrue(this.googlePage.getSearchResult().getCount()>2);System.out.println("Number of Results: "+this.googlePage.getSearchResult().getCount());Thread.sleep(3000);this.screenShotUtil.takeScreenShot("Test.png");this.googlePage.close();}}
2.2、页面对象

创建GooglePage页面对象,包含打开页面和获取搜索组件的方法:

packagecom.et.selenium.page.google;importcom.et.selenium.annotation.Page;importcom.et.selenium.page.Base;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.beans.factory.annotation.Value;@PagepublicclassGooglePageextendsBase{@AutowiredprivateSearchComponent searchComponent;@AutowiredprivateSearchResult searchResult;@Value("${application.url}")privateString url;publicvoidgoToGooglePage(){this.driver.get(url);}publicSearchComponentgetSearchComponent(){return searchComponent;}publicSearchResultgetSearchResult(){return searchResult;}@OverridepublicbooleanisAt(){returnthis.searchComponent.isAt();}publicvoidclose(){this.driver.quit();}}
2.3、搜索组件

创建SearchComponent类,包含搜索方法:

packagecom.et.selenium.page.google;importcom.et.selenium.annotation.PageFragment;importcom.et.selenium.page.Base;importorg.openqa.selenium.Keys;importorg.openqa.selenium.WebElement;importorg.openqa.selenium.support.FindBy;importjava.util.List;@PageFragmentpublicclassSearchComponentextendsBase{@FindBy(name ="q")privateWebElement searchBox;@FindBy(name="btnK")privateList<WebElement> searchBtns;publicvoidsearch(finalString keyword){this.searchBox.sendKeys(keyword);this.searchBox.sendKeys(Keys.TAB);this.searchBtns.stream().filter(e -> e.isDisplayed()&& e.isEnabled()).findFirst().ifPresent(WebElement::click);}@OverridepublicbooleanisAt(){returnthis.wait.until(driver1 ->this.searchBox.isDisplayed());}}

三、使用示例

上述代码展示了如何在SpringBoot中集成Selenium,并进行了一个简单的Google搜索测试。通过注入页面对象和截图工具,我们可以轻松地对网页进行自动化操作,并在测试完成后保存截图。

四、总结

SpringBoot与Selenium的结合使得自动化测试变得更加简单和高效。通过上述步骤,你可以快速地在你的项目中集成Selenium,并编写自动化测试用例。这不仅提高了测试的覆盖率,也减少了手动测试的工作量。


版权声明:本博客内容为原创,转载请保留原文链接及作者信息。

参考文章

  • Spring Boot集成selenium实现自动化测试_springboot selenium-CSDN博客

本文转载自: https://blog.csdn.net/NiNg_1_234/article/details/144305328
版权归原作者 eqa11 所有, 如有侵权,请联系我们删除。

“SpringBoot中Selenium详解”的评论:

还没有评论