Ustawianie punktów odniesienia dla testów obciążeniowych
Teraz, gdy zdefiniowaliśmy testy obciążeniowe i wartości progowe, użyjmy ich do utworzenia punktów odniesienia.
Punkt odniesienia to zestaw kryteriów metryk używanych do oceny, czy test zakończył się niepowodzeniem, czy powodzeniem. Na przykład kryteria mogą być następujące:
- Średnia liczba żądań na sekundę.
- Współczynnik błędów.
- Maksymalny czas odpowiedzi.
Aby skonfigurować punkty odniesienia dla testów obciążeniowych, należy wykonać następujące kroki:
Zdefiniuj punkty odniesienia i kryteria testowania dla poszczególnych przepływów użytkownika i ogólnego rozwiązania.
Dostosuj progi dla regularnych przebiegów, aby sprawdzić, czy aplikacja nadal zapewnia oczekiwaną wydajność i nie generuje żadnych błędów.
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, w tym zachowania skalowalnego w poziomie, ogólnego rozwiązania i jego składników. 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 prowadzą 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ą zawierającą dostosowane progi, aby uwzględnić te sytuacje. Na przykład:
- Scenariusze o dużym obciążeniu, w których oczekiwana jest operacja skalowania w poziomie i jest 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.
Możesz użyć kryteriów testowania, aby zaimplementować różne punkty odniesienia, jak pokazano na poniższym przykładowym zrzucie ekranu.
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-1>": {
"clientmetric": "requests_per_sec",
"aggregate": "avg",
"condition": "<",
"value": 1200.0,
"actualValue": 0.0,
"result": null,
"action": "continue"
},
"<guid-2>": {
"clientmetric": "response_time_ms",
"aggregate": "avg",
"condition": ">",
"value": 75.0,
"actualValue": 0.0,
"action": "continue"
},
"<guid-3>": {
"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.