The success or failure of any application development project almost invariably comes down to performance. No matter how useful or cool an application may be, if it takes too long to run end users won’t adopt it. Months, sometimes even years, of coding can easily wind up being all for naught.
Because of that fundamental fact of application development life, we at Mansystems obsess about performance. We like to make sure things are done right the first time every time. That is why as a Mendix Performance Specialist I get especially excited about things like the load testing tools developed by the Application Performance Management (APM) research and development team.
In this blog post, we’re going to cover the critical role load testing plays in ensuring a great application experience is both attained and maintained.
What is Performance Testing?
Performance testing is important because it provides insights into how an application behaves and performs. Performance testing enables development teams to test response times, processing times, and throughput rates. Just as importantly, performance testing plays a critical role in helping development teams to determine if the infrastructure capacity available is sufficient to achieve a performance goal.
Naturally, there are different types of performance tests spanning different aspect of the application. In this blog post, however, we’re going to focus specifically on load testing.
What is Load Testing?
Load testing is the process of placing additional demands on an application, system, or device and measuring its response. It involves increasing the load on the system until it reaches a limit consistent with what would be expected should that application be deployed in a production environment. As the load on the application increases, load testing tools provide sights into resource usage, thresholds, and overall throughput.
To automate the process of generating those loads, researchers at Mansystems developed a load generation bot specifically designed for low-code applications developed using the Mendix platform. That tool not only tracks protocol messages that are sent between the browser and the Mendix runtime, it also feeds data into the Mendix APM platform.
Now, development teams can precisely control how loads are generated and even record and playback load scripts. Everything from Mendix login security and Mendix 7 object hashes to mapping Mendix identifiers from responses to requests is all automated. Load tests can be based on either user count or throughput. During the test, we can interactively change the number of users or the requested throughput. A timer links multiple protocol messages to the links that users click on to keep track of user experiences. Timers are created automatically via the same agent running in the browser that starts the recording.
Best of all, because we use the same agent everywhere, we can use our multi-tenant cloud manager to connect to bots running on-premises or in the cloud. The agent includes our bot software to allow development teams to record and playback in their own modeler for development and testing purposes without ever having to configure a bot themselves.
Beyond Load TestingLoad testing often gets mixed up with endurance, volume, scalability, spike or stress testing. While many forms of testing incorporate load testing, development teams should have a distinct process for different types of testing scenarios, including:
- Endurance testing relies on load testing tools that are run for an extended time period to identify, for example, memory leaks.
- Volume testing focuses on large volumes of data.
- Scalability testing measures the ability of the application to scale up or scale out as different functions are invoked.
- Spike testing relies on load testing to verify application stability as system activity and the number of concurrent users increases over time.
- Stress testing simulates the behavior of the application beyond peak load and normal conditions.
What Can You Expect from Us?
In this blog post, we showed the importance of performance, the different types of performance testing, and how we can do load testing with Mendix Apps. Development teams, of course, can always rely on a Mansystems Performance Specialist to conduct any type of performance test they want. We naturally subscribe to agile testing methodologies to ensure quality, repeatability, and to minimize costs, accurate estimates of time spent testing. In the meantime, remember to test early and often!