A software performance testing process determines the behavior of an application in terms of responsiveness, stability, and scalability. It also helps measure the performance of an application under load, stress and other quality factors like configuration changes, sudden spikes in the load, and more.

Testing in a cloud platform is similar to testing in a non-cloud setup. The advantages of cloud platforms like Salesforce are in-time scalability and global availability benefits. There is no extra setup required other than creating performance testing goals and conducting those tests.

The goal of this blog is to provide a performance testing strategy for a Salesforce app built with custom UI and integrated with external cloud services (for example, Amazon Web Services). Salesforce is a proven platform for peak performance when dealing with big data, as well as the load with concurrent number of users on the application built. While there are many factors worth considering, our goal in this walkthrough is to evaluate runtime application response time and identify improvement in the areas of integration points and around CRUD operations using custom UI.

Here’s the breakdown on how to build your strategy and run tests effectively:

Identify integration points

From the UI, identify areas of integration from the external services. The recommended strategy is to test the runtime performance of the application from UI when integrated with services. Then, note these Integrations areas as performance test cases. Identify the HTTP method — “GET “or “POST” — that Salesforce is using. Based on the method, determine if calls are made for fetching data or fetching and post-back to the external service. Identify the pages, modals, buttons, or search fields in the UI through which the above HTTP methods are called.

Identify CRUD operations

Another important part of performance evaluation is done in the areas of CRUD. From the UI, identify where create, read, update, and delete operations are called on custom or standard objects in the Salesforce application. It is very important for an application to respond effectively while saving a record, fetching a certain number of rows from an object, updating the record that is already created, and deleting a record. Again, identify the pages, modals, buttons, or search fields in the UI.

Choose a performance testing tool

Tools like Apache JMeter, LoadUI, and LoadView are all available in market to test the performance of an application. The above tools are mainly focused on simulating load and emulating real users rather than evaluating runtime performance of the application. As Salesforce is a cloud-based platform, one can consider Web based tools (like Chrome Developer Tools, Firebug, Firefox, Fiddler) that have the ability to measure the network performance and runtime performance of the application. Below are the references for analyzing performance in Chrome Developer Tools, Firefox and Firebug. Links have tutorials on how to record performance, saving the profiles and analyzing the performance of application.

Chrome Developer Tools



Baseline the performance

In order to initially baseline the performance of an application, repeat the same test five to six times. Navigate to each web page/modal, click on various buttons (search, save, edit, delete, etc) and record the performance. Analyze the results and note the average response time of all identified performance test areas. Analyze the results to check if the response time of external service calls and CRUD operations are consistent throughout the application. For example: if the UI is sending a request to the service with a three-character search string to fetch results out of 200 records and the service is responding with results in 3 seconds in one web page, the service should be responding with the results in another web page in the same time for the same number of records.

Communicate areas of improvement

After testing, reach out to the team with areas of improvement. Provide the analysis, the performance results, and screenshots taken as part of the testing. Repeat the same tests once the team finishes work on improving performance. Once results are gathered, use them as a baseline for comparing the performance of the application. Next time, when the performance testing is done, compare the results with the baseline results and determine the runtime performance of the application.

Those are the basics of performance testing a Salesforce application that is integrated with cloud services and has custom UI built on it. This is one approach or strategy to test the runtime performance; this strategy is best suited for the scenario where Salesforce is integrated with other services.

If you need help building, testing or improving an AppExchange offering, we’re your people! Feel free to contact us to discuss your development needs and how we can assist.

*This blog does not talk about all types of performance testing. Performance testing differs based on the quality factors that are important for an application.