Karate does not follow cucumber way. It has invented its own language, so we have 3 syntax's in one project: java, js and karate. That's insane. Java is almost excluded from here. It leads to tons of copy-paste. Code support becomes very time consuming and expensive because .feature files are not readable and it's hard to navigate through them. The only purpose of karate approach - is to make demos. Yeah, it's just for marketing and super-simple tests in one or two steps. It even doesn't have release version yet. I've tried it and don't recommend it - save your time and money.