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

如何在Soup UI中通过断言统计JSON响应中planCode的出现次数?

在SoapUI中统计JSON响应里planCode的出现次数并实现断言的方法

嘿,我来帮你搞定这个SoapUI里的断言问题!针对你给出的JSON响应,要统计planCode的出现次数并做断言,其实通过Groovy脚本断言就能轻松实现,步骤很清晰:

  • 第一步:添加Groovy脚本断言
    在你的测试步骤上右键,选择「Add Assertion」,然后找到「Script Assertion」(Groovy脚本断言)选项,点击添加即可。

  • 第二步:编写Groovy脚本逻辑
    脚本核心思路是解析响应JSON,遍历planList数组统计含planCode的元素数量,再和预期值做断言对比。这里给你适配好的脚本:

    // 获取当前测试步骤的响应文本
    def responseContent = context.response
    // 用Groovy自带工具解析JSON
    def jsonParser = new groovy.json.JsonSlurper()
    def parsedJson = jsonParser.parseText(responseContent)
    
    // 统计planCode的出现次数:遍历planList,判断每个对象是否包含planCode键
    def planCodeTotal = parsedJson.planList.count { it.containsKey('planCode') }
    
    // 设置你预期的次数,比如你的示例里是3次,就写3
    def expectedNumber = 3
    
    // 执行断言,不符则抛出提示信息
    assert planCodeTotal == expectedNumber : "planCode出现次数不匹配,预期${expectedNumber}次,实际${planCodeTotal}次"
    

    简单解释下:

    • context.response能直接拿到当前步骤的响应内容;
    • JsonSlurper是Groovy内置的JSON解析工具,把字符串转成可操作的对象;
    • count { it.containsKey('planCode') }会逐个检查planList里的对象,统计包含planCode键的元素数量;
    • 最后用assert做断言,不满足条件时会显示自定义的错误提示,方便排查。
  • 第三步:调整预期值
    根据你的实际需求修改expectedNumber的值就行,比如预期是2次就改成2。

  • 额外扩展:统计特定planCode值的出现次数
    如果你需要统计某个具体planCode(比如"xx")的出现次数,只需修改统计逻辑:

    // 统计planCode为"xx"的出现次数
    def specificPlanCount = parsedJson.planList.count { it.planCode == 'xx' }
    def expectedSpecific = 1
    assert specificPlanCount == expectedSpecific : "planCode为xx的出现次数不匹配,预期${expectedSpecific}次,实际${specificPlanCount}次"
    

运行测试步骤后,如果断言通过就不会有错误提示;要是实际次数和预期不符,SoapUI会在断言结果里显示我们设置的错误信息,一目了然。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:50:48