Код: Выделить всё
import io.gatling.javaapi.core.ScenarioBuilder;
import io.gatling.javaapi.core.Simulation;
import io.gatling.javaapi.http.HttpProtocolBuilder;
import lombok.extern.slf4j.Slf4j;
import java.util.concurrent.atomic.AtomicReference;
import static io.gatling.javaapi.core.CoreDsl.*;
import static io.gatling.javaapi.http.HttpDsl.*;
@Slf4j
public class DebugSimulation extends Simulation {
private static final String BASE_URL_DEV = "https://aml-ar-reporting.apps.stl.bnw-dev-pas.mycompany.int";
private static final String BASE_URL_STAGE = "https://dtl.mycompanyconnect.com/";
private static final String ENV = System.getProperty("env");
private static final String BASE_URL = ENV.equals("dev") ? BASE_URL_DEV : BASE_URL_STAGE;
private static final String API_PATH = ENV.equals("dev") ? "" : "aml-account-risk/api";
private static final AtomicReference authCookieRef = new AtomicReference();
private final HttpProtocolBuilder httpProtocol = http
.disableFollowRedirect()
.baseUrl(BASE_URL)
.acceptHeader("application/json")
.header("X-AmlArReporting-CID", "125283")
.header("X-AmlArReporting-ICAs", "5655,9529,14516,15662,20929,31627,31931");
private final ScenarioBuilder scn = scenario("MyScenario")
.exec(session -> {
if (authCookieRef.get() != null) {
System.out.println("User does not need cookie");
return session.set("authCookie", authCookieRef.get());
}
else {
System.out.println("User needs cookie");
}
return session.set("needLogin", true);
})
.doIf(session -> session.contains("needLogin")).then(
exec(http("Login")
.post("/heracles/login")
.header("Content-Type", "application/x-www-form-urlencoded")
.formParam("username", "aml_ar_stg")
.formParam("password", "1234")
.formParam("login-form-type", "token")
.check(status().is(302), header("Set-Cookie").saveAs("authCookie")))
.exec(session -> {
String authCookie = session.getString("authCookie").split(";")[0];
authCookieRef.set("auth_token=" + authCookie);
return session.set("authCookie", authCookieRef.get());
})
)
.exec(http("LastRefreshDate")
.get(API_PATH + "/notifications/last-refresh-date")
.header("cookie", "#{authCookie}")
.check(status().is(200))
);
{
setUp(
scn.injectOpen(atOnceUsers(2))
).protocols(httpProtocol);
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... ion-for-ot