Performance Testing, Load Testing and Stress Testing many times confused a lot and sounds similar. But the main difference is the purpose of each type of testing. It has been described as below:

Performance Testing:  In performance testing, the goal is not to find a bug in the software product, but to eliminates the bottlenecks and establishes a baseline/benchmark for future regression testing. Various parameters which can be gather during performance testing as response time, lapse time, network latency, etc.

Load Testing: This testing operates at a predefine load level, usually the highest load that a system can accept still functioning properly. The main aim of load testing is not to break the system by overwhelming it. Instead tries to keep the system constantly running at a heavy load situation. It simulates the environment for the actual workload.

Stress Testing: This type of testing tries to break the system under test by overwhelming its resources or by taking resources away from it. Sometimes it can be considered as negative testing. The main aim of this testing is to make sure system fails and recovers gracefully. In other word we verify the recoverability of the system during adverse situations.