Я прочитал ваш вопрос несколько раз, и мне жаль, что я вообще не понимаю, что вы пытаетесь сделать. Также я думаю, что вы не поняли каратэ должным образом. Поэтому, пожалуйста, выслушайте мое предложение и примите его в правильном духе.
Я думаю, вы пытаетесь не обязательно усложнить свой тест. Мое искреннее предложение - пожалуйста, не пытайтесь для такого крайнего повторного использования. Я заметил, что когда команды пытаются создать супер-универсальный тестовый скрипт многократного использования - он просто усложняет ситуацию и становится трудным в обслуживании.
Поэтому, пожалуйста, используйте различные файлы функций для JSON и XML. Для каждого теста вы можете иметь несколько сценариев. Теперь данные сценария могут быть одинаковыми для JSON и XML, и вы можете прочитать общий файл JSON. Обратитесь к этому примеру, чтобы узнать, как создать XML из JSON: https://github.com/intuit/karate/blob/master/karate-junit4/src/test/java/com/intuit/karate/junit4/xml/xml.feature
Если вы все еще настаиваете на использовании JSON и XML в общей функции, взгляните на этот пример: https://github.com/intuit/karate/tree/master/karate-demo/src/test/java/demo/loopcall
Выше также приведен пример вызова функции JavaScript. Также, пожалуйста, внимательно прочитайте документы.