Karate 在使用空手道执行加载测试时,有没有办法将API响应存储到文件中

Karate 在使用空手道执行加载测试时,有没有办法将API响应存储到文件中,karate,Karate,我正在进行空手道加特林负荷测试。根据我的要求,我需要创建预订并使用响应中的bookingId,并需要将其传递给更新/取消预订请求 我尝试了以下过程: 在test.feature文件中: def createBooking=调用读取('createBooking') def updateBooking=调用read('updateBooking'){bookingid:createBooking.response.bookingid} 我试图一次应用1000个ramp用户 在模拟文件中:

我正在进行空手道加特林负荷测试。根据我的要求,我需要创建预订并使用响应中的bookingId,并需要将其传递给更新/取消预订请求

我尝试了以下过程:

在test.feature文件中:

  • def createBooking=调用读取('createBooking')

  • def updateBooking=调用read('updateBooking'){bookingid:createBooking.response.bookingid}

我试图一次应用1000个ramp用户

在模拟文件中: val testReq=scenario(“testing”).exec(karateFeature(“classpath:test.feature”))

设置( testReq.inject(rampUsers(1000)。在(1秒)期间) )


此过程无法为我提供所需的吞吐量。我无法找到瓶颈是否有空手道或API服务器的问题。在每个场景中,我们都有创建和更新预订,因此我试图在负载测试期间从响应中捕获所有1000个预订ID,并将其传递给更新/取消预订。我会将其保存到一个文件中,并利用预订响应更新预订。由于我是空手道新手,有谁能建议一种将所有负载测试API响应存储到文件中的方法吗?

1.0 RC版本更好地支持跨功能文件传递数据,请参阅以下内容:

因此,在scala代码中,您应该能够执行以下操作:

session("myVarName").as[String]
要获取RC版本,请参阅:

也就是说,请注意,让复杂的数据驱动测试作为性能测试工作并不容易,所以是的,您需要做一些研究。我的建议是阅读并理解本答案第一个链接中的信息

在性能测试期间,绝对不建议写入文件。如果你真的想走这条路,请阅读以下内容:


最后,如果您仍然被卡住,请按照此处的说明操作:

对不起,您问了很多问题,这太令人困惑了。我将尝试回答这个问题,但是,我已经经历了以上所有的解决方案,我们是否能够从功能文件捕获到对Gatling模拟的响应?我正在使用空手道0.9.6和加特林3.0.2。我发现了一个对我有用的承诺:但要在我的maven项目中实现这一点,我必须改变我的依赖关系吗?@Dilleswar请阅读以下内容:-这需要研究,耐心等待。否则,假设不支持此功能,并允许使用2021年2月9日发布的其他解决方案0.9.9.RC4版本。似乎1.0 RC尚未发布。我可以在0.9.9.RC4中使用session(“myVarName”).as[String]将空手道变量提取到gatling simulation吗?@Dilleswar答案是肯定的