Как получить начальные конфигурации из системы CMDB и передать их в karate-config

У меня ситуация. Мне нужно отправить запрос на получение в систему CMDB и получить начальные конфигурации, такие как URI конечной точки, путь, строку подключения к БД и т. Д., Как объект JSON. Система CMDB отправит обратно объект JSON. Как я могу реализовать это в karate-config.js. Должен ли я написать собственную функцию javascript или у меня есть встроенные возможности? Я проверил раздел предметов карате, но не понял, как это делать.

Для этого я написал несколько пользовательских js-функций. Они работают независимо в моей системе (на моем компьютере установлен node.js), но не будут работать внутри karate-config.js.

Первый

var HttpClient = function () {
    this.get = function (aUrl, aCallback) {
        var XMLHttpRequest = require('xhr2');
        var anHttpRequest = new XMLHttpRequest();
        anHttpRequest.onreadystatechange = function () {
            if (anHttpRequest.readyState == 4 && anHttpRequest.status == 200)
                aCallback(anHttpRequest.responseText);
        }
        anHttpRequest.open("GET", aUrl, true);
        anHttpRequest.send(null);
    }
}


var url = 'https://reqres.in/api/users/2';
var client = new HttpClient();
client.get(url, function (response) {
    var response1 = JSON.parse(response);
    console.log(response1)
});

Второй

var axios = require('axios');
// Make a request for a user with a given ID
axios.get('https://reqres.in/api/users/2').then(function (response) {
  console.log(response)
}).catch(function (error) {
  console.log(error);
});

person Sree    schedule 27.03.2018    source источник


Ответы (1)


Думаю, вы забываете, что Каратэ очень хорошо справляется с HTTP-запросами :)

Все, что вам нужно сделать, это написать повторно используемый файл функций карате, который преобразует GET в https://reqres.in/api/users/2. Возможно, вам потребуется выяснить, какие заголовки нужны.

Существует karate.callSingle() метод, который теперь можно использовать в karate-config.js, чтобы делать именно то, что вы хотите. Посмотрите на строку 31:

https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/karate-config.js#L31

person Peter Thomas    schedule 28.03.2018