当前位置:

首页 > 编程开发 > SerenityBDD框架:Java+Selenium全面指南(2026最新)

SerenityBDD框架:Java+Selenium全面指南(2026最新)

在自动化测试领域,Serenity BDD(原名Thucydides)一直是一个绕不开的名字。它不仅仅是一个基于Selenium WebDriver的测试框架,更是一个集成了实时文档生成、可维护性设计和企业级报告能力的强大平台。对于希望在2026年构建健壮、可维护且具备出色可视化能力的测试体系的团队

在自动化测试领域,Serenity BDD(原名Thucydides)一直是一个绕不开的名字。它不仅仅是一个基于Selenium WebDriver的测试框架,更是一个集成了实时文档生成、可维护性设计和企业级报告能力的强大平台。对于希望在2026年构建健壮、可维护且具备出色可视化能力的测试体系的团队来说,掌握其核心要义至关重要。

SerenityBDD框架:Ja va+Selenium全面指南(2026最新)

为什么选择 Serenity + Selenium?(核心优势)

那么,Serenity BDD究竟带来了哪些超越原生Selenium的价值?其核心优势可以归结为几个关键方面,这些特性共同构成了它在企业级应用中的竞争力。

特性 优势
自动生成实时文档 生成包含截图、需求追溯和步骤叙述的丰富 HTML 报告
增强版页面对象模式 内置 PageObject/PageComponent,支持智能等待、AJAX 处理和元素缓存
BDD 原生支持 无缝集成 Cucumber、JBeha ve 等行为驱动开发工具
并行执行能力 原生支持多浏览器/多线程并行测试
API + UI 混合测试 通过 serenity-rest-assured 轻松结合 REST API 与 UI 测试
CI/CD 友好 支持 Jenkins/GitHub Actions 插件,集成 Jira/Xray,支持需求标签
低维护成本 智能定位器(@FindBy)、自动截图管理、自愈能力

现代项目配置(Ma ven - 2026 推荐)

要开始一个全新的Serenity项目,Ma ven依然是主流选择。下面是一份针对2026年的推荐配置,它使用了最新的稳定版本,并确保了各组件间的兼容性。



    4.0.0 
    4.0.0
    5.10.1


    
    
        net.serenity-bdd
        serenity-core
        ${serenity.version}
    
    
    
        net.serenity-bdd
        serenity-cucumber
        ${serenity.cucumber.version}
    
    
    
        net.serenity-bdd
        serenity-junit5
        ${serenity.version}
    
    
    
        org.seleniumhq.selenium
        selenium-ja va
        4.18.1 
    


    
        
            net.serenity-bdd.ma ven.plugins
            serenity-ma ven-plugin
            ${serenity.version}
            
                
                    serenity-reports
                    post-integration-test
                    aggregate
                
            
        
    

标准项目结构(2026 推荐)

一个清晰的项目结构是维护性的基石。遵循以下约定俗成的目录布局,能让你的测试代码库保持整洁和可扩展。

src/test/ja va
├── features/          # Cucumber .feature 文件(BDD 场景)
├── pages/             # 页面对象类(继承 PageObject)
├── steps/             # 步骤库(带 @Steps 注解的类)
├── tasks/             # Screenplay 模式任务(高级用法)
├── runners/           # 测试运行器(@CucumberOptions 或 @ExtendWith)
└── hooks/             # 全局钩子(Before/After)
src/test/resources
├── serenity.conf      # 核心配置(浏览器、超时、基础 URL)
└── environment/       # 环境专属配置(dev/staging/prod)

关键代码模式(2026 最佳实践)

1.页面对象(现代写法)

页面对象模式是Serenity的基石之一,但其实现方式比原生Selenium更智能。关键在于使用WebElementFacade和内置的等待机制。

@DefaultUrl("https://app.example.com/login")
public class LoginPage extends PageObject {
    @FindBy(id = "username") WebElementFacade usernameField;
    @FindBy(id = "password") WebElementFacade passwordField;
    @FindBy(css = "button[type='submit']") WebElementFacade loginBtn;
    public void enterCredentials(String user, String pwd) {
        usernameField.type(user);
        passwordField.typeAndEnter(pwd); // 自动提交
    }
    // 智能等待示例
    public boolean isErrorMessageVisible() {
        return $("#error-alert").isCurrentlyVisible();
    }
}

2.Screenplay 模式(复杂流程推荐)

对于涉及多步骤、多角色的复杂业务流程,Screenplay模式提供了更高的表达能力和可维护性。它将测试用例描述为“演员(Actor)执行任务(Task)以达到目标(Goal)”。

public class Login implements Task {
    private final String username, password;
    public static Login as(String user, String pwd) {
        return Tasks.instrumented(Login.class, user, pwd);
    }
    @Override
    public  void performAs(T actor) {
        actor.attemptsTo(
            Enter.theValue(username).into("#username"),
            Enter.theValue(password).into("#password").thenHit(Keys.ENTER),
            WaitUntil.the(LoginPage.SUCCESS_MESSAGE, isVisible()).forNoMoreThan(10).seconds()
        );
    }
}

3.serenity.conf(核心配置)

配置文件serenity.conf是控制框架行为的中心。这里可以定义浏览器、超时、报告策略以及多环境配置。

webdriver {
  driver = chrome
  chrome {
    arguments = ["--headless=new", "--disable-gpu", "--no-sandbox"]
  }
}
serenity {
  take.screenshots = FOR_FAILURES
  requirements.dir = "src/test/resources/features"
  output.directory = "target/site/serenity"
}
environments {
  default {
    base.url = "https://staging.example.com"
  }
  prod {
    base.url = "https://app.example.com"
  }
}

报告能力亮点

Serenity最引人注目的特性莫过于其强大的报告系统。执行 mvn clean verify 后,再运行 mvn serenity:aggregate,你将获得一份完整的、交互式的HTML报告,包含以下亮点:

  • 交互式仪表盘:测试结果、需求覆盖率、能力地图
  • 步骤级叙述:每个操作附带时间戳、截图、HTML 源码
  • 需求追溯:通过 @capability、@feature、@story 标签关联业务需求
  • 不稳定测试检测:历史趋势分析,识别波动用例
  • 视频录制:配合 Docker/Selenium Grid 可录制完整测试会话

报告示例:target/site/serenity/index.html —— 完全交互式,支持逐层钻取

2026 生态系统集成

一个框架的生命力在于其生态。Serenity BDD与现代开发和运维工具链的集成非常成熟。

工具 集成方式
GitHub Actions serenity-bdd/report-publisher-action@v2
Jira/Xray 通过 serenity-jira-requirements-provider 自动上传结果
Allure 支持混合报告(Serenity + Allure 双报告)
Docker 官方 serenitybdd/serenity-cli 镜像用于 CI 环境
Playwright 社区插件提供实验性支持(GitHub 查看最新进展)

常见陷阱与避坑指南

在采用Serenity的过程中,有些“坑”提前了解可以节省大量调试时间。

  1. 避免混用 JUnit 4/5:JUnit 5 项目使用 @ExtendWith(SerenityRunner.class)
  2. 始终使用 WebElementFacade:替代原生 WebElement,获得内置智能等待
  3. 禁止硬编码等待:使用 WaitUntil 条件等待替代 Thread.sleep()
  4. CI 环境优化截图:配置 serenity.take.screenshots=FOR_FAILURES 减少产物体积
  5. 升级注意:Serenity 3.x → 4.x 需要 Selenium 4.15+ 和 Ja va 17+

必备资源(2026 更新)

保持学习是跟上技术步伐的关键。以下资源能帮助你深入掌握Serenity BDD。

  • 官方文档(每周更新)
  • GitHub 仓库(活跃社区)
  • Serenity Dojo(付费培训,含最新实践)
  • Ma ven Central(查询最新版本)
  • 2025 新增:官方 VS Code 插件,支持 .feature 文件智能提示

专家建议:2026 年新项目建议直接采用 Screenplay 模式 而非传统页面对象——它更适合复杂业务流程,能实现真正的业务语言测试。推荐从 Serenity Starter 项目 快速启动。

总结

总而言之,Serenity BDD依然是企业级 Selenium 自动化的黄金标准,特别适合对可维护性、报告质量和 BDD 协作有高要求的团队。2025年底发布的4.0+版本持续活跃开发,全面兼容Selenium 4新特性及主流云测试平台,无疑是2026年构建可靠、高效自动化测试架构的一个稳健选择。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发
相关文章 更多
windows claude code 安装
windows claude code 安装

详解如何在Windows 10/11上安装Claude Code。涵盖WSL与Git Bash终端选择、Node.js版本检查、npm全局安装步骤、身份验证流程及claude doctor诊断方法,帮助开发者快速搭建本地AI编码助手。

typescript是什么语言?一文看懂其定义与用途
typescript是什么语言?一文看懂其定义与用途

深入浅出解析TypeScript是什么语言。本文详细介绍TypeScript的语言定义、超集架构、核心运行原理、与JavaScript的核心对比以及四类典型工业级应用场景,帮助读者全面看懂TS的价值与用途。

codex安装windows教程桌面版完整安装步骤指南
codex安装windows教程桌面版完整安装步骤指南

详解如何在 Windows 电脑上通过 Microsoft Store 安装 Codex 桌面应用,包括启动登录、切换 Codex 模式、关联本地代码项目及终端环境配置的界面操作指引。

github配置ssh key windows
github配置ssh key windows

本文详解如何在Windows环境中使用PowerShell生成SSH密钥对,配置ssh-agent自动加载私钥,并将公钥安全添加至GitHub账户,最后通过git remote set-url切换为SSH地址,解决每次操作需输入账号密码的问题。

backdrop和background区别
backdrop和background区别

深入解析backdrop与background在网页开发及视觉设计中的区别。通过CSS代码示例,展示如何正确使用background设置元素背景,以及利用backdrop-filter创建弹窗遮罩模糊效果,避免概念混用。

windsurf ide download Windows版安装教程
windsurf ide download Windows版安装教程

详解 Windsurf IDE 在 Windows 系统的下载来源、安装步骤及首次启动界面。指导用户如何导入编辑器设置、打开项目文件夹及使用终端与 AI 功能,适合初次接触该工具的开发者阅读。

ServBay安装配置详细教程与操作指南
ServBay安装配置详细教程与操作指南

新手入门 ServBay 本地开发环境,详解安装包下载、Dashboard 状态监控、Packages 组件安装、Services 服务控制及 Websites 项目配置。掌握 .servbay.config 版本管理与日志排查技巧,快速搭建稳定的 PHP、Node.js 等多语言开发环境。

codekit环境配置指南从安装到环境搭建完整教程
codekit环境配置指南从安装到环境搭建完整教程

详解 CodeKit 在 macOS 下的安装步骤、项目导入方法、Sass与JavaScript编译设置及浏览器自动刷新功能,助您快速搭建高效的前端开发环境。

codex安装windows 命令行完整操作教程
codex安装windows 命令行完整操作教程

详解Windows环境下安装OpenAI Codex CLI的步骤,包括WSL环境检查、Node.js/npm配置、npm全局安装命令及首次启动验证,适合开发者快速上手。

NativeRest环境配置要求与完整操作教程
NativeRest环境配置要求与完整操作教程

学习如何配置 NativeRest REST API 客户端。涵盖 Windows/macOS/Linux 安装后的工作区创建、环境变量管理、请求编辑及响应查看步骤,帮助开发者快速完成基础环境搭建与连通性测试。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
WPS Office macOS版
WPS Office macOS版
macOS

WPS Office是一款面向macOS用户的综合办公套件,将文字处理、电子表格、演示文稿、PDF工具、模板与云协作整合在同一应用中。它兼容常见Microsoft Office格式,支持Intel及Apple芯片Mac,基础功能可免费使用,

Shapr3D macOS版
Shapr3D macOS版
Mac

Shapr3D是一款面向工业设计、机械工程、建筑概念和三维打印工作流的CAD软件。Mac版采用Parasolid建模内核,支持草图约束、实体建模、工程图、可视化渲染及常见CAD格式交换,并可通过账户在多台设备之间同步项目。

REAPER macOS版
REAPER macOS版
Mac

REAPER是Cockos开发的数字音频工作站,提供多轨音频与MIDI录制、剪辑、处理、混音和母带制作工具。Mac版兼容Intel与Apple芯片,支持AU、VST、VST3、CLAP等插件格式,并提供高度可定制的工作流程。

WINDOWS 更多
Adobe Photoshop Windows版
Adobe Photoshop Windows版
Windows

Adobe Photoshop 是面向摄影师、设计师和内容创作者的专业图像处理工具,可在 Windows 上完成照片修饰、选区抠图、图层合成、文字排版、绘画及生成式编辑。软件采用订阅授权,由 Creative Cloud 管理安装、更新与许

Adobe InDesign Windows版
Adobe InDesign Windows版
Windows

Adobe InDesign 是面向印刷与数字出版的专业页面排版工具,可制作书籍、杂志、宣传册、海报、交互式 PDF 和电子书。它提供精细的文字样式、多页面管理、印前检查及多格式输出能力,并能与 Photoshop、Illustrator

Adobe Illustrator Windows版
Adobe Illustrator Windows版
Windows

Adobe Illustrator 是用于绘制矢量图形、插画、图标、徽标和版式的专业设计工具。它以路径和锚点为核心,作品放大后仍能保持清晰,并提供画板、文字、渐变、图像描摹及精确变换等功能,适合品牌视觉、印刷物料、数字界面和商业插画创作。