About the Course

Get a brief introduction to what you’ll learn in this course and what are the prerequisites.

Welcome to the course

Welcome to Learn Performance Test Automation: Gatling, Lighthouse, Jenkins! This course contains all the required topics and details needed to learn automated performance testing. It will also help you prepare for quality assurance interviews.

This course teaches the various aspects of performance and testing that are essential for quality software development in the modern era.

We will be using Gatling, Puppeteer, and Lighthouse tools in this course for automating load, stress, web page performance, and network throttling.

Intended audience

This course is designed for test engineers and developers who want to learn performance testing or start their journey into the world of performance testing and automation. It is designed for both beginners and intermediate level developers.

Prerequisites

You don’t need any previous knowledge of test automation, but you should have basic knowledge of programming in any language. If you are new to programming, we suggest you go through those basics first.

Sample Simulation

Press the RUN button and see the output of the code given below!

import io.gatling.core.Predef._
import io.gatling.http.Predef._
import scala.concurrent.duration._
class SampleSimulation extends Simulation {
val protocols = http
.disableCaching
.disableWarmUp
.baseUrl("http://localhost:8080")
.wsBaseUrl("ws://localhost:8080")
.wsMaxReconnects(3)
val scn = scenario("sample scenario")
.exec(http("sample get request")
.get("/api/users/1")
.check(
status.is(200),
jsonPath("$.data.id").ofType[Int].is(1),
jsonPath("$.data.first_name").saveAs("name")
)
)
.pause(2 seconds)
.exec(session => session.set("message", "Hello " + session("name").as[String]))
.exec(ws("connect").connect("/").onConnected(
exec(ws("send message")
.sendText(session => session("message").as[String])
.await(5 seconds)(
ws.checkTextMessage("check response")
.check(
regex(session => session("message").as[String])
)
))
.exec(ws("close client").close)
))
setUp(scn.inject(atOnceUsers(1))).protocols(protocols)
}

Don’t execute all of the codes in parallel. Try to run the next code after the execution of the previous code completes else you might see execution timeout error.

The above code will be explained in the upcoming parts of the course. You will be able to execute and practice with the code throughout the course.

Learning outcomes of the course

  • You will understand the basics of performance testing and automation.

  • You will learn about Gatling, its features, and simulate some basic load and stress tests.

  • Simulate integration, stress, and distribute load tests using Gatling. Understand and automate the web page performance metrics.

  • Simulate network throttling for your application.

  • Download a sample framework for further customization for your learning and project needs.

  • Setup and create a CI pipeline for your performance tests.

svg viewer