Hi,
my team is very interested in https://github.com/intuit/karate/tree/develop/karate-gatling
However, the README says that the project is "on hold" and looking for contributions.
We would like to better understand what "on hold" means. Obviously, no development planned, but we are unsure if the project is considered usable for now?
Also, are there issues for the contributions that are looked for?
Thanks
Michael
(apologies for opening an issue, I did not see another apparent way to ask questions)
@michaelmarth hey this is fine, I appreciate you opened an issue and we can discuss transparently about this. and have others join in. it is also good to gauge how much interest there is in getting this done so that we can re-prioritize
there have been a couple reports that there is still some work to be done:
1) https://github.com/ptrthomas/karate-gatling-demo/pull/1
2) https://twitter.com/natxotron/status/1004081557701824512
working on this is actually really hard and needs some understanding of Gatling internals and Scala.
the current karate-gatling approach is based on Karate's Apache HTTP client and I have a hypothesis that everything has to be async for Gatling to work correctly. Gatling by default uses an HTTP client based on Netty. I think the correct solution is to re-use (and hook into) that from Karate which needs a little more work.
the other option is to write a Netty based HTTP client for Karate from scratch, which I am considering because it may just be easier than having to understand Gatling internals.
Hi,
also my team is very interested in https://github.com/intuit/karate/tree/develop/karate-gatling.
Thanks,
Giovanni
I've really enjoyed working with karate and this feature would lower the bar for writing load testing for our services. Let me know if there is anything I can do to help push this forward
@matthewmcgarvey thanks ! and apologies I never got around to looking into the JMeter script you contributed. the current plan is I'll release 0.8.0 within a day or two without Gatling fixed. because its been a while and a lot of fixes have piled up.
then I plan to look at the Gatling stuff in detail.
if anyone has Scala experience would be great to get some help on this file: https://github.com/intuit/karate/blob/develop/karate-gatling/src/main/scala/com/intuit/karate/gatling/KarateAction.scala
what I was planning to do next is change line 95 to use a new actor instance each time instead of using the same one (inited on line 25)
@matthewmcgarvey I made one change and ran your CatsKarateJmeterComparison and it ran in 19 seconds with a TPS that seemed to be ~35
by any chance would you be able to build from source and try this out ? I want to avoid creating too many RC versions
do let me know !
@ptrthomas I'm seeing 18 seconds and ~26 requests/sec. That's drastically better! Good job!
I was worried that I had just configured gatling incorrectly
@ptrthomas After testing this out in the original project I was working with, everything still looks good (setting the path formats was a huge help with the console output!). The only thing I see is a large amount of timeouts after 5000 milliseconds. This could be my fault for not knowing gatling configuration but I don't see any timeout settings that have that number referencing the default configuration, they all seem to be 60000 milliseconds. Is this your configuration coming through or am I not configuring correctly?
@matthewmcgarvey thanks for your help. best news I've had all week :)
are these clearly HTTP timeouts or does the log say something about "akka" or "actors". Karate's default HTTP connect and read timeouts are 30 sec. I see a couple of 5000-s in the gatling config for the actor system and DNS resolution. it may be worth adding this file to the classpath (or wherever gatling expects it), changing these and seeing if that has any effect
if you can replicate this using a karate mock so that I can see it - that would be awesome of course.
but great ! I'm thinking of releasing this within a week anyway - to get more folks to use it and provide feedback.
released 0.8.0
Thanks for releasing . We were also looking for this feature
for all those watching this ticket - there was a bug in the 0.8.0 karate-gatling (see #460) which has been fixed and we made a release 0.8.0.1
if you are using karate-gatling you should upgrade - else remaining on 0.8.0 is fine