Karate API问题:responseTime无法传递至调用Feature
问题原因与解决办法
- 核心问题:用
call调用Feature时,默认返回的结果对象只封装了response和responseStatus,responseTime是独立的场景变量,不会自动被包含到返回的resp映射里,所以没法直接通过resp.responseTime或resp.response.responseTime读取。 - 解决方法一(推荐):修改A.feature主动返回responseTime
在A.feature的最后加上返回逻辑,把responseTime打包进结果:
之后在* def returnResult = { response: response, responseStatus: responseStatus, responseTime: responseTime } * return returnResultB.feature里调用,就能直接通过resp.responseTime拿到响应时间,和resp.responseStatus的调用方式完全一致。 - 解决方法二:直接在B.feature中使用顶级变量
不需要修改A.feature,调用之后直接用场景级的responseTime变量,但要注意如果多次调用A.feature,这个变量会被后续调用的结果覆盖:* call read('file:A.feature') arguments * print "当前响应时间:", responseTime
内容的提问来源于stack exchange,提问作者I. Tennant
相关产品推荐
相关产品推荐

