在使用空手道与Ghatling执行负载测试时,是否有任何方法存储API响应到文件



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

我已经尝试了下面的过程:

在测试中。特性文件:

  • def createBooking = call read('createBooking')

  • def updateBooking = call read('updateBooking') {bookingid: createbook .response. bookingid}

我试图一次应用1000个斜坡用户。

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

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

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

1.0 RC版本对跨特性文件传递数据有更好的支持,请参考:https://github.com/intuit/karate/issues/1368

那么在scala代码中,你应该能够这样做:

session("myVarName").as[String]

要获得RC版本,请参见:https://github.com/intuit/karate/wiki/1.0-upgrade-guide

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

绝对不建议在性能测试期间写入文件。如果你真的想这么做,请阅读:https://stackoverflow.com/a/54593057/143475

最后,如果你仍然卡住,请按照这里的说明:https://github.com/intuit/karate/wiki/How-to-Submit-an-Issue