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

Karate框架中如何对比API返回的application/octet-stream格式下载文件

解决方案(均为Karate内置能力,无需调用Java方法)

方案1:将响应字节数组转为字符串比对(更推荐,可读性更高)

用Karate内置的karate.toString()方法直接把二进制响应转成UTF-8字符串,和读取的文本直接比对:

Given path '/download/testing/'+fileId
When method get
Then status 200
And match karate.toString(response) == read('../files/test.txt')

如果你的文本文件用的是非UTF-8编码,可指定编码作为第二个参数,示例:karate.toString(response, 'GBK')

方案2:将读取的文本转为字节数组比对

如果你希望以二进制维度匹配,用内置的karate.toBytes()方法把读取的文本转成字节数组,和响应直接比对:

Given path '/download/testing/'+fileId
When method get
Then status 200
And match response == karate.toBytes(read('../files/test.txt'))

同样支持指定编码,示例:karate.toBytes(read('../files/test.txt'), 'GBK')


调试提示

如果修改后还是匹配失败,可先打印两个值确认内容差异:

* print "响应转字符串结果:", karate.toString(response)
* print "读取文件结果:", read('../files/test.txt')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 12:54:06