|
1 | 1 | ---
|
2 | 2 | title: 'Load test types'
|
3 |
| -head_title: 'Understanding the Different Types of Load Tests: Goals and Recommendations' |
4 |
| -excerpt: 'A series of conceptual articles explaining the different types of load tests. Learn about planning, running, and interpreting different tests for different performance goals.' |
5 |
| -canonicalUrl: https://grafana.com/load-testing/types-of-load-testing/ |
| 3 | +redirect: https://grafana.com/load-testing/types-of-load-testing/ |
6 | 4 | ---
|
7 |
| - |
8 |
| -Many things can go wrong when a system is under load. |
9 |
| -The system must run numerous operations simultaneously and respond to different requests from a variable number of users. |
10 |
| -To prepare for these performance risks, teams use load testing. |
11 |
| - |
12 |
| -But a good load-testing strategy requires more than just executing a single script. |
13 |
| -Different patterns of traffic create different risk profiles for the application. |
14 |
| -For comprehensive preparation, teams must test the system against different _test types_. |
15 |
| - |
16 |
| - |
17 |
| - |
18 |
| -## Different tests for different goals |
19 |
| - |
20 |
| -Start with smoke tests, then progress to higher loads and longer durations. |
21 |
| - |
22 |
| -The main types are as follows. Each type has its own article outlining its essential concepts. |
23 |
| - |
24 |
| -- [**Smoke tests**](/test-types/smoke-testing) validate that your script works and that the system performs adequately under minimal load. |
25 |
| - |
26 |
| -- [**Average-load test**](/test-types/load-testing) assess how your system performs under expected normal conditions. |
27 |
| - |
28 |
| -- [**Stress tests**](/test-types/stress-testing) assess how a system performs at its limits when load exceeds the expected average. |
29 |
| - |
30 |
| -- [**Soak tests**](/test-types/soak-testing) assess the reliability and performance of your system over extended periods. |
31 |
| - |
32 |
| -- [**Spike tests**](/test-types/spike-testing) validate the behavior and survival of your system in cases of sudden, short, and massive increases in activity. |
33 |
| - |
34 |
| -- [**Breakpoint tests**](/test-types/breakpoint-testing) gradually increase load to identify the capacity limits of the system. |
35 |
| - |
36 |
| -<Blockquote mod="note" title=""> |
37 |
| - |
38 |
| -In k6 scripts, configure the load configuration using [`options`](/get-started/running-k6/#using-options) or [`scenarios`](/using-k6/scenarios). This separates workload configuration from iteration logic. |
39 |
| - |
40 |
| -</Blockquote> |
41 |
| - |
42 |
| -## Test-type cheat sheet |
43 |
| - |
44 |
| -The following table provides some broad comparisons. |
45 |
| - |
46 |
| -| Type | VUs/Throughput | Duration | When? | |
47 |
| -|------------|-----------------------|----------------------------|------------------------------------------------------------------------------------------------------------------| |
48 |
| -| [Smoke](/test-types/smoke-testing) | Low | Short (seconds or minutes) | When the relevant system or application code changes. It checks functional logic, baseline metrics, and deviations | |
49 |
| -| [Load](/test-types/load-testing) | Average production | Mid (5-60 minutes) | Often to check system maintains performance with average use | |
50 |
| -| [Stress](/test-types/stress-testing) | High (above average) | Mid (5-60 minutes) | When system may receive above-average loads to check how it manages | |
51 |
| -| [Soak](/test-types/soak-testing) | Average | Long (hours) | After changes to check system under prolonged continuous use | |
52 |
| -| [Spike](/test-types/spike-testing) | Very high | Short (a few minutes) | When the system prepares for seasonal events or receives frequent traffic peaks | |
53 |
| -| [Breakpoint](/test-types/breakpoint-testing) | Increases until break | As long as necessary | A few times to find the upper limits of the system | |
54 |
| - |
55 |
| - |
56 |
| -## General recommendations |
57 |
| - |
58 |
| -When you write and run different test types in k6, consider the following. |
59 |
| - |
60 |
| -### Start with a smoke test |
61 |
| - |
62 |
| -Start with a [smoke test](/test-types/smoke-testing). |
63 |
| -Before beginning larger tests, validate that your scripts work as expected and that your system performs well with a few users. |
64 |
| - |
65 |
| -After you know that the script works and the system responds correctly to minimal load, |
66 |
| -you can move on to average-load tests. |
67 |
| -From there, you can progress to more complex load patterns. |
68 |
| - |
69 |
| -### The specifics depend on your use case |
70 |
| - |
71 |
| -Systems have different architectures and different user bases. As a result, the correct load testing strategy is highly dependent on the risk profile for your organization. Avoid thinking in absolutes. |
72 |
| - |
73 |
| -For example, k6 can model load by either number of VUs or by number of iterations per second ([open vs. closed](https://k6.io/docs/using-k6/scenarios/concepts/open-vs-closed/)). |
74 |
| -When you design your test, consider which pattern makes sense for the type. |
75 |
| - |
76 |
| -What's more, **no single test type eliminates all risk.** |
77 |
| -To assess different failure modes of your system, incorporate multiple test types. |
78 |
| -The risk profile of your system determines what test types to emphasize: |
79 |
| -- Some systems are more at risk of longer use, in which case soaks should be prioritized. |
80 |
| -- Others are more at risk of intensive use, in which case stress tests should take precedence. |
81 |
| - |
82 |
| -In any case, **no single test can uncover all issues**. |
83 |
| - |
84 |
| -What's more, the categories themselves are relative to use cases. A stress test for one application is an average-load test for another. Indeed, no consensus even exists about the names of these test types (each of the following topics provides alternative names). |
85 |
| - |
86 |
| -### Aim for simple designs and reproducible results |
87 |
| - |
88 |
| -While the specifics are greatly context-dependent, what's constant is that you want to make results that you can compare and interpret. |
89 |
| - |
90 |
| -Stick to simple load patterns. For all test types, directions is enough: ramp-up, plateau, ramp-down. |
91 |
| - |
92 |
| -Avoid "rollercoaster" series where load increases and decreases multiple times. These will waste resources and make it hard to isolate issues. |
93 |
| - |
0 commit comments