我有一个情况 . 我需要向CMDB系统发送一个get请求,并检索 endpoints URI,路径,数据库连接字符串等初始配置作为JSON对象 . CMDB系统将发回一个JSON对象 . 我如何在karate-config.js中实现这一点 . 我应该写一个自定义的javascript函数还是我有任何内置功能?我检查了空手道对象部分,但是,不明白该怎么做 .
我为此写了一些自定义js函数 . 它们在我的系统中独立工作(我的机器上安装了node.js),但在karate-config.js中无效 .
First one
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)
});
Second
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);
});
1 回答
我想你忘了空手道碰巧非常擅长发出HTTP请求:)
您需要做的就是编写一个可重复使用的空手道功能文件,使
GET
到https://reqres.in/api/users/2
. 您可能需要找出所需的任何标头 .现在可以在
karate-config.js
中使用karate.callSingle()
方法来完全按照您的要求进行操作 . 看第31行:https://github.com/intuit/karate/blob/master/karate-demo/src/test/java/karate-config.js#L31