Udostępnij za pomocą


Szybki start: tworzenie i uruchamianie testu obciążeniowego za pomocą programu Visual Studio Code i narzędzia GitHub Copilot

Dowiedz się, jak używać rozszerzenia Azure Load Testing dla programu Visual Studio Code, aby łatwo tworzyć testy obciążeniowe locust przy użyciu narzędzia Copilot, iterować lokalnie i skalować bez wysiłku na platformie Azure. Niezależnie od tego, czy jesteś nowym użytkownikiem locust, czy ekspertem w zakresie testowania wydajnościowego, rozszerzenie Azure Load Testing usprawnia tworzenie testów, iterację i skalowanie bezpośrednio ze środowiska programu VS Code. Azure Load Testing to zarządzana usługa, która pozwala na przeprowadzanie testów obciążeniowych na skalę chmurową. Locust to narzędzie do testowania obciążenia typu open source, które umożliwia pisanie wszystkich testów w kodzie języka Python.

Ten przewodnik Szybki start przeprowadzi Cię przez proces generowania, udoskonalania i uruchamiania realistycznych testów obciążeniowych. Na koniec masz w pełni funkcjonalny skrypt testu obciążeniowego wygenerowany na podstawie kolekcji Postman, kolekcji Bezsenność lub pliku HTTP, ulepszony za pomocą ulepszeń opartych na technologii Copilot i gotowy do skalowania w usłudze Azure Load Testing.

Wymagania wstępne

Wskazówka

Usługa GitHub Copilot Chat w programie VS Code oferuje wiele modeli sztucznej inteligencji. Modele można przełączać przy użyciu selektora modelu w polu wprowadzania czatu. Jeśli nie masz pewności, którego z nich użyć, zalecamy GPT-4o.

Otwórz przewodnik

Aby rozpocząć, otwórz paletę poleceń w programie VS Code i uruchom polecenie: Testowanie obciążenia: Otwórz przewodnik. Ten przewodnik zawiera kluczowe punkty wejścia rozszerzenia.

Dostęp do funkcji można również uzyskać bezpośrednio z palety poleceń przy użyciu prefiksu testowania obciążenia . Niektóre często używane polecenia to:

  • Testowanie obciążenia: tworzenie testu locust

  • Testowanie obciążenia: uruchamianie testu obciążeniowego (lokalnego)

  • Testowanie obciążenia: uruchamianie testu obciążeniowego (Testowanie obciążenia platformy Azure)

    Zrzut ekranu przedstawiający kluczowe punkty wejścia rozszerzenia programu VS Code do testowania obciążenia platformy Azure.

Generowanie skryptu locust za pomocą narzędzia Copilot

Skrypt Locust można wygenerować na podstawie dowolnej istniejącej kolekcji Postman, kolekcji Insomnia lub pliku .http. Jeśli plik zawiera wiele żądań, Copilot próbuje sekwencjonować je w spójny scenariusz.

  1. Kliknij przycisk Utwórz test obciążeniowy w ramach przewodnika lub uruchom Test obciążeniowy: Utwórz test Locust z palety poleceń.

  2. Możesz wybrać źródło, aby automatycznie wygenerować skrypt testowy Locust.

    • Wybranie kolekcji Postman, kolekcji Bezsenność lub pliku HTTP umożliwia copilot wyodrębnianie wielu operacji interfejsu API, żądań danych i szczegółów uwierzytelniania — tworzenie bardziej kompletnego i realistycznego testu obciążeniowego.
    • Wybranie pojedynczego adresu URL umożliwia wprowadzenie pojedynczego adresu URL punktu końcowego, generując prosty skrypt, który można dostosować lub rozwinąć.
  3. W tym przewodniku możesz wybrać pozycję Wypróbuj przykład: interfejs API sklepupetstore-sample.http pet shop, który używa pliku do wygenerowania przykładowego skryptu testowego locust.

  4. Copilot analizuje wybrany plik i generuje skrypt testu obciążeniowego oparty na Locust, automatycznie sekwencjonując żądania interfejsu API, aby symulować rzeczywiste użycie i bezpiecznie obsługiwać uwierzytelnianie.

  5. Po wygenerowaniu skryptu okno czatu copilot zaproponuje inne kroki konfiguracji, takie jak definiowanie zmiennych środowiskowych. Jeśli Copilot sugeruje zmienne środowiskowe, utwórz .env plik w projekcie i dodaj zalecane wartości.

Dostosowywanie skryptu testu obciążeniowego

Przed uruchomieniem testu można go udoskonalić za pomocą narzędzia Copilot. Na przykład sprawdzając skrypt, możesz zauważyć, że ten sam ładunek żądania jest wysyłany z każdym żądaniem:

payload = {
    "id": self.pet_id,
    "name": "Fluffy",
    "category": {"id": 1, "name": "Dogs"},
    "photoUrls": ["https://example.com/photo.jpg"],
    "tags": [{"id": 1, "name": "cute"}],
    "status": "available"
}

Aby test był bardziej dynamiczny przez losowanie ładunku żądania:

  1. Otwórz panel Czat copilot .
  2. Wpisz: Randomize request payloads i naciśnij Enter.
  3. Copilot generuje sugerowaną modyfikację w celu wprowadzenia losowości.
  4. Kliknij przycisk Zastosuj w edytorze , który pojawia się powyżej wygenerowanego fragmentu kodu w oknie Czat copilot.
  5. Po przejrzeniu zmian kliknij przycisk Zachowaj , aby zaakceptować i zaktualizować skrypt.
  6. Zapisz plik

Teraz każde żądanie symuluje bardziej realistyczną interakcję użytkownika. Kod wygląda podobnie do poniższego fragmentu kodu:

payload = {
    "id": self.pet_id,
    "name": f"Pet{random.randint(1, 1000)}",
    "category": {"id": random.randint(1, 10), "name": random.choice(["Dogs", "Cats", "Birds"])},
    "photoUrls": [f"https://example.com/photo{random.randint(1, 100)}.jpg"],
    "tags": [{"id": random.randint(1, 10), "name": random.choice(["cute", "friendly", "playful"])}],
    "status": random.choice(["available", "pending", "sold"])
}

Uruchamianie testu obciążeniowego

Test obciążeniowy można uruchomić na dwa sposoby:

  • Uruchom lokalnie dla szybkiej weryfikacji
  • Uruchamianie w usłudze Azure Load Testing dla obciążeń dużej skali i wielu regionów

Uruchom lokalnie dla szybkiej weryfikacji

Aby szybko zweryfikować test, uruchom go lokalnie przy użyciu programu Visual Studio Code:

  1. Otwórz paletę poleceń i uruchom polecenie: Testowanie obciążenia: Uruchom test obciążeniowy (lokalny).

  2. Interfejs webowy Locust jest automatycznie uruchamiany w przeglądarce internetowej. Przygotowanie serwera Locust i otwarcie przeglądarki może potrwać kilka sekund.

  3. Na stronie Rozpocznij nowy test obciążeniowy przejrzyj pola wejściowe i kliknij przycisk Start. Locust rozpoczyna wysyłanie żądań, rejestrowanie wszelkich błędów i śledzenie statystyk wydajności.

    Zrzut ekranu przedstawiający internetowy interfejs użytkownika Locust do lokalnego uruchamiania testu obciążeniowego.

  4. Zapoznaj się z interfejsem Locust UI, aby móc analizować czasy odpowiedzi, współczynniki błędów i przepustowość żądań.

    Zrzut ekranu przedstawiający internetowy interfejs użytkownika locust do wyświetlania i analizowania wyników testów lokalnie.

Wskazówka

Jeśli Locust zgłasza błędy dla żądań Retrieve Pet i Update Pet, może to być spowodowane tym, jak API Pet Store przetwarza żądania. Spróbuj poprosić Copilota o dodanie losowych opóźnień między żądaniami w run_scenario". Jeśli podejrzewasz problem z samym skryptem, ustaw DEBUG_MODE=True go jako zmienną środowiskową i uruchom ponownie test, aby uzyskać bardziej szczegółowe informacje o debugowaniu.

Jeśli wolisz uruchomić test z poziomu terminalu programu VS Code:

  1. Otwórz terminal w programie VS Code.

  2. Uruchom następujące polecenie:

    locust -f path/to/locustfile.py -u 10 -r 2 --run-time 1m
    
    • -f path/to/locustfile.py: Określa skrypt testowy Locust.
    • -u 10: symuluje maksymalnie 10 użytkowników wirtualnych.
    • -r 2: zwiększa dwóch użytkowników wirtualnych na sekundę.
    • --run-time 1m: uruchamia test przez 1 minutę.
  3. Otwórz przeglądarkę na http://0.0.0.0:8089, aby zobaczyć webowy interfejs użytkownika Locust.

Skalowanie w górę w usłudze Azure Load Testing

W przypadku scenariuszy wysokiego obciążenia, w których należy symulować wiele tysięcy równoczesnych użytkowników wirtualnych w wielu regionach, możesz uruchomić test w usłudze Azure Load Testing.

Aby wykonać test na dużą skalę:

  1. Otwórz paletę poleceń i uruchom: Load Testing: Run load test (Azure Load Testing).

  2. Wybierz pozycję Utwórz plik konfiguracji....

  3. Postępuj zgodnie z konfiguracją krok po kroku, która obejmuje:

    • Zaloguj się do platformy Azure i wybierz subskrypcję.

    • Tworzenie nowego zasobu testowania obciążenia platformy Azure lub wybieranie istniejącego zasobu.

    • Wybieranie regionów testu obciążenia w celu globalnego dystrybuowania ruchu.

  4. Po zakończeniu instalacji zostanie wygenerowany plik konfiguracji YAML (na przykład loadtest.config.yaml) i dodany do folderu głównego obszaru roboczego.

    • Ten plik definiuje skrypt Locust, parametry ładowania, zmienne środowiskowe, regiony i inne pliki (na przykład zestawy danych CSV).

    • Wartości domyślne to 200 użytkowników wirtualnych działających przez 120 sekund w każdym wybranym regionie.

    • Zatwierdź ten plik w repozytorium, aby ponownie użyć i zautomatyzować przyszłe wykonania testów obciążeniowych.

  5. Copilot weryfikuje konfigurację przed wykonaniem. Postępuj zgodnie z instrukcjami podanymi w oknie czatu. W przeciwnym razie, jeśli wszystko zostanie wyewidencjonowane, skrypt testowy i powiązane z nią artefakty zostaną przekazane do usługi Azure Load Testing i przygotowane do wykonania. Ten proces może potrwać do minuty, a postęp jest wyświetlany na panelu Dane wyjściowe .

    Zrzut ekranu przedstawiający postęp testu obciążeniowego w konsoli wyjściowej programu VS Code.

  6. Po rozpoczęciu testu powiadomienie pojawi się w prawym dolnym rogu programu VS Code (komunikat typu toast). Kliknij przycisk Otwórz w witrynie Azure Portal, aby monitorować wykonywanie testów w czasie rzeczywistym.

  7. Po rozpoczęciu testu w prawym dolnym rogu zostanie wyświetlone powiadomienie (wyskakujące komunikat). Kliknij przycisk Otwórz w witrynie Azure Portal, aby monitorować wykonywanie testów w czasie rzeczywistym.

    Zrzut ekranu przedstawiający wyniki testu obciążeniowego w usłudze Azure Load Testing.

Wskazówka

Aby szybko uzyskać dostęp do wyników testów z poprzednich przebiegów, użyj polecenia: Testowanie obciążenia: Wyświetlanie przebiegów testów obciążeniowych.

W tym szybkim starcie poufne zmienne, takie jak API_KEY, były przechowywane w pliku .env i przesyłane do usługi w chmurze. Jednak najlepszym rozwiązaniem jest bezpieczne zarządzanie tajemnicami w usłudze Azure Key Vault. Rozszerzenie zawiera wskazówki dotyczące konfigurowania tego ustawienia.

Do tej pory w tym przewodniku Szybki start poufne zmienne, takie jak API_KEY były przechowywane w .env pliku i przekazywane do usługi w chmurze. Jednak najlepszym rozwiązaniem jest bezpieczne zarządzanie tajemnicami w usłudze Azure Key Vault. Rozszerzenie zawiera wskazówki dotyczące konfigurowania tego ustawienia.

  1. Otwórz okno Czat copilot , wpisz @testing /setupLoadTestSecretsInAzure i naciśnij Enter.

  2. Copilot przeprowadzi Cię przez następujące kroki:

  3. Copilot przeprowadzi Cię przez:

    • Tworzenie usługi Azure Key Vault.
    • Przypisywanie tożsamości zarządzanej do zasobu usługi Azure Load Testing.
    • Dodawanie tajemnic do usługi Azure Key Vault.
    • Konfigurowanie pliku YAML w celu odwołwania się do wpisów tajnych usługi Key Vault zamiast .env.

Za każdym razem, gdy zmodyfikujesz skrypt locust lub konfigurację YAML, możesz ponownie uruchomić test, wykonując polecenie Uruchom test obciążeniowy (Testowanie obciążenia platformy Azure).

Podsumowanie

W tym przewodniku szybkiego startu użyto rozszerzenia Azure Load Testing dla programu Visual Studio Code, aby łatwo tworzyć testy obciążeniowe Locust z użyciem narzędzia Copilot, iterować lokalnie i bez trudu skalować na platformie Azure. Rozszerzenie Azure Load Testing dla programu VS Code upraszcza proces tworzenia realistycznego skryptu testowego dla scenariusza testowego. Testowanie obciążenia platformy Azure abstrahuje złożoność konfigurowania infrastruktury pod kątem symulowania obciążenia użytkowników o dużej skali dla aplikacji.

Możesz dodatkowo rozszerzyć test obciążeniowy, aby monitorować metryki po stronie serwera aplikacji pod obciążeniem oraz określić metryki niepowodzenia testu, aby otrzymywać alerty, gdy aplikacja nie spełnia wymagań. Aby upewnić się, że aplikacja nadal działa prawidłowo, możesz również zintegrować testowanie obciążenia w ramach przepływu pracy ciągłej integracji i ciągłego wdrażania (CI/CD).