Przewodnik testowania platformy Azure dla aplikacji JavaScript

Jako programista JavaScript, który dopiero zaczyna pracę z platformą Azure, skorzystaj z tego przewodnika po testowaniu w Azure, aby poznać strategie testowania jednostkowego, integracyjnego, CI/CD i AI z użyciem zestawów SDK platformy Azure oraz innych zasobów i w ten sposób zapewnić jakość, wydajność i niezawodność swojej aplikacji.

Dobrze zaprojektowana struktura platformy Azure

Platforma Azure Well-Architected Framework udostępnia platformę projektową dla aplikacji w chmurze w pięciu filarach:

  • Niezawodność — zapewnienie odporności aplikacji na awarie i szybkie odzyskiwanie.
  • Zabezpieczenia — ochrona aplikacji i danych przed zagrożeniami.
  • Wydajność — optymalizowanie sposobu, w jaki system używa zasobów do spełnienia wymagań.
  • Optymalizacja kosztów — zarządzanie kosztami podczas dostarczania wartości.
  • Doskonałość operacyjna — poprawa procesów i monitorowania w celu efektywnego dostarczania aplikacji.

Strategie testowania w tym artykule są zgodne przede wszystkim z filarem doskonałości operacyjnej, który podkreśla automatyzację, walidację i ciągłe ulepszanie procesów operacyjnych.

Wewnętrzne i zewnętrzne pętle testów dla zestawów SDK platformy Azure w języku JavaScript

Wewnętrzne i zewnętrzne pętle testów są podstawowymi pojęciami dotyczącymi testowania oprogramowania, szczególnie w przypadku aplikacji wdrożonych na platformach w chmurze, takich jak Platforma Azure:

  • Pętla wewnętrzna odnosi się do środowiska lokalnego, w którym deweloperzy często uruchamiają testy jednostkowe i integracyjne w fazie opracowywania. Ta pętla koncentruje się na szybkiej informacji zwrotnej i iteracji.

  • Pętla zewnętrzna obejmuje testy, które deweloperzy uruchamiają w potokach ciągłej integracji i ciągłego dostarczania (CI/CD), środowiskach testowych i produkcyjnych. Te testy często korzystają z usługi Azure DevOps lub GitHub Actions.

Te testy obejmują kompleksowe testy (E2E), wydajność i testy zabezpieczeń. Weryfikują zachowanie aplikacji w środowiskach, które dokładnie odzwierciedlają lub są identyczne z docelowym środowiskiem produkcyjnym. Wydajne strategie testowania używają obu pętli, aby zapewnić kompleksowe pokrycie i kontrolę jakości przed wdrożeniem i po nim.

Więcej informacji:

Testowanie lokalne i oparte na chmurze przy użyciu zestawu Azure SDK

Lokalne testowanie bez platformy Azure obejmuje symulowanie usług platformy Azure. Użyj tego podejścia, aby szybko przetestować zmiany bez ponoszenia kosztów lub opóźnienia sieci skojarzonego z rzeczywistymi usługami platformy Azure.

Z drugiej strony testowanie oparte na chmurze z platformą Azure wykorzystuje rzeczywiste zasoby platformy Azure do weryfikowania integracji, zabezpieczeń i wydajności aplikacji w środowisku chmury. Ta metoda ma kluczowe znaczenie dla ostatecznej weryfikacji w ustawieniu przypominającym środowisko produkcyjne. Pomaga to zapewnić, że aplikacja zachowuje się zgodnie z oczekiwaniami w przypadku usług platformy Azure na żywo.

Emulatory i kontenery deweloperskie zwiększają możliwości lokalnego programowania za pomocą usług platformy Azure w inny sposób. Emulatory naśladują usługi platformy Azure na potrzeby ekonomicznego, wczesnego testowania bez opłat za platformę Azure, ale mogą nie w pełni replikować funkcji usługi na żywo. Kontenery programistyczne ściślej replikują środowisko produkcyjne, w tym zależności aplikacji i usługi, aby ułatwić bezproblemowe przejście do środowiska produkcyjnego. Kontenery programistyczne pasują do złożonych aplikacji, ale wymagają więcej konfiguracji niż emulatory.

Emulatory

Emulatory obejmują:

Kontenery programistyczne

Kontenery programistyczne oferują zaawansowaną alternatywę dla używania emulatorów na potrzeby programowania lokalnego, szczególnie podczas pracy z usługami platformy Azure.

Uruchamiając usługi w kontenerach, utwórz środowisko lokalne, które ściśle odzwierciedla środowisko produkcyjne w celu zapewnienia spójności między etapami programowania, testowania i wdrażania. Zwiększa również niezawodność testowania, symulując warunki rzeczywiste dokładniej.

Konfigurowanie kontenerów w celu replikowania ustawień i danych usług platformy Azure. W ten sposób kontenery zapewniają niezawodną platformę do tworzenia i testowania aplikacji bez konieczności łączenia się z usługami platformy Azure na żywo.

Kontenery programistyczne obejmują usługę Azure SQL Database.

Więcej informacji:

Sztuczna inteligencja i narzędzia zwiększające produktywność dla deweloperów

Narzędzia oparte na sztucznej inteligencji zwiększają przepływ pracy tworzenia kodu JavaScript na Azure, zapewniając inteligentną pomoc w kodzie, zarządzanie zasobami, automatyzację testowania i obsługę wdrażania.

Narzędzie Opis
GitHub Copilot dla Azure Kodowanie wspomagane przez sztuczną inteligencję z kontekstem specyficznym dla Azure. Zadaj pytania dotyczące usług Azure, generowania kodu infrastruktury i uzyskiwania pomocy dotyczącej użycia Azure SDK bezpośrednio w programie VS Code.
Azure MCP Server Narzędzia protokołu kontekstowego modelu łączące środowisko IDE z zasobami Azure. Wykonywanie zapytań dotyczących konfiguracji zasobów, zarządzanie wdrożeniami i weryfikowanie ustawień bez opuszczania edytora.
Umiejętności Azure Komponowalne funkcje SI dla przepływów pracy na platformie Azure, w tym diagnostyki, skanowania zgodności, weryfikacji wdrożenia i inicjowania zasobów — dostępne z poziomu GitHub Copilot lub dowolnego klienta zgodnego z MCP.
Playwright MCP Narzędzia automatyzacji przeglądarki udostępniane za pośrednictwem programu MCP na potrzeby kompleksowego testowania. Uruchom testy Playwright, przechwyć zrzuty ekranu i zweryfikuj interakcje z webowym interfejsem użytkownika przy wsparciu sztucznej inteligencji.
Interfejs wiersza poleceń CLI dewelopera Azure Usprawnij cały przepływ pracy tworzenia i wdrażania. Inicjowanie projektów z szablonów, aprowizowanie infrastruktury i wdrażanie kodu za pomocą jednego narzędzia.

Te narzędzia współpracują ze sobą w celu zmniejszenia przełączania kontekstu między edytorem a portalem Azure. Przykład:

  • Użyj GitHub Copilot aby napisać kod Azure SDK z sugestiami wbudowanymi
  • Użyj Azure MCP Server aby sprawdzić, czy konfiguracje zasobów są poprawne
  • Użyj Azure Umiejętności do uruchamiania skanowania zgodności lub rozwiązywania problemów z nieudanymi wdrożeniami
  • Użyj Playwright MCP aby zautomatyzować testowanie oparte na przeglądarce aplikacji hostowanych Azure
  • Użyj azd, aby aprowizować i wdrożyć aplikację w jednym kroku

Testy jednostkowe w języku JavaScript

Testowanie jednostkowe przy użyciu zestawów SDK platformy Azure w języku JavaScript często używa struktur takich jak Jest lub Vitest w celu izolowania i testowania poszczególnych składników lub funkcji.

W przypadku natywnych testów Node.js zastępuj ręcznie wywołania Azure SDK, bez użycia dodatkowych bibliotek, przesłaniając metody w prototypach klientów SDK lub stosując proste funkcje mockujące.

Aby uzyskać więcej informacji, zobacz sekcję Testy zestawu Azure SDK w dalszej części tego artykułu.

Wskazówka

Narzędzia dewelopera AI: Użyj GitHub Copilot for Azure, aby generować szablony testów jednostkowych i wzory mock dla klientów Azure SDK na podstawie typów interfejsów.

Testy integracji w języku JavaScript

Testowanie integracji ocenia interakcję między aplikacją a usługami platformy Azure, aby zapewnić, że składniki współpracują ze sobą zgodnie z oczekiwaniami.

Konfigurowanie testów automatycznej integracji przy użyciu usługi Azure Pipelines w usłudze Azure DevOps lub przepływów pracy w funkcji GitHub Actions. Takie podejście automatyzuje wdrażanie i testowanie składników w środowisku chmury. Pomaga zidentyfikować problemy, które mogą nie być widoczne podczas testowania jednostkowego, takie jak opóźnienia sieci lub błędy konfiguracji usługi.

Symulowanie usług Azure

Pozorowanie usług platformy Azure jest powszechną praktyką w testowaniu aplikacji JavaScript, które integrują się z zestawami SDK platformy Azure. Symulując odpowiedzi usługi platformy Azure, izoluj logikę aplikacji od zależności zewnętrznych, co pomaga zapewnić szybkie i niezawodne uruchamianie testów.

Dowiedz się więcej na temat testowania integracji zestawu Azure SDK.

Testy ciągłej integracji

Testowanie ciągłej integracji polega na automatycznym uruchamianiu testów za każdym razem, gdy w bazie kodu zostanie wprowadzona zmiana. Narzędzia ciągłej integracji, takie jak Azure DevOps, zapewniają zintegrowane środowiska do automatyzowania kompilacji, testów i wdrożeń. Skonfigurowanie potoków w celu uwzględnienia testów automatycznych pomaga zagwarantować, że każda zmiana zostanie zweryfikowana, co zmniejsza prawdopodobieństwo wystąpienia błędów i regresji.

Właściwa konfiguracja potoku ma kluczowe znaczenie dla wydajnych procesów CI. Obejmuje ona konfigurowanie wyzwalaczy na potrzeby automatycznego wykonywania testów i konfigurowania środowisk dla różnych etapów testowania.

Więcej informacji:

Azure Test Plans

Plany testów platformy Azure oferują kompleksowy pakiet do testowania ręcznego i eksploracyjnego w usłudze Azure DevOps.

Ta usługa może pomóc w scenariuszach, które wymagają osądu człowieka lub są trudne do zautomatyzowania, zapewniając ustrukturyzowane podejście do testowania ręcznego. Zespoły mogą jej używać do planowania, wykonywania i śledzenia działań testowych, w tym przechwytywania zaawansowanych danych, takich jak zrzuty ekranu i filmy wideo, aby ułatwić raportowanie błędów. Zintegrowanie Azure Test Plans z procesem CI/CD zapewnia całościową strategię testowania, obejmującą zarówno testy automatyczne, jak i ręczne.

Kompleksowe testy

Kompleksowe testowanie weryfikuje pełną operację aplikacji w środowisku, które symuluje rzeczywiste scenariusze użytkownika. Korzystając z platform takich jak Playwright, można zautomatyzować testy oparte na przeglądarce, aby wchodzić w interakcje z aplikacjami, tak jak użytkownicy.

Testowanie oparte na scenariuszach obejmuje tworzenie przypadków testowych na potrzeby kompletnych przepływów użytkownika, takich jak rejestrowanie się, wykonywanie zadania i wylogowywanie. Użyj tego testu, aby zweryfikować funkcjonalność aplikacji i środowisko użytkownika na platformie Azure.

Więcej informacji:

Wskazówka

Narzędzia twórców AI: Użyj narzędzi Azure MCP Server, aby zweryfikować cele wdrożenia i kondycję usług przed uruchomieniem testów E2E na działających zasobach Azure.

Testy wydajności

Testowanie wydajnościowe jest niezbędne dla aplikacji wdrożonych na platformie Azure, aby zapewnić, że mogą obsługiwać oczekiwane obciążenia i działać dobrze pod obciążeniem.

Testowanie porównawcze obejmuje pomiar wydajności aplikacji względem zdefiniowanych metryk lub standardów. Użyj usługi Azure Load Testing, aby symulować duży ruch i analizować skalowalność i odporność aplikacji.

Przykład interfejsu wiersza polecenia:

az load test create --resource-group MyResourceGroup --name MyLoadTest --file loadTestConfig.json

Więcej informacji:

Testy zabezpieczeń

Testowanie zabezpieczeń na platformie Azure obejmuje identyfikowanie potencjalnych luk w zabezpieczeniach w aplikacji w celu zapobiegania nieautoryzowanemu dostępowi lub naruszeniom danych.

Narzędzia do skanowania luk w zabezpieczeniach są niezbędne do automatycznego wykrywania słabych stron zabezpieczeń w kodzie lub konfiguracjach. Integrując funkcje usługi GitHub Advanced Security z tradycyjnymi narzędziami do testowania zabezpieczeń aplikacji statycznych (SAST), można poprawić stan zabezpieczeń aplikacji wdrożonych na platformie Azure. Najważniejsze funkcje:

  • Skanowanie kodu: identyfikuje luki w zabezpieczeniach w bazie kodu przed wdrożeniem.
  • Skanowanie tajnych danych: pomaga zapobiegać narażeniu poufnych informacji.
  • Monitorowanie łańcucha dostaw: pomaga chronić przed potencjalnie naruszonymi zależnościami.

Te zintegrowane środki zabezpieczeń mogą pomóc w wczesnej identyfikacji luk w zabezpieczeniach, zapobieganiu naruszeniom danych i zapewnianiu integralności łańcucha dostaw aplikacji.

Testy penetracyjne symulują cyberataki przeciwko aplikacji w celu oceny stanu zabezpieczeń. Platforma Azure udostępnia wskazówki i narzędzia do przeprowadzania tych testów, aby zapewnić bezpieczeństwo aplikacji wdrożonych na platformie przed zagrożeniami.

Zalecamy zintegrowanie CodeQL z potokiem CI, aby wczesne wykrywać luki w zabezpieczeniach.

Więcej informacji:

Testy zgodności i zarządzania

Zapewnienie zgodności aplikacji z wymaganiami prawnymi, regulacyjnymi i zasadami ma kluczowe znaczenie, zwłaszcza w środowiskach chmury. Testowanie zgodności z przepisami sprawdza, czy aplikacja spełnia standardy, takie jak RODO, HIPAA lub SOC 2.

Platforma Azure oferuje narzędzia zasad i zgodności, takie jak Usługi Azure Policy i Azure Blueprints, aby pomóc zautomatyzować i wymusić zgodność w zasobach platformy Azure. Te narzędzia upraszczają proces utrzymywania standardów ładu i zgodności we wdrożeniach aplikacji.

Więcej informacji:

Testy ułatwień dostępu

Testowanie dostępności jest niezbędne, aby uczynić oprogramowanie bardziej inkluzywnym i zapewnić jego zgodność ze standardami prawnymi. Narzędzia, takie jak Accessibility Insights, pomagają identyfikować i rozwiązywać problemy z ułatwieniami dostępu w aplikacjach internetowych i mobilnych. Integrowanie szczegółowych informacji o ułatwieniach dostępu do przepływów pracy programowania ułatwia zautomatyzowane i ręczne kontrole, oferując wskazówki i raporty oparte na standardach wytycznych dotyczących ułatwień dostępu do zawartości internetowej (WCAG).

Testy A/B

Testowanie A/B lub testowanie podzielone to metoda porównywania dwóch wersji strony internetowej lub aplikacji ze sobą w celu określenia, która z nich działa lepiej. Platforma Azure udostępnia następujące usługi, które obsługują testowanie A/B:

  • Azure App Service: oferuje miejsca wdrożenia umożliwiające przejściowe środowiska, w których można testować wersje aplikacji bez wpływu na aplikację na żywo.

  • Azure Container Apps: oferuje elastyczne środowisko do uruchamiania aplikacji opartych na mikrousługach. Testowanie A/B można zaimplementować w tym środowisku, aby przetestować wersje aplikacji.

Użyj tych usług, aby wdrożyć odmiany aplikacji, a następnie ocenić reakcję i skuteczność użytkowników.

Testy zestawu Azure SDK

W przypadku deweloperów, którzy pracują z usługami platformy Azure, uzyskanie biegłości w zestawach SDK platformy Azure jest niezbędne do tworzenia niezawodnych i skalowalnych aplikacji. Następujące testy zestawu Azure SDK hostowane w usłudze GitHub dla zestawów SDK języka JavaScript są nieocenione zasoby:

Eksplorowanie tych testów zapewnia wgląd w bezproblemową integrację usług platformy Azure, prezentuje najlepsze rozwiązania dotyczące interakcji z zasobami platformy Azure i pomaga w zapewnieniu wydajnych i bezpiecznych implementacji. Zapoznaj się z szerszym zakresem przykładów zestawu SDK, aby uzyskać kompleksową wiedzę.

Wskazówka

Narzędzia dla deweloperów AI: Użyj GitHub Copilot dla Azure, aby nawigować po wzorcach testów Azure SDK i generować fikstury testowe na podstawie definicji interfejsu SDK. Funkcje Azure mogą udostępniać zasoby testowe pasujące do przykładowych konfiguracji zestawu SDK.

Dodatkowe zasoby