How to load test an online store based on Bitrix and test its integration with Microsoft Dynamics Axapta
It’s difficult to overstate the importance of performance for an e-commerce website. The sales volumes and customer loyalty are directly related to how quickly an online store operates. Under these conditions, the importance of load testing rises to the level of necessity.
You can convince yourself that this is true by considering a joint project between the online store and Performance Lab.
The owner of the largest children’s goods retailers, was working on launching an online store for the country’s regions in 2017. To check how well its services could cope with user requests, the retailer turned to the Performance Lab team for help in conducting load testing.
The sales volumes and customer loyalty are directly related to how quickly an online store operates.
Got 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.
As a result:
Performance Lab specialists needed to conduct load testing of an online store based on Bitrix and test its integration with Microsoft Dynamics Axapta.
The customer set the following objectives:
- Determine the maximum system performance
- Identify factors that limit the maximum performance
- Check the online store’s fault tolerance
How we worked on the project
Work on the project took place in two stages. We started load testing back in 2017, and it immediately exposed key problems in the operation of the online store: up to 99% of user requests resulted in errors. It became clear that the developers needed time to fix bugs.
Only in 2018, after the system’s functionality had been updated, did Performance Lab resume work on the project.
In order to achieve the customer’s objectives, we sequentially performed the following tasks:
During the preliminary assessment, the Performance Lab team together with the customer created a list of 18 required operations for the load profile. They included: searching for and selecting products, paying for an order online, canceling and returning a purchase. We need to test the mechanisms used to display user data, as well as management of the user’s personal account, basket and order statuses.
Develop a test model
As part of creating the test model for load testing, we wrote scripts and resolved the question of emulating external systems and generating test data.
To conduct the testing, we allocated a test bench whose architecture and hardware configuration matched the customer’s production counterpart. At this point, we deployed our “production” system.
We used Apache JMeter to create the load. It reproduced (client-server) traffic, which was comprised of a sequence of HTTP queries reflecting user interaction with the online store’s frontend.
The load testing scripts we wrote executed HTTP requests in the necessary sequence in a loop. These scripts parameterized the data required to execute the queries successfully.
We combined scripts in scenarios that described: the composition of emulated operations, the execution intensity, the number of virtual users, and the duration of the test.
Conduct a series of load tests
We conducted five tests to determine the online store’s maximum performance and two tests to assess the Bitrix statistics module’s impact on system performance.
It is worth noting that most of the difficulties we encountered came from working with international ERP system Microsoft Dynamics Axapta.
Axapta is client’s main information system. The company uses it to manage product inventories, retail chains, finances, as well as sales, marketing and customer relations.
Performance Lab had only worked with Axapta once previously, so this system was largely new to us.
The situation was aggravated by the fact that Bitrix-Axapta integration is itself a nonstandard solution. Covering Bitrix with load scripts is a trivial task, but things aren’t so simply with Axapta.
Given these circumstances, we had to create a non-standard solution that had never been used anywhere before. The team used Python to develop scripts for pool generation.
What did the customer get from the project?
The team summarized and analyzed the load testing results. The customer received not only a report on the work performed, but also recommendations on how to further refine the system.
This project allowed our client to make its online store more convenient for users and thus more profitable for the company.