package com.demo.simulations; import static io.gatling.javaapi.core.CoreDsl.*; import static io.gatling.javaapi.http.HttpDsl.*; import io.gatling.javaapi.core.*; import io.gatling.javaapi.http.*; public class WebSocketEchoSimulation extends Simulation { HttpProtocolBuilder httpProtocol = http .baseUrl("https://socketsbay.com"); // Required by Gatling even if unused ScenarioBuilder scn = scenario("WebSocket Echo Test") .exec( ws("Connect to Echo WS") .connect("wss://socketsbay.com/wss/v2/1/demo/") ) .pause(1) .exec( ws("Send Message") .sendText("Hello WebSocket") .await(10) // 👈 await is chained here .on( ws.checkTextMessage("Check Echo") .check(regex(".*Hello WebSocket.*")) ) ) .pause(1) .exec( ws("Close Connection") .close() ); { setUp( scn.injectOpen(atOnceUsers(1)) ).protocols(httpProtocol); } }