By Navjeet Shekhawat
Sometimes while working on a software application, an end user encounters error messages like: “An internal server error has occurred,” “Read timeout error,” and “Service unavailable.” These are performance problems that impact Customer Experience, brand perception, revenue, and have a huge impact on overall user satisfaction.
When it comes to the performance of Salesforce applications, one question that comes to mind is: Does a Salesforce-based application really require performance testing? Salesforce guarantees that it will provide computing power and resources, but the way in which Visualforce pages and Apex classes are implemented can cause performance issues similar to any other platform. Performance testing is a test practice that ensures great user experiences and helps companies gain and retain customers.
What is performance testing?
Performance testing is a practice that helps in identifying bottlenecks in a system, establishing a performance benchmark, and determining compliance with performance goals and requirements. Performance testing is among the vitally important non-functional testing types. It is important to validate the functional and nonfunctional aspects of the applications before deploying the code into the production environment.
Performance tests can be used to unveil conflicts between requests and to measure the performance of external web services in terms of throughput, responsiveness, and scalability of the overall system.
Types of performance testing
- Load testing: Load testing is used to measure the performance of a system by constantly increasing the load on the system until the time load has reached its threshold value. Here, increasing the load means increasing the number of concurrent users, transactions, and checking the behavior of the application under testing.
- Stress testing: Stress testing is used to measure performance during abnormal or extreme conditions, which are often caused by diminished resources or excessive requests.
Why performance testing?
- To identify the performance issues if you have highly customized code or large transactional volume.
- To confirm that a set of Visualforce pages and Apex controllers perform in such a way as to give the end user a better experience in terms of application responsiveness.
- To determine whether the estimated transaction throughput of the anticipated load is accurate.
Guidelines to improve the performance of Salesforce applications
Here are a few testing processes and Salesforce guidelines that could be followed to ensure better performance of applications:
- Identify the key business processes and create test scripts around them.
- Include inbound/outbound web service integrations in your test scripts.
- Test in as many browsers and with as many versions as possible.
- Test with large data volumes. These tests might reveal data skew issues.
- Test the mobile application developed on the Salesforce platform on actual mobile devices instead of using a simulator or emulator.
- Use the debug log in the Developer console that details the performance of requests as the server processes them.
- Use Chrome Developer Tools to see what’s happening behind the scenes of the Chrome browser and the application you’re running within it.
- Use WebPagetest to measure how a web page performs according to test location, browser, and connection speed.
- Use automation performance tools like HP LoadRunner, Jmeter, and Selenium to automate the testing of complex flows that might produce inconsistent results.