Load testing for Microsoft Dynamics NAV System

Testing object:

Microsoft Dynamics NAV is a customized system that automates accounting and document processing.

It consists of a thick client, a server application, and a database (mssql).

Testing goals:

Performing the initial system load testing.

Comparing the runtime for three different system configurations.

Testing scenarios only achieved demonstration and creation of the advance payment reports with different contents in different configurations.

Want to Learn More about Our Performance Testing Services?

Find out what’s included and how to start working with us

The following tasks were achieved during the project:

  • filling in the DB with the test data;
  • deploying the Telegraf+Influx+Grafana monitoring, including transaction monitoring from Grafana scripts;
  • developing load testing scripts using .net protocol in LoadRunner;
  • developing a separate C# application that uses Microsoft Dynamic NAV API client;
  • query monitoring configuration using Canape.

The final testing was performed using a free LoadRunner license; we used 8 hosts with 50 threads each and wrote a proprietary automatic metric collector.

We faced the following problems:

  • As the client-server communication was performed using the proprietary msbin1 protocol, it was not possible to intersect the traffic with the regular tools such as LR, Fiddler or wireshark. Queries and responses have been monitored only through the application log and Canape.
  • We did not have documentation on Microsoft Dynamics NAV API, and Microsoft support did not send it to us on request.
  • We could not solve the problem with the correlation of an encrypted binary field with the data while calling a write command in the DB. In the final script version, the writes in the DB were performed with a direct SQL injection, skipping the application server.
  • A similar problem arose when using the Microsoft Dynamics NAV API.
  • As the free LoadRunner version limits the session amount, we had to write a proprietary metrics collection system regarding the transactions in scripts from different hosts through Influx+Grafana.

Results

The customer received an initial evaluation on system runtime for different configurations.

The discovered errors required DB table blocking, session terminations, etc. until eliminated.

PFLB gained experience with the Microsoft proprietary solutions based on Microsoft Dynamics.