Each load test has its ownīuild configuration where each load test parameter has a corresponding We run load tests on a dedicated TeamCity build server agent that has all the right The test can then be run multiple times with different parameters without changing code all the time. toLong ( ) val traffic = constantUsersPerSec (usersPerSecond ). toDouble ( ) val runTimeMinutes = System. These assertions can be expressed as follows: The response time of all requests is less than 1 second.The total number of requests is at least 1000.AssertionsĪfter a load test has run Gatling can verify that traffic statistics match certain That specifies, for example, the base URLs to use and the authentication mechanism. Users that arrive at a rate of 4 users per second during one minute. In between the user actions are executed by virtual One testUser executes the setUpFixture and tearDown scenarios. The response time of eachĬlass IssuingLoadTest : Simulation ( ) The test should check that the Issuing Service can handle at least 1000 requests per second. Our test will perform a typical user interaction with the Issuing REST API: Issuing load testĪs an example, we'll create a load test for the TapConnect Issuing Service that handles REST calls related to travel The Issuing API uses REST while the Validation API is based on WebSockets. The Gatling DSL supports both REST and WebSockets, making it a good fit for load testing the TapConnect APIs. ![]() Since version 3.7 Gatling offers a Java version of its DSL thatĬan also be used in Kotlin, so we could write our load tests in Kotlin too. The TapConnect backend is entirely written in Kotlin. Users (how many users there are over time). ![]() In a DSL that defines the scenarios of virtual users (the actions they perform) and the setup of those virtual A Gatling load test (called a "simulation") is written Gatling is a load test tool based on code. We validated the real-world performance of TapConnect with Gatling. Handle 43,000 validators that together send 4,300,000 offline decisions within 2 hours, representing the "catchup" ofĪll validators in a country like The Netherlands after a full day of downtime (like a.Handle 3,400 validators that scan 25 barcodes per minute each, representing a very busy day in a city the size of.Validate a barcode within 500 milliseconds.That performs the online validation of barcode tickets has more demanding requirements: Perform at least 1000 operations per minute.That creates tickets and barcodes needs to: The final decision of the validator is always sent to TapConnect. When the responseĪrrives in time the online decision is followed, otherwise the validator falls back to an offline decision based on theĭata encoded in the barcode itself. Quickly detect fraud with copied barcodes and enables new product types like multi-ride tickets.Ī validator waits at most 500 milliseconds for a response from TapConnect. When a validator has scanned a barcode it asks TapConnect if the ticket is valid. Issuing and validation of barcode tickets. ![]() TapConnect provides many features for public transport operators, such as a user interface for customer service,Īn app for inspecting barcodes, financial reports, real-time dashboards etc. Customers obtain barcode tickets via sales channels likeĪnd show these barcodes to validators - the devices which validate tickets - to access public transport. Transport operators use TapConnect to define travel products, like a 1 hour card or a ticket from station A to stationī. We validated the performance requirements of TapConnect with Gatling, a popular load test tool. TapConnect is a barcode ticketing solution for public transport developed by Ximedes.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |