Magento 2 – testowanie wydajności

Systemy e-Commerce utrzymywane na silniku Magento2 nierzadko mają bardzo rozbudowane bazy produktów, klientów oraz zamówień, które ciężko jest (głównie ze względu na rozmiar danych) utrzymywać na różnych instancjach, np. deweloperskich czy testowych. Dodatkowo dochodzą jeszcze kwestie związane z bezpieczeństwem danych osobowych (RODO/GDPR). Problemy te możemy wyeliminować używając na środowiskach deweloperskich i testowych przykładowych danych dostępnych wraz z silnikiem Magento.

Dodanie przykładowych danych (produktowych, klientów, sprzedażowych) do działającej instancji Magento2

Żeby zasilić nasz istniejący silnik oparty o Magento2 przykładowymi danymi wystarczy sklonować repozytorium z danymi:

git clone <https://github.com/magento/magento2-sample-data.git>

oraz uruchomić skrypt

php -f <sample-data_clone_dir>/dev/tools/build-sample-data.php -- --ce-source="<path_to_your_magento_instance>"

podając ścieżkę do instancji naszego Magento2.

Więcej przykładowych danych testowych

Paczka z przykładowymi danymi na magento była tworzona głównie z myślą o najlepszym zaprezentowaniu nowego narzędzia (dostajemy sklep właściwie gotowy do sprzedawania – mamy tylko zupełnie inne produkty niż nasze). Dla potrzeb deweloperów taka paczka może okazać się niewystarczająca dlatego jest jeszcze inny sposób na generowanie danych testowych: generate-fixtures i Magento2 Performance Toolkit.

W celu wygenerowania przykładowych danych wystarczy wykonać polecenie:

    php bin/magento setup:performance:generate-fixtures \
 setup/performance-toolkit/profiles/ce/small.xml

Zostanie wygenerowanych szereg testowych obiektów w bazie danych: Generating profile with following params:

Generating profile with following params:
 |- Admin Users: 50
 |- Websites: 1
 |- Store Groups Count: 1
 |- Store Views Count: 1
 |- Categories: 30
 |- Attribute Sets (Default): 3
 |- Attribute Sets (Extra): 10
 |- Simple products: 800
 |- Configurable products: 16
 |- Product images: 100, 3 per product
 |- Customers: 200
 |- Cart Price Rules: 20
 |- Catalog Price Rules: 20
 |- Orders: 80
Config Changes...  done in 00:00:00
Generating admin users...  done in 00:00:00
Generating websites, stores and store views...  done in 00:00:00
Generating categories...  done in 00:00:01
Generating attribute sets...  done in 00:00:04
Generating simple products...  done in 00:00:04
Generating configurable EAV variations...  done in 00:00:00
Generating bundle products...  done in 00:00:00
Generating configurable products...  done in 00:00:01
Generating images...  done in 00:00:02
Generating customer groups...  done in 00:00:00
Generating customers...  done in 00:00:03
Generating cart price rules...  done in 00:00:00
Generating catalog price rules...  done in 00:00:00
Generating tax rates...  done in 00:00:00
Generating tax rules...  done in 00:00:00
Generating orders...  done in 00:00:00

Standardowo mamy kilka profili, różniących się liczbą poszczególnych generowanych elementów

Parametr Mały profil Średni profil Średni profil wielu witryn Duży profil Bardzo duży profil
websites 1 3 25 5 5
store_groups 1 3 25 5 5
store_views 1 3 50 5 5
simple_products 800 24000 4000 300000 600000
configurable_products 16 z 24 opcjami 640 z 24 opcjami 800 z 24 opcjami i 79 z 200 opcjami 8,000 z 24 opcjami 16,000 z 24 opcjami
product_images 100 grafik / 3 na produkt 1000 grafik / 3 na produkt 1000 grafik / 3 na produkt 2000 grafik / 3 na produkt 2000 grafik / 3 na produkt
categories 30 300 100 3000 6000
categories_nesting_level 3 3 3 5 5
catalog_price_rules 20 20 20 20 20
catalog_target_rules 5 5 5 5 5
cart_price_rules 20 20 20 20 20
cart_price_rules_floor 2 2 2 2 2
customers 200 2000 2000 5000 10000
tax rates 130 40000 40000 40000 40000
orders 80 50000 50000 100000 150000

Żródło: https://devdocs.magento.com/guides/v2.2/config-guide/cli/config-cli-subcommands-perf-data.html

Tak wygenerowane dane mogą posłużyć do budowania środowiska do testów automatycznych (od zera), do testów wydajnościowych (łatwo możemy napisać własny profil, który odwzorowuje dane obecne na bazie produkcyjnej) czy nawet do codziennej pracy z system.

FacebookTwitterGoogle+LinkedIn