You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Serenity Cucumber项目运行抛出的SerenityManagedException错误

问题根因

该报错是RestAssured与Serenity Rest版本不兼容导致的NoSuchMethodError运行时异常:

Serenity Rest内部日志上报逻辑调用了RestAssured的blacklistedHeaders()方法,该方法是RestAssured 4.3.0及以上版本才新增的API,如果你项目中引入的RestAssured版本低于4.3.0,仅存在旧版的getBlacklistedHeaders()方法,就会触发方法不存在的错误。

排查步骤
  • 执行依赖查询命令获取当前项目的依赖版本:Maven项目执行mvn dependency:tree,Gradle项目执行gradle dependencies
  • 核对Serenity与RestAssured的版本匹配规则:
    • Serenity 3.x及以上版本必须搭配RestAssured ≥4.3.0版本使用
    • Serenity 2.4.x及以下版本适配RestAssured 3.x系列版本
  • 排查是否存在依赖冲突:确认是否有多个依赖引入了不同版本的RestAssured,出现高版本被低版本覆盖的情况
解决方案

根据项目的Serenity版本选择对应处理方案即可:

  1. 适配高版本Serenity(3.x+)
    统一RestAssured版本到4.3.3及以上,Maven依赖配置参考:
<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>5.3.0</version>
    <scope>test</scope>
</dependency>

如果是Gradle项目在依赖配置里声明对应版本的RestAssured即可。
2. 保留低版本RestAssured
将Serenity版本降级到2.4.51,适配RestAssured 3.x系列版本。
3. 临时验证方案(仅用于快速确认问题,不建议长期使用)
关闭Serenity的接口请求日志上报功能,在项目的serenity.properties配置文件中添加如下配置:

serenity.rest.log = false

该配置会跳过触发报错的日志上报逻辑,不会影响接口请求执行,但测试报告中会缺失接口请求、响应的详情记录。

内容的提问来源于stack exchange,提问作者tayswift13

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:15:06