Я пытаюсь отправить информацию об объекте karate.info в InfluxDB, но когда я пытаюсь вызвать метод java в afterScenario, он выдает ошибку.
игнорировать: Код содержит только метод вызова соединения.
Код:
* def inFluxDb = Java.type('utility.InfluxDBCall');
* configure afterScenario =
"""
function(){
var info = karate.info;
karate.log('after', info.scenarioType + ':', info.scenarioName);
karate.log('after', info.scenarioType + ':', info.errorMessage);
karate.log('after', info.scenarioType + ':', info.featureDir);
karate.log('after', info.scenarioType + ':', info.featureFileName);
karate.log('after', info.scenarioType + ':', info.scenarioDescription);
inFluxDb.DBConnection("http://localhost:8086", "root", "root");
}
"""
Ошибка:
19:43:52.318 [ForkJoinPool-1-worker-1] INFO com.intuit.karate - after Scenario:
19:43:52.380 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - javascript function call failed: TypeError: inFluxDb.DBConnection is not a function
19:43:52.380 [ForkJoinPool-1-worker-1] ERROR com.intuit.karate - failed function body: function(){
var info = karate.info;
karate.log('after', info.scenarioType + ':', info.scenarioName);
karate.log('after', info.scenarioType + ':', info.errorMessage);
karate.log('after', info.scenarioType + ':', info.featureDir);
karate.log('after', info.scenarioType + ':', info.featureFileName);
karate.log('after', info.scenarioType + ':', info.scenarioDescription);
inFluxDb.DBConnection("http://localhost:8086", "root", "root");
}
используется 'каратэ. call (inFluxDb.DBConnection ("http://localhost: 8086 ", "root", "root")); ' также, но вижу ту же ошибку. Я видел https://github.com/intuit/karate/blob/master/karate-core/src/test/java/com/intuit/karate/core/MandatoryTagHook.java, какие-нибудь мысли о том, как настроить этот класс?
Java используемый класс
public class InfluxDBCall {
private static InfluxDB influxDB;
public void DBConnection(String serverURL, String username, String password) {
influxDB = InfluxDBFactory.connect(serverURL, username, password);
influxDB.enableBatch(BatchOptions.DEFAULTS);
System.out.println("Connection created");
}
public static void writeIntoDB(String Measurement,String featureName, String scenarioName, String status, String error) {
influxDB.write(Point.measurement(Measurement)
.time(System.currentTimeMillis(), TimeUnit.MILLISECONDS)
.tag("projectName","SPSAutomation")
.tag("featureName", featureName.split(".")[0].toString())
.addField("scenarioName", scenarioName)
.addField("status", status)
.addField("Error", error)
.build());
}
public void connectionClose() {
influxDB.close();
System.out.println("Connection closed");
}
}