Dynamics CRM Performance Testing

Watch how to record a Microsoft Dynamics CRM performance testing scenario and run a load test with emulated data without coding.

Microsoft Dynamics CRM, autocorrelation, parameterization, best practices

Learn more about why you should load test Dynamics CRM.


In this video, we will learn how to test the performance of Microsoft Dynamics CRM 2016. To test the end-to-end performance of a web application scenario, it is necessary to record the actions of a single user with a load testing tool and then replay them to emulate multiple users. Typically after recording a test scenario, you would need to manually correlate dynamic values in the script. Otherwise it will not work. Unfortunately the complexity of manual correlation makes most tools unusable for testing Dynamics CRM I will show you how you can avoid manual correlation by using StresStimulus. I will record and load test a scenario of creating a sales lead and then qualifying it as an opportunity, but you can test other CRM scenarios the same way. I begin by recording a test case. The test wizard opens. I enter the test case name. In this step you enter the URL and the first transaction name, which is Login. Start recording. Enter my credentials. Now I will create a new lead. In the topic field I put "Interested in purchasing laptops for the team" and enter the user's contact information. Then I populate the annual revenue, number of employees, and save the lead. Now I am going to qualify the lead to create an opportunity. I add the forecast which is $19,000 and probability 80%. Then I select a price list, a laptop brand from the product line items, and enter the discount. Now I will proceed through the workflow and check off some of the steps. Finally, I will close the opportunity as won and stop recording. StresStimulus scans the recorded script and automatically correlates dynamic variables. A large number of parameters are being created. It is virtually impossible to do this manually. Back in the test wizard, I am removing all unnecessary hosts that were targeted. In the next step you can optionally remove requests to static resources like images that do not impact performance. Under authentication, I enter the credentials to my CRM account. Now I will click "Next", to run "Verify" which will replay the test case once, to check for correlation issues. There are no errors or warnings. Let's make sure that two identical opportunities are created in CRM: one during recording and a second one during "verify". As you can see, there are two identical records. This means that StresStimulus correctly correlated Dynamics CRM. Now I will show you how to use test data to make load emulation more realistic. I will use the test designer to modify the script without actually writing any code. First, I will create a dataset by importing a CSV file. You can also import an Excel file or data from SQL Server. Let's call this dataset, "Lead". It has two fields: Company and Forecast. You can create as many datasets as you need with as many fields as you need. The company name starts from a number to make it easier to distinguish the new test data from the existing data in CRM. Now I will replace the recorded value that we want to make dynamic, with the test data. This process is called parameterization. Let's start with the "company". I find a request where the recorded company name was submitted to the server. Request three 29 is highlighted. In this request's body the first highlighted text is a part of an email address. The second highlighted text is the recorded company name. Select it, right-click to open the variable picker, and under Dataset, Lead, select "Company" and "VU-iteration" databinding method. This means that during the test, every virtual user in every iteration will use a subsequent dataset record. As you can see the recorded value was replaced by the dataset variable, but you did not need to write any script. Now let's parameterize the Forecast which is 19000. It is sent in request four seventeen. This request already has a correlation parameter created by StresStimulus automatically. We will create one more. The highlighted text is the parameter that I created. Since the Forecast value may be used in requests several times, we want to make sure that all of its occurrences are replaced with the same dataset. Right click and choose "Create more like this". In the "find and replace" dialog, the fields are prefilled, so I just click "bulk replace". Two more parameters were created. Now let's configure the amount of load that we want to test. The StresStimulus workflow tree presents a vast array of configuration options, but I will go back to the test wizard that just presents the essential options. In the "Load Pattern section" you can select "step load" to ramp-up users. But I will select steady load with 2 users and 5 iterations per user, so ten opportunities will be created. In the next step I will select a think time option. Several options are available here, but I will keep the default of 2 seconds. Then we move to the "run the test" confirmation screen and the test will start. Once the test is started, a new tab displaying the "Runtime Dashboard" opens. To learn how to monitor test progress and key performance indicators during the test execution, watch the video called "Running the Test". Let's fast forward. The test is complete. Test results opens in a separate tab. To learn how to analyze them, watch the video: "Analyzing Test Results". Now I will make sure that all 10 iterations completed successfully. Back in CRM, I refresh the Opportunities grid, and 10 more opportunities were created by the test. Now we know that the test was executed correctly. With StresStimulus, you can record and load test any Dynamics CRM scenarios, without manual scripting. For more realistic emulation you can use test data with minimum effort. Thank you for watching.