Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
1f5a54c
disable: Volaris team modules due to mogration to Eureka
TolKing1 Apr 11, 2025
b301b42
disable: Volaris team modules due to migration to Eureka
TolKing1 Apr 11, 2025
d7b588a
Merge remote-tracking branch 'origin/FAT-19626-clean-up-volaris-maste…
TolKing1 Apr 11, 2025
641a14c
Merge pull request #1838 from folio-org/FAT-19626-clean-up-volaris-ma…
TolKing1 Apr 11, 2025
f5a0275
disable: Vega team modules due to migration to Eureka
TolKing1 Apr 11, 2025
c69807c
Merge branch 'master' into FAT-19643-Vega-cleanUP-master
TolKing1 Apr 11, 2025
e7c076c
Merge pull request #1839 from folio-org/FAT-19643-Vega-cleanUP-master
TolKing1 Apr 11, 2025
36608cf
FAT-18346 - Folijet-clean-up-master (#1845)
TymofiiTurtsevych Apr 14, 2025
68efbcd
FAT-19580 Fixed enhancement
obozhko-folio Apr 14, 2025
7d2cb2b
FAT-18502 - Corsair-clean-up-master (#1847)
TymofiiTurtsevych Apr 14, 2025
7d547d8
Merge branch 'master' into FAT-19580
obozhko-folio Apr 14, 2025
d6c1e1d
Merge pull request #1846 from folio-org/FAT-19580
obozhko-folio Apr 14, 2025
03927cd
[MODORDERS-1266] - Implement Karate tests for Title unlinking from pa…
azizbekxm Apr 15, 2025
7602791
Bama & Thor - clean-up-master (#1850)
TymofiiTurtsevych Apr 15, 2025
caf90fd
disable: Dreamliner team module due to migration to Eureka
TolKing1 Apr 15, 2025
d3db161
Merge pull request #1851 from folio-org/FAT-18506-cleanup-master
TolKing1 Apr 15, 2025
471f6a8
[MODORDERS-1269] Single po line schema, no sub-object (#1842)
damien-git Apr 22, 2025
cc549ca
Merge remote-tracking branch 'origin/master'
khandramai Jul 30, 2025
e6f30f3
Merge remote-tracking branch 'origin/master'
khandramai Nov 19, 2025
9e3dc64
Merge remote-tracking branch 'origin/master'
khandramai Nov 20, 2025
845ccdf
FAT-22753 - PoC: Gatling pipeline integration
khandramai Dec 9, 2025
56f06c5
FAT-22753 - PoC: Gatling pipeline integration
khandramai Dec 9, 2025
497a1e4
Merge remote-tracking branch 'origin/master' into FAT-22753
khandramai Dec 9, 2025
6ac86da
FAT-22753 - PoC: Gatling pipeline integration
khandramai Jan 9, 2026
910a610
Increase POST /bulk-operations/upload max time
khandramai Jan 20, 2026
0473ac6
Merge branch 'master' into FAT-22753
khandramai Jan 20, 2026
7eba7cd
Merge branch 'master' into FAT-22753
khandramai Apr 14, 2026
f4aa215
Merge branch 'master' into FAT-22753
khandramai Apr 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
package org.folio;

import com.intuit.karate.gatling.javaapi.KarateProtocolBuilder;
import io.gatling.javaapi.core.ScenarioBuilder;
import io.gatling.javaapi.core.Simulation;

import java.time.Duration;
import java.util.concurrent.ThreadLocalRandom;

import static com.intuit.karate.gatling.javaapi.KarateDsl.*;
import static io.gatling.javaapi.core.CoreDsl.*;

public class BulkOperationsSimulation extends Simulation {

private static final String MOD_BULK_OPERATIONS_JUNIT =
"classpath:firebird/mod-bulk-operations/mod-bulk-operations-junit.feature";
private static final String INIT_DATA_FOR_USERS =
"classpath:firebird/mod-bulk-operations/features/init-data/init-data-for-users-gatling.feature";
private static final String USERS_POSITIVE_SCENARIOS =
"classpath:firebird/mod-bulk-operations/features/users-positive-scenarios.feature";
private static final String DESTROY_DATA =
"classpath:common/destroy-data.feature";

private static final int CREATE_ITERATIONS =
Integer.parseInt(System.getProperty("simulation.iterations", "3"));
private static final int CREATE_USERS =
Integer.parseInt(System.getProperty("simulation.users", "3"));
private static final int RAMP_UP_DURATION =
Integer.parseInt(System.getProperty("simulation.ramp.seconds", "5"));
private static final String KARATE_ENV =
System.getProperty("karate.env", "local");

public static final double SUCCESSFUL_REQUESTS_RATE = 99.0;

private String generateTenantId() {
String constantString = "testtenant";
long randomLong = ThreadLocalRandom.current().nextLong(Long.MAX_VALUE);
return constantString + randomLong;
}

private String initTenant() {
String tenantId = generateTenantId();
System.setProperty("testTenant", tenantId);
System.out.printf("Running BulkOperationsUsersFlowSimulation with karate.env=%s, testTenant=%s%n",
KARATE_ENV, tenantId);
return tenantId;
}

public BulkOperationsSimulation() {

KarateProtocolBuilder protocol = karateProtocol(
uri("/_/proxy/tenants/{tenant}").nil(),
uri("/_/proxy/tenants/{tenant}/modules").nil(),
uri("/_/proxy/tenants/{tenant}/install").nil(),
uri("/bulk-operations/upload").nil(),
uri("/bulk-operations/{operationId}/start").nil(),
uri("/bulk-operations/{operationId}/download").nil(),
uri("/bulk-operations/{operationId}/preview").nil(),
uri("/bulk-operations/{operationId}/content-update").nil(),
uri("/bulk-operations/{operationId}/errors").nil()
);

String tenantId = initTenant();

protocol.runner
.systemProperty("testTenant", tenantId)
.systemProperty("karate.env", KARATE_ENV);

ScenarioBuilder before = scenario("00 - Setup modules and dependencies")
.group("00")
.on(exec(karateFeature(MOD_BULK_OPERATIONS_JUNIT)));

ScenarioBuilder init = scenario("01 - Initialize data for users")
.group("01")
.on(exec(karateFeature(INIT_DATA_FOR_USERS)));

ScenarioBuilder create = scenario("02 - Create bulk operations - positive users flow")
.group("02")
.on(repeat(CREATE_ITERATIONS)
.on(exec(karateFeature(USERS_POSITIVE_SCENARIOS)))
);

ScenarioBuilder after = scenario("99 - Destroy data and cleanup")
.group("99")
.on(exec(karateFeature(DESTROY_DATA)));

setUp(
before.injectOpen(atOnceUsers(1))
.andThen(
init.injectOpen(
nothingFor(Duration.ofSeconds(RAMP_UP_DURATION)),
atOnceUsers(1)
)
)
.andThen(
create.injectOpen(
nothingFor(Duration.ofSeconds(RAMP_UP_DURATION)),
rampUsers(CREATE_USERS).during(Duration.ofSeconds(RAMP_UP_DURATION))
)
)
.andThen(
after.injectOpen(
nothingFor(Duration.ofSeconds(RAMP_UP_DURATION)),
atOnceUsers(1)
)
)
)
.protocols(protocol)
.assertions(
details("02", "POST /bulk-operations/upload").successfulRequests().percent().gt(SUCCESSFUL_REQUESTS_RATE),
details("02", "POST /bulk-operations/upload").responseTime().max().lt(2_000),
details("02", "POST /bulk-operations/{operationId}/content-update").successfulRequests().percent().gt(SUCCESSFUL_REQUESTS_RATE),
details("02", "POST /bulk-operations/{operationId}/content-update").responseTime().max().lt(1_200)
);
}
}

This file was deleted.

2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
<maven.scala.version>4.9.1</maven.scala.version>
<!-- karate 1.5.0 requires scala 2.13.13 and warns about any newer version -->
<scala.version>2.13.13</scala.version>
<maven.gatling.version>4.9.4</maven.gatling.version>
<maven.gatling.version>4.20.8</maven.gatling.version>
<karate.version>1.5.1</karate.version>
<junit.version>5.10.1</junit.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
Expand Down