Jak prawidłowo testować moduły PrestaShop
Praktyczny proces testowania modułów PrestaShop — kontrola wstępna, testy funkcjonalne, regresyjne i lista kontrolna do druku.
Dlaczego właściwe testowanie modułów ma znaczenie
Instalowanie nowego modułu PrestaShop na działającym sklepie bez testowania jest jak wymiana silnika w samochodzie podczas jazdy. Może się udać — ale jeśli nie, stoisz w korku z wściekłymi klientami za sobą.
Konflikty modułów, niekompatybilności z szablonami i nieoczekiwane efekty uboczne są najczęstszymi przyczynami przestój w sklepie. Prawie wszystkim można zapobiec dzięki podstawowemu procesowi testowania. Ten poradnik pokaże Ci jak to zrobić.
Czas, który inwestujesz w testowanie, jest zawsze mniejszy niż czas, który spędzasz na naprawianiu zepsutego sklepu produkcyjnego. 15-minutowy test na staging może zaoszczędzić Ci godzin awaryjnego szukania błędów.
Zanim zainstalujesz: kontrola przed startem
Zanim w ogóle pobierzesz moduł, sprawdź najpierw te rzeczy:
1. Macierz kompatybilności
Każdy renomowany dostawca modułów podaje, które wersje PrestaShop obsługuje moduł. Sprawdź, czy Twoja dokładna wersja jest wspierana — nie tylko wersja główna. Moduł, który mówi „PS 1.7”, może nie działać na PS 1.7.6, jeśli został zbudowany dla 1.7.8.
Sprawdź także kompatybilność z PHP. Jeśli moduł wymaga PHP 8.1+ a Twój serwer działa na PHP 7.4, nie zadziała niezależnie od wersji PrestaShop.
2. Wskaźniki jakości modułu
Szukaj oznak, że moduł jest dobrze utrzymywany:
- Ostatnie aktualizacje: Kiedy została wydana ostatnia wersja? Moduł ostatnio aktualizowany 3 lata temu to sygnał ostrzegawczy.
- Wsparcie wielu wersji: Czy dostawca aktywnie wspiera wiele wersji PrestaShop? To pokazuje, że rozumie ekosystem.
- Dokumentacja: Czy istnieje podręcznik użytkownika lub instrukcja instalacji? Dobra dokumentacja koreluje z dobrą jakością kodu.
- Polityka wsparcia: Co się dzieje, gdy coś pójdzie nie tak? Czy jest wsparcie mailowe, system zgłoszeń, czy tylko forum społecznościowe?
3. Istniejące konflikty modułów
Niektóre kategorie modułów są znane z konfliktów:
- Moduły checkout — wiele modułów podpiętych do procesu checkout może ze sobą interferować
- Moduły SEO — moduły przepisujące URL-e mogą kolidować ze sobą oraz z routingiem rdzenia PrestaShop
- Moduły modyfikujące szablon — moduły wstrzykujące własny HTML/CSS mogą łamać układ szablonu
- Moduły z dużą ilością override — moduły nadpisujące klasy rdzenia mogą kolidować z innymi override
Jeśli masz już moduły w tej samej kategorii, bądź szczególnie ostrożny i testuj dokładnie.
Przygotowanie środowiska testowego
Potrzebujesz strony staging — kopii Twojego działającego sklepu, na której możesz bezpiecznie testować. Jeśli jeszcze jej nie masz, przeczytaj najpierw nasz poradnik o konfiguracji strony staging PrestaShop.
Twoja strona staging powinna:
- Być świeżą kopią Twojej produkcyjnej bazy danych i plików (odświeżoną w ciągu ostatniego tygodnia)
- Działać na tej samej wersji PHP co produkcja
- Działać na tej samej wersji PrestaShop co produkcja
- Używać tego samego szablonu co produkcja
- Mieć zainstalowane te same moduły co produkcja
To kluczowe — strona staging, która nie odpowiada produkcji, jest bezużyteczna do testowania. Cały sens polega na dokładnym zasymulowaniu tego, co się stanie po zainstalowaniu modułu na prawdziwym sklepie.
Proces testowania
Faza 1: Kopia zapasowa
Nawet na staging wykonaj kopię zapasową przed instalacją czegokolwiek. Dzięki temu szybko cofniesz zmiany, jeśli coś pójdzie katastrofalnie nie tak.
# Quick database backup
mysqldump -u root -p prestashop > ~/backup_before_module.sql
Jeśli używasz Docker:
docker exec staging-shop-db mysqldump -u root -p'password' prestashop > ~/backup_before_module.sql
Faza 2: Instalacja modułu
- Prześlij plik ZIP modułu do Back Office Twojej strony staging → Moduły → Prześlij
- Obserwuj ewentualne błędy instalacji — jeśli instalator się nie powiedzie, nie kontynuuj
- Zapisz numer wersji modułu na przyszłość
Jeśli moduł nie instaluje się prawidłowo, sprawdź:
- Logi błędów PHP (
var/logs/lub log błędów PHP na Twoim serwerze) - Czy moduł wymaga konkretnych rozszerzeń PHP (GD, cURL, intl itp.)
- Czy uprawnienia plików są poprawne (katalog
modules/musi być zapisywalny)
Faza 3: Testy funkcjonalne
Teraz przetestuj wszystko, co moduł deklaruje. Przejdź systematycznie przez listę funkcji modułu:
Testowanie Back Office
- Czy możesz uzyskać dostęp do strony konfiguracji modułu?
- Czy wszystkie ustawienia zapisują się poprawnie?
- Czy moduł pojawia się w oczekiwanej lokalizacji w menu?
- Czy tłumaczenia działają (jeśli dotyczy)?
- Czy nowe strony administracyjne ładują się bez błędów?
Testowanie Front Office
- Odwiedź każdy typ strony, na którym moduł powinien się pojawić (strona główna, kategoria, produkt, koszyk, checkout)
- Testuj zarówno na komputerze, jak i na urządzeniu mobilnym — problemy z responsywnością są częste
- Sprawdź, czy elementy wizualne modułu pasują do Twojego szablonu
- Przetestuj wszystkie interaktywne elementy (przyciski, formularze, filtry, okna popup)
- Sprawdź konsolę JavaScript pod kątem błędów (naciśnij F12 w przeglądarce)
Faza 4: Testy regresyjne
To krok, który większość ludzi pomija — a jest najważniejszy. Moduł może działać idealnie sam, ale zepsuć coś innego.
Przetestuj te krytyczne ścieżki, nawet jeśli moduł nie ma z nimi nic wspólnego:
- Dodawanie do koszyka: Dodaj produkt do koszyka ze strony produktu, ze strony kategorii i z wyników wyszukiwania
- Pełny checkout: Przejdź cały proces checkout — adres, wysyłka, płatność — i potwierdź, że zamówienie zostało złożone
- Rejestracja klienta: Utwórz nowe konto i sprawdź, czy możesz się zalogować
- Wyszukiwanie: Wyszukaj produkt i sprawdź, czy wyniki wyświetlają się poprawnie
- Nawigacja po kategoriach: Przeklikaj się przez główne drzewo kategorii
- Zamówienia w panelu admina: Sprawdź, czy istniejące zamówienia nadal wyświetlają się poprawnie w Back Office
Jeśli checkout działa, prawdopodobnie jest dobrze. Większość konfliktów modułów ujawnia się podczas checkout, ponieważ jest to najbardziej złożona część PrestaShop — dziesiątki hooków, wywołań AJAX i zależności JavaScript zbiegających się na jednej stronie.
Faza 5: Kontrola wydajności
Niektóre moduły dodają znaczne obciążenie — ładując dodatkowy JavaScript, wywołując API lub uruchamiając ciężkie zapytania bazodanowe na każdej stronie.
- Otwórz zakładkę Network w przeglądarce (F12 → Network) i sprawdź, czy moduł dodaje duże pliki JS/CSS
- Porównaj czasy ładowania strony przed i po instalacji modułu, używając PageSpeed Insights lub zakładki Performance w przeglądarce
- Sprawdź, czy moduł wykonuje zewnętrzne wywołania API przy każdym załadowaniu strony (mogą dodawać 200-500ms opóźnienia)
Dobrze zbudowany moduł powinien dodawać minimalne obciążenie. Jeśli pojedynczy moduł dodaje ponad 200ms do czasu ładowania strony, warto to zbadać.
Testowanie aktualizacji modułów
Aktualizacja istniejącego modułu wymaga tego samego procesu testowania co świeża instalacja — czasem nawet więcej, ponieważ aktualizacje mogą zmienić zachowanie, które już skonfigurowałeś.
Przed aktualizacją
- Przeczytaj uważnie changelog — co się zmieniło? Czy są zmiany łamiące kompatybilność?
- Sprawdź, czy aktualizacja wymaga określonej ścieżki aktualizacji (np. „musisz zaktualizować do 2.x przed 3.x”)
- Zrób kopię zapasową obecnego katalogu modułu i konfiguracji
Po aktualizacji
- Sprawdź, czy wszystkie istniejące ustawienia zostały zachowane
- Przetestuj wszystkie funkcje, które były wymienione jako „zmienione” lub „ulepszone” w changelogu
- Przeprowadź pełną listę testów regresyjnych (Faza 4)
- Wyczyść cache PrestaShop i sprawdź błędy kompilacji Smarty/szablonów
Testowanie na wielu wersjach PrestaShop
Jeśli jesteś deweloperem modułów lub zarządzasz wieloma sklepami na różnych wersjach PrestaShop, musisz testować na wszystkich. Najbardziej praktycznym rozwiązaniem są kontenery Docker, po jednym na wersję:
| Kontener | Wersja PS | Wersja PHP | Przeznaczenie |
|---|---|---|---|
| ps-test-176 | 1.7.6 | 7.2 | Wsparcie starszych wersji |
| ps-test-178 | 1.7.8 | 7.4 | Najpopularniejsza wersja 1.7 |
| ps-test-81 | 8.1 | 8.1 | PS 8 wczesna |
| ps-test-82 | 8.2 | 8.2 | PS 8 aktualna |
| ps-test-91 | 9.1 | 8.3 | PS 9 najnowsza |
Dokładnie takie podejście stosujemy w mypresta.rocks — każdy moduł jest testowany na wszystkich wspieranych wersjach PrestaShop przed wydaniem. To jedyny sposób na zagwarantowanie kompatybilności międzywersyjnej.
Co zrobić, gdy coś pójdzie nie tak
Moduł zawiesza się przy instalacji
Jeśli moduł zawiesza się podczas instalacji i uniemożliwia dostęp do Back Office:
- Uzyskaj dostęp do serwera przez SSH lub FTP
- Zmień nazwę katalogu modułu:
mv modules/modulename modules/modulename_disabled - Wyczyść cache:
rm -rf var/cache/* - Twój Back Office powinien być znowu dostępny
- Skontaktuj się z dostawcą modułu, podając szczegóły błędu z
var/logs/
Moduł powoduje biały ekran
Włącz tryb debugowania, aby zobaczyć rzeczywisty błąd:
- Edytuj plik
config/defines.inc.php - Zmień
define('_PS_MODE_DEV_', false);nadefine('_PS_MODE_DEV_', true); - Odśwież stronę — powinieneś zobaczyć pełny komunikat błędu
- Pamiętaj, aby ustawić z powrotem na
falsepo zakończeniu debugowania
Moduł koliduje z innym modułem
Jeśli dwa moduły kolidują, proces debugowania wygląda tak:
- Wyłącz oba moduły
- Włącz pierwszy moduł — przetestuj
- Włącz drugi moduł — przetestuj ponownie
- Jeśli konflikt pojawia się tylko gdy oba są aktywne, sprawdź, czy:
- Podpinają się w to samo miejsce (częste przy hooków wyświetlania)
- Nadpisują tę samą klasę rdzenia
- Ładują sprzeczne biblioteki JavaScript (np. różne wersje jQuery)
- Zgłoś konflikt obu dostawcom — odpowiedzialni deweloperzy współpracują, aby go rozwiązać
Automatyczne testowanie dla deweloperów
Jeśli jesteś deweloperem modułów, rozważ dodanie automatycznych testów do swojego procesu pracy:
PHPUnit do logiki backendowej
Testuj klasy PHP swojego modułu niezależnie od PrestaShop. To pozwala wyłapać błędy logiczne, zanim trafisz na prawdziwy sklep.
Playwright lub Cypress do frontendu
Automatyczne testy przeglądarkowe mogą zweryfikować, czy interfejs użytkownika modułu działa poprawnie w różnych scenariuszach. Szczególnie cenne przy modułach checkout, gdzie ręczne testowanie jest żmudne.
GitHub Actions do CI/CD
Uruchamiaj zestaw testów automatycznie przy każdym utrwaleniu zmian. Zapobiega to przedostawaniu się regresji do wersji wydaniowych.
Prosta lista kontrolna testowania
Wydrukuj ją i używaj za każdym razem, gdy instalujesz lub aktualizujesz moduł:
| Krok | Sprawdzenie | Status |
|---|---|---|
| 1 | Strona staging jest świeżą kopią produkcji | ☐ |
| 2 | Kopia zapasowa bazy danych wykonana przed instalacją | ☐ |
| 3 | Moduł zainstalowany bez błędów | ☐ |
| 4 | Strona konfiguracji modułu działa | ☐ |
| 5 | Funkcje modułu działają zgodnie z dokumentacją | ☐ |
| 6 | Brak błędów w konsoli JavaScript | ☐ |
| 7 | Dodawanie do koszyka działa na wszystkich typach stron | ☐ |
| 8 | Pełny checkout kończy się pomyślnie | ☐ |
| 9 | Rejestracja/logowanie klienta działa | ☐ |
| 10 | Wyszukiwanie zwraca poprawne wyniki | ☐ |
| 11 | Responsywność mobilna — brak problemów z układem | ☐ |
| 12 | Czas ładowania strony nie jest znacząco wydłużony | ☐ |
Podsumowanie
Testowanie modułów nie jest skomplikowane — to po prostu nawyk. Proces wygląda tak: kopia zapasowa → instalacja na staging → test funkcji → test wszystkiego innego → kontrola wydajności → wdrożenie na produkcję. Za każdym razem, bez wyjątków.
Właściciele sklepów, którzy nigdy nie mają awaryjnych przestójów, nie mają szczęścia — po prostu testują przed wdrożeniem. Ty też możesz być jednym z nich.
Wszystkie moduły z mypresta.rocks są dostępne z bezpłatnym 30-dniowym demo, dzięki czemu możesz przetestować je na swojej stronie staging przed zakupem. Wierzymy w zasadę „najpierw przetestuj, potem kup” — bo nie musisz wierzyć nam na słowo.
More guides available
Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.