What are the types of performance testing?

System performance testing includes many contents and types, such as peak testing, load testing, stress testing, and strength testing, all of which belong to the category of performance testing.

In the usual system performance testing work, the types of performance testing that may be involved mainly include peak testing, stress testing, load testing, strength testing, capacity testing, concurrency testing, reliability testing, configuration testing, and performance testing in a narrow sense. In most teams, these types of performance tests are rarely implemented individually, and are usually combined or selected for implementation. For beginners, these terms often mislead beginners, who can't figure out the difference and relationship between these test types, and don't know how to carry out the work. In fact, the performance tests mentioned above basically belong to the category of performance tests of online transactions, and the essence of these performance tests are performance tests of concurrent users: either adjust the pressure method, or adjust the pressure time, or adjust the pressure, Coupled with some adjustments such as test environment and test parameters, different types of performance tests can be obtained.

The main content and characteristics of various tests are introduced below.

Stress test: A test that continuously exerts pressure on the system is a test that obtains the maximum service level that the system can provide by determining a system bottleneck or a performance point that cannot receive user requests. For example, test a Web site under a large load, when the transaction response time of the system becomes unacceptable or the transaction cannot be performed normally.

Stress testing is to find out under what conditions the performance of the application will become unacceptable, mainly by changing the input of the application to impose an increasing load on the application until the inflection point of application performance degradation is found. Stress testing is somewhat similar to load testing, but load testing is often described as a specific type of stress testing—such as increasing the number of users and stress testing an application.

Load testing: by continuously increasing the pressure on the system under test until the performance index reaches the limit, such as the response time exceeds the predetermined index or a certain resource has reached a saturated state. This kind of test can find the processing limit of the system and provide a basis for system tuning.

Usually, the stress test focuses on the performance of the system under different pressures, focusing on the pressure; the load test focuses on the performance of the system when it is pressurized for a long time under a relatively high pressure, focusing on the pressurization time.

In the actual testing work, the stress test and the load test are not strictly distinguished: many scenarios called stress tests will be pressurized for a long time, and many scenarios called load tests will also constantly change the pressure of the load, because project stakeholders I can't figure out the difference in conceptual details at all, so these terms have become just a name for performance testing.

For these concepts, the best way is still to return to the essence, not to divide the test types with these interrelated nouns.

Strength test: The strength test is mainly to test the processing ability of the system under abnormal conditions, such as the performance of the test system under low resource configuration. The actual cases of some strength tests are listed below.

Under normal pressure, the user's click rate is "1000 times/second", and the running click rate is "2000 times/second".

Run a scenario where the CPU or memory utilization is above 90%.

Run scenarios that may cause abnormally frequent disk data access.

The strength test is a particularly important test, which is of great significance for evaluating the stability, robustness, and scalability of the system. This kind of test under special conditions makes it easier to find deep-seated performance problems in the system.

Concurrency test: It is mainly used to test whether there are performance problems when multiple users access the same system/same module/same business function/same data record at the same time. Almost all performance tests will involve concurrency tests.

Large data volume test: The focus of big data testing is divided into two types, one is the runtime large data volume test for certain systems such as new records and statistical queries; the other is historical big data testing, which tests stock data achieve a certain level of performance.

Configuration test: Configuration test is mainly to find the optimal allocation principle of various resources of the system through testing, and the test result is an important basis for the configuration of system production environment parameters. For example, various parameters of the application server can be continuously adjusted through testing to achieve a better performance.

Reliability test: to test whether the system is stable and reliable after running under certain pressure for a long time, mainly used to test whether the system can provide reliable services stably for a long time. For example, it is possible to carry out a test to keep the CPU utilization rate at 70%~90%, continuously pressurize the system for 7×24 hours, and then analyze whether it is stable and reliable according to the results.

Performance testing in a narrow sense: it is mainly used to describe conventional performance testing, and to test whether the performance of the system meets the production performance requirements by simulating the usage scenarios and business pressure during production operation. For example, it can be tested in the production environment to test the maximum business processing capacity of the system and other indicators, and provide reference for the next production operation and maintenance. The performance test is a test under "normal pressure", mainly to test whether the normal use meets the performance requirements, and at the same time, some tests slightly beyond the scope of "normal pressure" may be carried out in order to reserve the expansion space of the system.

By digging into the various test categories above, it can be seen that in fact most of them are closely related. For example, the 24-hour continuous pressurization reliability test may include strength test, concurrent test, performance test and load test, etc. Therefore, when planning and designing performance testing, we must not ignore their internal connections, but organize performance testing in an efficient way after grasping the essence.

Finally, I would like to thank everyone who has read my article carefully. Reciprocity is always necessary. Although it is not a very valuable thing, you can take it away if you need it:

These materials should be the most comprehensive and complete preparation warehouse for [software testing] friends. This warehouse has also accompanied tens of thousands of test engineers through the most difficult journey, and I hope it can help you! Partners can click the small card below to receive 

Guess you like

Origin blog.csdn.net/okcross0/article/details/131681815