harshit
September 11, 2023, 10:53am
1
I am running the tests using mvn gatling:test
But I am not able to log the message using logger.info
Here is my logback-test.xml file
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%-5level] %logger{15} - %msg%n%rEx</pattern>
</encoder>
<immediateFlush>false</immediateFlush>
</appender>
<!-- uncomment and set to DEBUG to log all failing HTTP requests -->
<logger name="io.gatling.http.engine.response" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
</logger>
<!-- uncomment and set to TRACE to log all HTTP requests -->
<!-- <logger name="io.gatling.http.engine.response" level="TRACE" additivity="false">-->
<!-- <appender-ref ref="CONSOLE"/>-->
<!-- </logger>-->
<logger name="io.gatling.http.ahc" level="TRACE" />
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
This is where I have logged the info message
def getAuthToken() =
exec(
http("POST OAuth Req")
.get("Our URL")
.headers(authorization2)
.check(status.in(200, 401))
.check(status.saveAs("statusCode"))
.check(bodyString.saveAs("access"))
)
.exec(session => {
val statusCode = session("statusCode").as[Int]
if (statusCode == 401) {
// println("Received 401 Unauthorized error")
logger.info("This is an info message.")
}
token = session("access").as[String]
session
})
Several things
<logger name="io.gatling.http.ahc" level="TRACE" />
This was for Gatling 2. Please use the correct loggers, see https://github.com/gatling/gatling/blob/main/gatling-core/src/main/resources/logback.dummy#L11-L19
logger.info("This is an info message.")
Is this logger an slf4j
one? If so, the only reason for it to not get displayed in that statusCode
is not 401
.
harshit
September 11, 2023, 11:09am
3
Thanks I updated it but still info message is not getting displayed. I even removed the if check of status code with 401
def getAuthToken() =
exec(
http("POST OAuth Req")
.get("our url")
.headers(authorization2)
.check(status.in(200, 401))
.check(status.saveAs("statusCode"))
.check(bodyString.saveAs("access"))
)
.exec(session => {
val statusCode = session("statusCode").as[Int]
logger.info("This is an info message.")
token = session("access").as[String]
session
})
Some more info, I used
import org.slf4j.LoggerFactory
Simulation file:
class expensesSimulation extends Simulation {
val expensesScenario = scenario("Expenses - Scenario")
.during(Configuration.duration) {
exitBlockOnFail(
group ("load-test") {
exec(
pace(Configuration.paceFrom,Configuration.paceTo),
feed(expenseIds), feed(expenseAttendeeIds)
.exec(
expensesChain.getAuthToken()
)
)
}
)
}
val sleepDuration = Configuration.warmupDuration + Configuration.ramp + Configuration.ramp
setUp(
expensesScenario.inject(nothingFor(sleepDuration seconds),rampUsers(Configuration.users) during(Configuration.ramp seconds)))
}
sbrevet
September 11, 2023, 11:26am
4
Hi @harshit ,
Where is your logback-test.xml
file located? I guess in src/test/resources
, isn’t it?
Did you try a mvn clean
after your modification and retry the mvn gatling:test
?
Did you try renaming the file to logback.xml
?
Cheers!
exitBlockOnFail(
Pretty sure that a request fails before the virtual user can reach the place where you have to log, causing it to immediately exit and never reach this point.
harshit
September 11, 2023, 1:29pm
6
I changed the file name to logback.xml
The file is located at src/test/performance/resources
Is there a way I can change the default path?
Doh, this is a very bad idea. Why not stick to the standard convention instead of looking for trouble?
system
Closed
October 11, 2023, 1:33pm
8
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.