Download the slides: Load Testing Your Applications
Gonçalo Marcos
Architect at Mendix

Gonçalo is an Architect with the Mendix UK Expert Services team. He has a deep technical background, as well as experience in low code and agile. His focus is on always finding the best way to help customers and partners achieve success in a software-driven world.
-
- at Mendix

-
Jan de Vries
Sr. Community Engagement Manager at Mendix

Jan engages and enables the Mendix community with the content, events, and tools that help people become better business engineers. He does this through videos, blogs, events, and meetups, just to name a few. His passion is knowledge sharing and setting people up for professional growth.

ABOUT THE WEBINAR

How do you know if your app will perform as expected in production? By load testing it. A load test scenario simulates real-life load conditions. This helps determine how the application behaves when multiple users access it simultaneously and lets you identify performance issues and bottlenecks. In this webinar, Goncalo Marcos will go over the fundamentals of load testing and how you can start load testing your own applications.

Level: Advanced with a touch of expert here and there

During this webinar we will cover the following topics:


  • Introduction to Load Testing – What, Why and How
  • Concepts and Context
  • Load Testing with Mendix
  • JMeter
  • Demo – Create a test script using a recording tool
  • Bottlenecks, Metrics, Improvements
  • Demo – Optimized vs. Non-Optimized pages
  • Analyze Results
  • Demo – How to create a record
  • Best practices

QUESTIONS & ANSWERS

How do you maintain the redundant, flattened data on the parent entity?

When you update the normalized entities, you also update the flat/denormalized entity.

If you use a lot of NPEs in your user interfaces I'm guessing you would have to use browser-based testing, correct?

Not necessarily. As long as you pass the data you need with your requests to the Mendix server, you should be able to use HTTP load testing. However, if you need to use client-side logic (like nanoflows) to manipulate your NPEs, then, depending on the situation, you might have to use browser-based testing.

Where do you run your tests?

JMeter, Load Runner, Storm Runner; depends on what the customer uses. These can run on on-premises servers or in the cloud.

What if you need distributed load tests when a large number of users?

These tools allow you to run on a distributed configuration, where you can have multiple load servers executing the requests.

Sometimes in xas request handlers, there are random numbers. Do you have to deal with them?

If those random numbers are required for the subsequent requests (correlations), then yes. If not, then I dont bother with them.

Are the tests you showed browser-client side or server side? And how much does the device (slow vs. high-end) you test on the influence the results?

All the tests shown are based on HTTP requests only. As for the influence of the device, that affects mainly the rendering time. And that time can be added to the time the HTTP requests take (e.g. HTTP request time is 1 second and rendering time is 2 seconds total time is 3 seconds). Its natural that a slower device will take longer to render the results.

Should we use Acceptance environment for testing? The configuration of production and the test environment should be the same for load testing, but not sure if that is the scenario every time.

When doing load testing you should use the same environment as you would use in production, or else the tests are not realistic and run the risk of having different results in production.

Is normalizing data still as relevant in 7.21% 2B and how is it kept in sync. with the associated entities?

Although its not as relevant due to the performance improvements from the reduction of HTTP requests- its still relevant as in the example scenario of this webinar, as there are still multiple requests to the database in the background. Denormalizing the data in these scenarios (needing data from many associated entities) still helps performance.

How does the Blazemeterrecorder handle Mendixs random generated ids? Is it easy to create reusable test scripts?

No, when JMeter records the scripts, it records the requests the ids used at the time of the requests, and those values will be static in the script. Some of those ids (the dynamic ones) need to be replaced with the correct values at runtime, as shown on the webinar demos.

Not sure what is meant by reusable test scripts, but if the scripts are used somewhere else that has the exact same functionality and uses the same xas requests, then probably yes.

Can you also use HTTP header recorder instead of Blazemeter?

I am not sure, I have never used the HTTP header recorder.

View more webinars on-demand at learn.mendix.com.