Load testing for Microsoft Dynamics NAV System
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).
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.
Have a project in mind?
There is no better place for a QA solution than Performance Lab.Drop us a line to find out what our team can do for you.
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;
- developing a separate C# application that uses Microsoft Dynamic NAV web 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.
The customer received an initial evaluation on system runtime for different configurations.
The discovered errors required DB table blocking, session terminations, etc. until eliminated.
Performance Lab gained experience with the Microsoft proprietary solutions based on Microsoft Dynamics.