Karate从0.9.6升级到1.0.1后API调用报http call failed错误
报错原因及修复方案
SAXParseException hr标签未闭合问题
这个报错不指向你编写的业务相关XML文件,属于Karate 1.0.1版本的已知内置问题:
- 1.0.1版本调整了测试报告的底层解析逻辑,要求报告内容严格符合XHTML规范,但内置的默认报告模板里仍然沿用了0.9.6版本的宽松HTML写法,存在
<hr>未写闭合标记<hr/>的问题,解析报告内容时就会抛出这个XML格式校验错误。 - 修复方法:你可以在项目测试资源目录下自定义Karate报告模板,把模板中所有未闭合的
<hr>、<br>、<img>这类单标签都补全自闭合标记(即改为<hr/>、<br/>、<img/>格式),替换默认模板即可消除该报错。
GET请求超时报错问题
这个报错和报告解析错误没有直接关联,是两个独立问题,属于版本升级后的默认配置变更导致:
- Karate 0.9.6版本默认的HTTP请求读取超时阈值为3000毫秒,1.0.1版本把默认值下调到了2000毫秒,你的接口响应耗时2255毫秒已经超出阈值,所以触发超时报错。
- 修复方法:可以在
karate-config.js中全局配置更长的超时时间,配置代码如下:
karate.configure('connectTimeout', 5000); karate.configure('readTimeout', 5000);
如果仅单个场景需要调整超时,也可以在对应feature文件中单独添加配置:
* configure readTimeout = 5000
内容的提问来源于stack exchange,提问作者user12806062
相关产品推荐
相关产品推荐

