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

如何使用REST Assured优雅断言HTML标签中隐藏的JSON体?

更优雅的断言方式

你的响应是HTML结构,但<body>标签内包含一段JSON字符串,直接用字符串匹配不仅繁琐,还容易因为字段顺序、空格变化导致断言失效。推荐两种更可靠的方式:

方式一:提取并解析JSON字符串断言

利用RestAssured的body()方法结合JsonPath,先提取<body>内的文本,解析成JSON后直接断言字段值,完全避免字符串硬编码:

.body("html.body", bodyContent -> {
    // 移除body内容末尾多余的冒号(你的响应里JSON后面有个冒号)
    String cleanJson = bodyContent.asString().trim().replaceAll(":$", "");
    // 解析为JSON并断言name字段
    assertThat(new JsonPath(cleanJson).getString("name"), equalTo("test"));
})

方式二:简化版JSON解析断言

如果不想写匿名内部类,也可以用更简洁的链式写法,先提取HTML body文本,再通过JsonPath直接解析断言:

.extract().path("html.body")
.asString()
.replaceAll(":$", "")
.then()
.jsonPath().getString("name").equals("test");

为什么比原方式更好

  • 避免了大量转义字符的繁琐写法,代码可读性大幅提升
  • 基于JSON结构断言,不受字段顺序、空格等格式变化影响,稳定性更强
  • 直接针对字段值做断言,逻辑更清晰,维护成本更低

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 18:43:14