E-commerce autotest system

I feel like the inventor of a bicycle. And he thought for a long time whether it was worth writing about what seemed to me self-evident. But once again I came across the fact that, with persistence worthy of a better application, they do not.

And so the situation is: e-commerce in the transport / tourism / hospitality industry. Designed, developed, and now - end-to-end business processes, many systems, all as expected in a large e-commerce.

image

But here is the problem:

  • All large systems consist of several systems;
  • Each is developed / updated / supported by a separate developer;
  • Each developer updates the software on average once a month and independently controls the quality of their solution.

And who provides the quality of the business process? The operator, once, and then another, made a cry when paying bills, with the argument: "so what if your system works, you can’t use it."

I don’t feel like testing for allies, but I want to give up and get paid. So we began to write an end-to-end autotesting system - testing not the system, but the entire business processes of electronic commerce (involving several systems, from several suppliers). Such a large system that goes through end-to-end BP looks into all systems: from the web console, to reading records from the database:

image

And here's what we got:

What the system can do:


1. Complex tests - checking the functionality of all BP e-commerce in order to:

  • Identification of errors;
  • Integration check;
  • Parsing deviations;

image

image

  • Logic check;
  • Verification of amounts;

image

  • PNR analysis in GDS;
  • Analysis of records of add. services in the database;
  • Checking the display of elements in screen forms.

image

2. Reporting

Processing screenshots:

  • Identifiers of orders / status / step in file names;
  • Grouping screenshots in file storage by test sections.

image

Report Set:

  • Summary report on deviations - with links to step-by-step walkthroughs, transcripts (Excel format)
  • Summary report on non-critical deviations - decoding and links to a step-by-step description (format - Excel)
  • “Beautiful” report for reporting, with both correct walkthroughs and deviations (format - Excel)

3. Load tests - mass repetition of the same type of test cases, with the aim of:

  • identification of periodic errors;
  • load simulation.

image

4. Multithreading - test cases are performed in 3 threads, which is especially important due to the fact that it is preferable to use the Windows platform as a server for testing.

Economical effect


Test volumes:

  • 2 currency pairs / languages. 4 permissions. 4 browsers. 8 business situations;
  • 12 * 4 * 4 * 8 = 1,536 test cases;
  • The average passage of a test case by a robot is 5 minutes, reproduction by a person (with a lot of experience) - 7-10 minutes;
  • Labor costs for testing 1152 * 7 * 1.2 (interruption rate on the test environment) = 12 902.4 minutes / 215.04 hours for release;
  • In a month there are 3 releases of updates from 3 suppliers = 645.12 man-hours. Given the costs of reporting and the unevenness of the tests, 4, and most likely, 5 full time employees;
  • The salary of a specialist is 80,000 + deductions to the PFR - 30%, to the FSS - 2.9%, to the FFOMS - 5.1%.

Savings with autotests - 5-6 million ₽ per year (only on salaries)

Technologies


In principle, nothing special, but it's a technical resource ...

  • Java, TestNG framework.
  • Selenium - a set of libraries for managing web browsers;
  • Selenide - methods for working with web-objects;
  • SoapUI - a means of interacting with various protocols;
  • Selenium Grid - a tool that allows you to build clusters and distribute tasks across different servers;
  • Jenkins is a tool for managing the execution of test cases and working with test results.

All Articles