Ustawianie punktów odniesienia dla testów obciążeniowych

Ukończone

Po zdefiniowaniu testów obciążeniowych i wartości progowych użyjemy ich do utworzenia punktów odniesienia.

Punkt odniesienia to zestaw kryteriów metryk używanych do oceny, czy test zakończył się niepowodzeniem, czy pomyślnie. Na przykład kryteria mogą być następujące:

  • Średnie żądania na sekundę
  • Częstotliwość błędów
  • Maksymalny czas odpowiedzi

Aby skonfigurować punkty odniesienia dla testów obciążeniowych, należy wykonać następujące kroki:

  1. Zdefiniuj punkty odniesienia i kryteria testowania dla poszczególnych przepływów użytkownika i ogólnego rozwiązania.

  2. Dostosuj progi dla regularnych przebiegów, aby sprawdzić, czy aplikacja nadal zapewnia oczekiwaną wydajność i nie generuje żadnych błędów.

  3. Użyj oddzielnego punktu odniesienia do testowania chaosu, które tolerowały oczekiwane skoki liczby błędów i tymczasowo zmniejszyły wydajność.

To działanie jest ciągłe i należy wykonywać je regularnie. Na przykład należy przejrzeć punkty odniesienia po wprowadzeniu nowych funkcji lub zmian jednostek SKU usługi.

Używanie testowania obciążenia platformy Azure do oceny progów

W fazie opracowywania wydajność składników i wymagań dotyczących zasobów często nie jest wyraźnie znana. Testy obciążeniowe mogą pomóc w zidentyfikowaniu oczekiwanej wydajności ogólnego rozwiązania i jego składników, w tym zachowania skalowalnego w poziomie. Mogą one również pomóc w zidentyfikowaniu progów, których można oczekiwać podczas tworzenia punktu odniesienia.

Regularnie zadaj następujące pytania i przeszacuj je ponownie:

  • Jak długo trwa wykonywanie poszczególnych operacji, przepływu użytkownika lub wywołania interfejsu API?
  • Ile żądań, operacji i współbieżnych użytkowników może obsługiwać składnik na sekundę?
  • Ile zasobów jest używanych?
  • Jak 10, 50 i 100 równoczesnych użytkowników wpływa na podstawową infrastrukturę i usługę zaplecza?
  • Kiedy składniki powinny być skalowane w poziomie i w poziomie?

Odpowiedzi będą prowadzić do testów i progów. Żądania na sekundę, czas odpowiedzi i procent błędów to wszystkie odpowiednie przykłady wartości progowych.

Po zanotowanym szczegółach użyj wartości, aby przeanalizować i ocenić wydajność ogólnego rozwiązania i jego składników w spójny sposób. Użyj również punktu odniesienia, aby zidentyfikować wpływ zmian i dryfuje z oczekiwanej wydajności.

Po uruchomieniu testów mogą istnieć różne wymagania dotyczące specjalnych przypadków użycia, takich jak uszkodzony składnik lub skok obciążenia. W takich przypadkach mogą być oczekiwane i akceptowalne wyższe współczynniki błędów lub mniejsze żądania na sekundę. Możesz mieć oddzielną linię bazową z dostosowanymi progami, aby uwzględnić te sytuacje. Na przykład:

  • Scenariusze wysokiego obciążenia, w których operacja skalowania w poziomie jest oczekiwana i wymagana. Może wystąpić tymczasowe obniżenie wydajności do momentu ukończenia operacji.
  • Eksperymenty chaosu w ramach potoku ciągłej walidacji. Można oczekiwać wyższego współczynnika błędów, dopóki miary odporności nie zaczną samodzielnie leczyć aplikacji lub przejść w tryb failover do innego regionu.

Użyj usługi Azure Load Testing , aby ocenić, jak system działa względem zdefiniowanych progów. Usługa ma wbudowaną funkcję kryteriów testowania. Oznacza to, że można określić kryteria, które musi przejść test obciążeniowy.

Aby zaimplementować różne punkty odniesienia, można użyć kryteriów testu. Na przykład:

Table that shows sample test criteria.

Możesz określić te kryteria testu w formacie JSON i użyć interfejsu API, aby dodać je do testu obciążeniowego. Oto przykład:

[
    {
        "passFailMetrics": {
            "<guid>": {
                "clientmetric": "requests_per_sec",
                "aggregate": "avg",
                "condition": "<",
                "value": 1200.0,
                "actualValue": 0.0,
                "result": null,
                "action": "continue"
            },
            "<guid>": {
                "clientmetric": "response_time_ms",
                "aggregate": "avg",
                "condition": ">",
                "value": 75.0,
                "actualValue": 0.0,
                "action": "continue"
              },
              "<guid>": {
                "clientmetric": "error",
                "aggregate": "percentage",
                "condition": ">",
                "value": 0.0,
                "actualValue": 0.0,
                "action": "continue"
              }
        }
    }
]

Innym ważnym aspektem ciągłej walidacji jest wstrzykiwanie testów, które symulują rzeczywiste problemy. W następnej lekcji dowiesz się więcej o dodawaniu eksperymentów chaosu do procesu weryfikacji.

Test wiedzy

1.

Ile punktów odniesienia jest wymaganych?

2.

Czy punkt odniesienia definiuje wydajność, jaką może zapewnić wdrożenie?

3.

Kiedy należy ocenić i zaktualizować punkty odniesienia?