Skip to content

Commit a89db14

Browse files
author
Ganesh Tiwari
committed
gatling updates - two simulations, run all simulations from mvn, separate scenario class
1 parent b8a97b5 commit a89db14

File tree

9 files changed

+98
-36
lines changed

9 files changed

+98
-36
lines changed

load-tester/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,13 @@
4646
<groupId>io.gatling</groupId>
4747
<artifactId>gatling-maven-plugin</artifactId>
4848
<version>${gatling-maven-plugin.version}</version>
49+
<configuration>
50+
<runMultipleSimulations>true</runMultipleSimulations>
51+
<includes>
52+
<include>gt.simulations.*</include>
53+
</includes>
54+
</configuration>
55+
4956
</plugin>
5057

5158
<plugin>

load-tester/readme.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Run single simulation:
2+
- Use Engine class to run individual simulation
3+
- Use `mvn gatling:test -Dgatling.simulationClass=gt.simulations.THE_SIMULATION_CLASS` to run specified simulation
4+
5+
# Run all simulations
6+
- Use `mvn gatling:test`
7+

load-tester/src/test/resources/gatling.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ gatling {
9292
#warmUpUrl = "https://gatling.io" # The URL to use to warm-up the HTTP stack (blank means disabled)
9393
#enableGA = true # Very light Google Analytics (Gatling and Java version), please support
9494
#pooledConnectionIdleTimeout = 60000 # Timeout in millis for a connection to stay idle in the pool
95-
#requestTimeout = 60000 # Timeout in millis for performing an HTTP request
95+
requestTimeout = 1500 # Timeout in millis for performing an HTTP request
9696
#enableHostnameVerification = false # When set to true, enable hostname verification: SSLEngine.setHttpsEndpointIdentificationAlgorithm("HTTPS")
9797
dns {
9898
#queryTimeout = 5000 # Timeout in millis of each DNS query in millis
Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import gt.simulations.PublicUserSimulation
1+
//import gt.simulations.PublicUserSimulation
2+
23
import io.gatling.app.Gatling
34
import io.gatling.core.config.GatlingPropertiesBuilder
45

@@ -8,7 +9,15 @@ object Engine extends App {
89
.resourcesDirectory(IDEPathHelper.mavenResourcesDirectory.toString)
910
.resultsDirectory(IDEPathHelper.resultsDirectory.toString)
1011
.binariesDirectory(IDEPathHelper.mavenBinariesDirectory.toString)
11-
.simulationClass(classOf[PublicUserSimulation].getName)//
12+
13+
/*
14+
uncomment and put the simulation that you want to run
15+
16+
Or run mvn gatling:test to run all tests
17+
runMultipleSimulations is true
18+
*/
19+
20+
//.simulationClass(classOf[PublicUserSimulation].getName)//
1221

1322
Gatling.fromMap(props.build)
1423
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package gt.scenarios
2+
3+
import io.gatling.core.Predef._
4+
import io.gatling.http.Predef._
5+
import io.gatling.http.request.builder.HttpRequestBuilder
6+
7+
object ArticleScenario {
8+
9+
def readArticle(id: Int): HttpRequestBuilder = {
10+
http("read article #" + id)
11+
.get("/article/read/" + id)
12+
}
13+
14+
//other methods
15+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package gt.scenarios
2+
3+
import gt.Environment
4+
import io.gatling.core.Predef._
5+
import io.gatling.http.Predef._
6+
import io.gatling.http.request.builder.HttpRequestBuilder
7+
8+
object HomePageScenario {
9+
10+
def homePage(): HttpRequestBuilder = {
11+
http("public home page")
12+
.get(Environment.publicHomePage)
13+
}
14+
15+
def openPage(page: Int): HttpRequestBuilder = {
16+
http("open page " + page)
17+
.get("/?size=5&page=" + (page - 1))
18+
}
19+
20+
//other methods
21+
22+
}

load-tester/src/test/scala/gt/simulations/BaseSimulation.scala

Lines changed: 0 additions & 13 deletions
This file was deleted.

load-tester/src/test/scala/gt/simulations/PublicUserSimulation.scala

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,25 @@
11
package gt.simulations
22

33
import gt.Environment
4+
import gt.scenarios.{ArticleScenario, HomePageScenario}
45
import io.gatling.core.Predef._
56
import io.gatling.http.Predef._
6-
import io.gatling.http.request.builder.HttpRequestBuilder
7+
import io.gatling.http.protocol.HttpProtocolBuilder
78

89
import scala.concurrent.duration.DurationInt
910

10-
class PublicUserSimulation extends BaseSimulation {
11+
class PublicUserSimulation extends Simulation {
1112

12-
def openPage(page: Int): HttpRequestBuilder = {
13-
http("open page " + page)
14-
.get("/?size=5&page=" + (page - 1))
15-
}
16-
17-
def readArticle(id: Int): HttpRequestBuilder = {
18-
http("read article #" + id)
19-
.get("/article/read/" + id)
20-
}
13+
val httpConfig: HttpProtocolBuilder = http.baseUrl(Environment.baseUrl)
2114

2215
//scenario
23-
val scn = scenario("Open Public Home Page")
24-
.exec(http("public home page")
25-
.get(Environment.publicHomePage))
26-
.exec(readArticle(68))
27-
.exec(readArticle(67))
28-
.exec(readArticle(66))
29-
.exec(openPage(2))
30-
.exec(openPage(3))
16+
val scn = scenario("open public home page read article and navigate to other pages")
17+
.exec(HomePageScenario.homePage())
18+
.exec(ArticleScenario.readArticle(68))
19+
.exec(ArticleScenario.readArticle(67))
20+
.exec(ArticleScenario.readArticle(66))
21+
.exec(HomePageScenario.openPage(2))
22+
.exec(HomePageScenario.openPage(3))
3123

3224
before {
3325
//data prep
@@ -38,7 +30,7 @@ class PublicUserSimulation extends BaseSimulation {
3830
//load scenario
3931
nothingFor(1 seconds),
4032
atOnceUsers(5),
41-
rampUsers(Environment.maxUsers) during (Environment.rampUpTime)
33+
rampUsers(Environment.maxUsers) during Environment.rampUpTime
4234
).protocols(httpConfig.inferHtmlResources()) // inferHtmlResources will fetch everything on the page (JS, CSS, images etc.)
4335
)
4436

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package gt.simulations
2+
3+
import io.gatling.core.Predef._
4+
import io.gatling.http.Predef._
5+
6+
import scala.concurrent.duration.DurationInt
7+
8+
class TestSimulation extends Simulation {
9+
10+
val httpProtocol = http
11+
.baseUrl("http://computer-database.gatling.io") // Here is the root for all relative URLs
12+
13+
val scn = scenario("Scenario Name")
14+
.exec(http("get req").get("/"))
15+
16+
setUp(
17+
scn.inject(
18+
nothingFor(1.seconds),
19+
atOnceUsers(2),
20+
).protocols(httpProtocol)
21+
)
22+
23+
}

0 commit comments

Comments
 (0)