Skip to content

这是一个使用Java、Spring Boot和Selenium WebDriver构建的自动化测试项目,旨在对一个博客应用程序进行UI和功能测试。

Notifications You must be signed in to change notification settings

xiaoli79/BlogAutoTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

BlogAutoTest: 博客自动化测试项目

这是一个使用Java、Spring Boot和Selenium WebDriver构建的自动化测试项目,旨在对一个博客应用程序进行UI和功能测试。

项目简介

本项目通过模拟用户在浏览器中的真实操作,自动化地测试博客系统的各项核心功能,包括用户登录、文章列表、文章编辑以及未登录状态下的页面访问限制。

技术栈

  • 核心框架: Spring Boot
  • 测试框架: Selenium WebDriver
  • 浏览器驱动管理: WebDriverManager
  • 构建工具: Maven
  • 编程语言: Java 17
  • 辅助工具: Lombok, Commons IO

项目结构

BlogAutoTest
├── src
│   ├── main
│   │   ├── java
│   │   │   └── org/example/blogautotest
│   │   │       └── BlogAutoTestApplication.java  // Spring Boot 主应用
│   │   └── resources
│   │       └── application.properties          // 配置文件
│   └── test
│       ├── java
│       │   ├── RunTests.java                   // 测试执行入口
│       │   ├── common
│       │   │   └── Utils.java                  // WebDriver和工具类封装
│       │   └── tests
│       │       ├── EditPage.java               // 编辑页面测试
│       │       ├── ListPage.java               // 列表页面测试
│       │       ├── LoginPage.java              // 登录页面测试
│       │       └── PageByNoLogin.java          // 未登录访问测试
│       └── resources
└── pom.xml                                     // Maven 配置文件

核心模块说明

1. common/Utils.java

这是项目的工具基类,主要负责:

  • WebDriver的初始化与管理: 使用WebDriverManager自动配置ChromeDriver,并创建全局唯一的WebDriver实例。
  • 隐式等待: 设置了全局的隐式等待时间,以提高测试脚本的稳定性。
  • 截图功能: 提供了getScreenShot方法,可以在测试失败或关键步骤时进行截图,并按日期和时间保存,便于问题排查。
  • 构造函数: 提供了两个构造函数,一个用于直接初始化浏览器,另一个在初始化的同时打开指定的URL。

2. tests/LoginPage.java

封装了所有与用户登录相关的测试用例。

  • loginPageRight(): 验证登录页面的基本元素是否存在。
  • loginSuc(): 测试使用正确的用户名和密码(zhangsan/123456)成功登录,并断言页面跳转是否正确。
  • LoginFail(): 测试使用错误的密码登录失败的场景,并处理登录失败后弹出的Alert对话框。

3. tests/ListPage.java

封装了登录后访问文章列表页的测试。

  • ListByLogin(): 模拟用户在登录状态下,点击并访问文章列表页的操作。

4. tests/EditPage.java

封装了编辑博客文章的测试。

  • EdiTSuc(): 自动在标题栏输入文本"肥波是我儿",并点击提交按钮来测试文章发布功能。

5. tests/PageByNoLogin.java

该类专门用于测试在未登录状态下,用户访问需要登录权限的页面是否会被正确地重定向到登录页。

  • ListPageByNoLogin(): 测试访问文章列表页。
  • DetailPageByNoLogin(): 测试访问文章详情页。
  • EditPageByNoLogin(): 测试访问文章编辑页。
  • 所有方法都使用了WebDriverWait(显式等待)来等待页面标题变为“博客登陆页”,并使用断言确保重定向成功。

6. RunTests.java

这是整个测试流程的主执行入口。它通过main方法,按顺序实例化各个测试页面类,并调用其中的测试方法,串联起一个完整的业务测试流程。

  • 测试流程:
    1. 初始化并测试登录页面。
    2. 执行成功的登录操作。
    3. 执行失败的登录操作。
    4. 测试未登录状态下对各个页面的访问。
    5. 再次执行成功的登录。
    6. 测试文章列表页和编辑页的功能。

如何运行

  1. 确保本地已安装Java 17和Maven环境。
  2. 打开项目。
  3. 直接运行src/test/java/RunTests.java文件中的main方法即可启动所有自动化测试。

About

这是一个使用Java、Spring Boot和Selenium WebDriver构建的自动化测试项目,旨在对一个博客应用程序进行UI和功能测试。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages