Hi,
I am trying to feed sql query to scenario. but it gives the error -
Caused by: java.lang.NoSuchMethodError: ‘boolean io.gatling.core.config.SocketConfiguration.soReuseAddress()’
My code -
package org.example;
//import static io.gatling.core.structure.ScenarioBuilder.;
import io.gatling.jdbc.Predef.;
import io.gatling.http.Predef.*;
import io.gatling.http.request.builder.HttpRequestBuilder;
import io.gatling.javaapi.core.FeederBuilder;
import io.gatling.javaapi.core.ScenarioBuilder;
import io.gatling.javaapi.core.Simulation;
import io.gatling.javaapi.http.HttpProtocolBuilder;
import io.gatling.javaapi.core.Session;
import io.gatling.javaapi.http.HttpRequestActionBuilder;
import scala.collection.IndexedSeq;
import java.sql.*;
import java.time.Duration;
//import static gatling.test.example.simulation.PerfTestConfig.;
import static io.gatling.javaapi.core.CoreDsl.;
import static io.gatling.javaapi.http.HttpDsl.http;
import static io.gatling.javaapi.http.HttpDsl.status;
import java.util.*;
import java.util.function.Function;
import java.util.function.Supplier;
import java.util.stream.Stream;
public class DemoSimulation extends Simulation {
HttpProtocolBuilder httpProtocol = http.baseUrl("URL")
.header("Content-Type", "text/plain")
.header("Accept-Encoding", "gzip")
.check(status().is(200));
public List<Map<String, Object>> run() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("JDBCQUERY", "UNAME", "PWD");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SQL");
List<Map<String, Object>> list = new ArrayList<>();
while (rs.next()) {
ResultSetMetaData mt = rs.getMetaData();
int count = mt.getColumnCount();
Map<String, Object> row = new HashMap<>();
for (int i = 1; i <= count; i++) {
String cname = mt.getColumnName(i);
Object cvalue = rs.getObject(i);
row.put(cname, cvalue);
}
list.add(row);
rs.close();
con.close();
return list;
}
} catch (SQLException | ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
Iterator<Map<String, Object>> fr = run().iterator();
ScenarioBuilder scn = scenario("Root end point calls")
.feed(fr)
.exec(http("ENDPOINT").post("/").body(StringBody("REQPAYLOAD")));
{ setUp(scn.injectOpen(constantUsersPerSec(4).during(Duration.ofSeconds(1))))
.protocols(httpProtocol)
.assertions(global().responseTime().percentile3().lt(15),
global().successfulRequests().percent().gt(95.0))
;
}
}