Second in a series on how to effectively use Nouvola DiveCloud
Earlier this year, we offered some tips on the best way to calculate concurrent users when using Nouvola DiveCloud, and touched on the importance of load tests to let you know how much traffic your software can handle.
So, what exactly is load? Because we want our customers to get the most out of our testing software, it is important that they understand exactly how Nouvola DiveCloud defines load, and all the different features it offers to help you develop a realistic load test.
It is important to note that testing with DiveCloud is independent from the underlying framework and cloud provider of the application under test, as long as the application responds to HTTP traffic. In other words, it doesn’t matter whether the application under test resides on AWS, Rackspace, Heroku or on a set of colo servers. It could be anywhere, and it could be tested and reached by our synthetic traffic.
Also, there is no need to modify the application or install any software to run a test.
Nouvola DiveCloud load is generated by what we call Virtual Users or VU. Virtual Users are individual software entities, each one them executing a session, or generating a load. The Virtual Users behave exactly like real users, except it’s highly controlled traffic and scenarios. Virtual Users are generated on demand on cloud instances. It could also be called synthetic traffic
Virtual users run concurrently, which means they all start executing within the same second. So when we talk about 1000 VU, it means that within a second, 1,000 virtual users will be generating load on your application. The system can support tens of thousands of concurrent users or more, which represents a load of potentially millions of users per minute.
Within DiveCloud, each virtual user executes a Session. A Session is sometimes called in the industry a user scenario, or a workload. It’s the sequence of actions a user takes on the web application. It could be multiple page views, events, social interactions, e-commerce transactions, video and media streaming, filling out forms, posting, etc. It could be as long as 200-300 steps, or it could be a simple URL. Within DiveCloud, a Session is saved in a record that is a sequence of HTTP requests. They can be GET, POST, PUT or DELETE. They can be Restful API calls, simple URLs or complex URLs.
Virtual users can generate different scenarios within the same test. When using Multi-sessions, multiple sessions can be used within the same test. The key benefit is to make the test more realistic and similar to real-world scenarios. The traffic is divided among the sessions based on the way the test was designed. For instance, if you have 1000 VU, and have created a test where 30% of your users will perform one session, 20% are using a different one and 50% are on a third session, the VU will be assigned as follows:
- 300 on session 1
- 200 on session 2
- 500 on session 3
The virtual users can also be distributed geographically. Currently, DiveCloud supports all nine Amazon Web Services (AWS) regions. So, you could design a test with users dispersed in different locations. For example: 30% in Europe, 60% in the U.S. and 10% in Asia.
Even if users are all in a single region, we distribute the test on different AWS instances to generate a more diverse list of IP addresses. The algorithm takes the total number of Virtual Users in a test plan and assigns them to different instances.
Linear ramp or Flat?
Divecloud traffic patterns offer two different options: linear ramp and flat. In the flat pattern, the number of Virtual Users stay the same throughout the duration of the test. In the linear ramp, the number of Virtual Users starts from one tenth of the maximum number defined in the test plan, and during each interval the same amount is added, so that in the last interval all Virtual Users included in the test plan will be executing concurrently. The key benefit of the linear ramp traffic pattern is to be able to ramp the traffic gradually and see how the application under test responds to the traffic increase.
Nouvola developed this set of features to be thorough and to be able to account for all the sorts of different scenarios encountered in real world use. It’s what sets our product apart. There are tests and then there are Tests. The Tests you run on DiveCloud will prepare you for real world.