Udostępnij przez


Konfigurowanie testu obciążeniowego w języku YAML

Dowiedz się, jak skonfigurować test obciążeniowy w usłudze Azure Load Testing przy użyciu języka YAML. Plik YAML konfiguracji testu służy do tworzenia i uruchamiania testów obciążeniowych z przepływu pracy ciągłej integracji i ciągłego dostarczania (CI/CD).

Składnia YAML testu obciążeniowego

Konfiguracja testu obciążeniowego używa następujących kluczy:

Klawisz Typ Required Wartość domyślna Opis
version ciąg Y Wersja specyfikacji testu obciążeniowego. Jedyną obsługiwaną wartością jest v0.1.
testId ciąg Y Unikatowy identyfikator testu obciążeniowego. Wartość musi zawierać się od 2 do 50 znaków ([a-z0-9_-]). W przypadku istniejącego testu możesz pobrać element testId ze strony szczegółów testu w witrynie Azure Portal.
testName ciąg N Przestarzałe. Unikatowy identyfikator testu obciążeniowego. To ustawienie jest zastępowane przez testId. Nadal można uruchamiać istniejące testy przy użyciu testName pola .
displayName ciąg N Nazwa wyświetlana testu. Ta wartość jest wyświetlana na liście testów w witrynie Azure Portal. Jeśli nie zostanie podana, testId zostanie użyta jako nazwa wyświetlana.
description ciąg N Krótki opis testu. Wartość ma maksymalną długość 100 znaków.
testType ciąg Y Typ testu. Możliwe wartości:
  • URL: Test obciążeniowy oparty na adresie URL
  • JMX: Test obciążeniowy oparty na JMeter
  • Locust: Test obciążeniowy oparty na locust
testPlan ciąg Y Odwołanie do pliku planu testu.
  • Jeśli testType: JMX: ścieżka względna do skryptu testowego JMeter.
  • Jeśli testType: Locust: ścieżka względna do skryptu testowego locust.
  • Jeśli testType: URL: ścieżka względna do pliku JSON żądań.
engineInstances liczba całkowita Y Liczba wystąpień aparatu testów równoległych na potrzeby uruchamiania planu testów. Dowiedz się więcej o konfigurowaniu obciążenia na dużą skalę.
configurationFiles tablica ciągów znaków N Lista plików zewnętrznych wymaganych przez skrypt testowy. Na przykład pliki fragmentów JMX, pliki danych CSV, obrazy lub dowolny inny plik danych.
Testowanie obciążenia platformy Azure przekazuje wszystkie pliki w tym samym folderze co skrypt testowy. W skryscie JMeter lub skrycie Locust odwołują się tylko do plików zewnętrznych przy użyciu nazwy pliku i usuń wszystkie informacje o ścieżce pliku.
failureCriteria obiekt N Kryteria niepowodzenia testu obciążeniowego. Zobacz failureCriteria , aby uzyskać więcej szczegółów.
autoStop ciąg lub obiekt N Automatycznie zatrzymaj test obciążeniowy, gdy wartość procentowa błędu przekracza wartość.
Możliwe wartości:
- disable: nie zatrzymaj testu obciążeniowego automatycznie.
- object: zobacz autostop configuration (Konfiguracja automatycznego zatrzymania ), aby uzyskać więcej szczegółów.
properties obiekt N
  • Jeśli testType: JMX: Plik właściwości użytkownika JMeter odwołuje się do pliku właściwości.
  • Jeśli testType: Locust: plik konfiguracji locust odwołuje się.
Zobacz właściwości , aby uzyskać więcej szczegółów.
zipArtifacts tablica ciągów znaków N Określa listę plików artefaktów zip. W przypadku plików innych niż główny skrypt testowy i właściwości użytkownika dla testów opartych na JMeter oraz skryptu locust i plików konfiguracji dla testów opartych na locust, jeśli rozmiar pliku przekracza 50 MB, skompresuj je do pliku ZIP. Upewnij się, że plik ZIP pozostaje poniżej 50 MB rozmiaru. Tylko 5 artefaktów ZIP jest dozwolonych z maksymalnie 1000 plików w każdym i nieskompresowanym rozmiarze 1 GB. Dotyczy tylko i testType: JMXtestType: Locust.
splitAllCSVs typ logiczny (boolowski) N Nieprawda Podziel wejściowe pliki CSV równomiernie we wszystkich wystąpieniach aparatu testowego. Aby uzyskać więcej informacji, zobacz Odczyt pliku CSV w testach obciążeniowych.
secrets obiekt N Lista wpisów tajnych, do których odwołuje się skrypt Apache JMeter lub Locust. Aby uzyskać więcej informacji, zobacz wpisy tajne .
env obiekt N Lista zmiennych środowiskowych, do których odwołuje się skrypt Apache JMeter lub locust. Aby uzyskać więcej informacji, zobacz zmienne środowiskowe .
certificates obiekt N Lista certyfikatów klienta do uwierzytelniania za pomocą punktów końcowych aplikacji w skry skrycie JMeter lub Locust. Aby uzyskać więcej informacji, zobacz certyfikaty .
appComponents obiekt N Lista zasobów serwera -side do monitorowania podczas testu obciążeniowego. Aby uzyskać więcej informacji, zobacz appComponents.appComponents (AplikacjaComponents ).
subnetId ciąg N Identyfikator zasobu podsieci sieci wirtualnej do testowania prywatnych punktów końcowych. Ta podsieć hostuje wstrzyknięte maszyny wirtualne aparatu testowego. Aby uzyskać więcej informacji, zobacz jak testować prywatnie hostowane punkty końcowe.
publicIPDisabled typ logiczny (boolowski) N Wyłącz wdrażanie publicznego adresu IP, modułu równoważenia obciążenia i sieciowej grupy zabezpieczeń podczas testowania prywatnego punktu końcowego. Aby uzyskać więcej informacji, zobacz jak testować prywatnie hostowane punkty końcowe.
regionalLoadTestConfig obiekt N Dystrybuuj obciążenie między regionami, aby symulować ruch użytkowników z wielu regionów. Aby uzyskać więcej informacji, zobacz regionalną konfigurację testu obciążeniowego, aby uzyskać więcej informacji.
referenceIdentities obiekt N Lista tożsamości zarządzanych używanych w teście na potrzeby uzyskiwania dostępu do wpisów tajnych z usługi Azure Key Vault, metryki kryteriów niepowodzenia po stronie serwera i uwierzytelniania punktów końcowych. Aby uzyskać więcej informacji, zobacz referenceIdentities (Dokumentacja ).

Przykład konfiguracji testu obciążeniowego

Poniższy fragment kodu YAML zawiera przykładową konfigurację testu obciążeniowego.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
subnetId: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.Network/virtualNetworks/load-testing-vnet/subnets/load-testing
configurationFiles:
  - 'sampledata.csv'
  - 'testfragment.jmx'
zipArtifacts:
   - bigdata.zip
splitAllCSVs: True
failureCriteria:
  - avg(response_time_ms) > 300
  - percentage(error) > 50
  - GetCustomerDetails: avg(latency) >200
autoStop:
  errorPercentage: 80
  timeWindow: 60
secrets:
  - name: my-secret
    value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
keyVaultReferenceIdentity: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity

failureCriteria konfiguracja

Kryteria testu niepowodzenia umożliwiają zdefiniowanie warunków w celu określenia, czy przebieg testu obciążeniowego zakończył się pomyślnie, czy nie. Jeśli zostanie spełniony co najmniej jeden kryteria niepowodzenia, test otrzyma wynik testu, który zakończył się niepowodzeniem. Dowiedz się więcej o korzystaniu z kryteriów niepowodzenia testu obciążeniowego. Można zdefiniować kryteria niepowodzenia dotyczące metryk klienta, takich jak czas odpowiedzi, opóźnienie itp., oraz metryki po stronie serwera dla składników aplikacji po stronie serwera.

Metryki klienta

Można zdefiniować kryteria niepowodzenia, które mają zastosowanie do całego testu obciążeniowego lub które mają zastosowanie do określonego żądania. Kryteria niepowodzenia mają następującą strukturę:

  • Kryteria testu na poziomie testu obciążeniowego: Aggregate_function (client_metric) condition threshold.
  • Kryteria testu stosowane do określonych żądań: Request: Aggregate_function (client_metric) condition threshold.

Testowanie obciążenia platformy Azure obsługuje następujące metryki klienta:

Wskaźnik Funkcja agregacji Threshold Condition Opis
response_time_ms avg (średnia)
min (minimum)
max (maksimum)
pxx (percentyl), xx może być 50, 75, 90, 95, 96, 97, 98, 99, 999 i 9999
Wartość całkowita reprezentująca liczbę milisekund (ms). > (większe niż)
< (mniejsze niż)
Czas odpowiedzi lub czas, który upłynął, w milisekundach. Dowiedz się więcej o upływie czasu w dokumentacji narzędzia Apache JMeter.
latency avg (średnia)
min (minimum)
max (maksimum)
pxx (percentyl), xx może być 50, 90, 95, 99
Wartość całkowita reprezentująca liczbę milisekund (ms). > (większe niż)
< (mniejsze niż)
Opóźnienie ( w milisekundach). Dowiedz się więcej o opóźnieniu w dokumentacji narzędzia Apache JMeter.
error percentage Wartość liczbowa w zakresie od 0 do 100, reprezentująca wartość procentową. > (większe niż) Procent żądań, które zakończyły się niepowodzeniem.
requests_per_sec avg (średnia) Wartość liczbowa z maksymalnie dwoma miejscami dziesiętnymi. > (większe niż)
< (mniejsze niż)
Liczba żądań na sekundę.
requests count Wartość całkowita. > (większe niż)
< (mniejsze niż)
Łączna liczba żądań.

Metryki po stronie serwera

Kryteria niepowodzenia można zdefiniować w metrykach po stronie serwera dla składników aplikacji po stronie serwera.

W poniższej serverMetrics: tabeli opisano różne pola w konfiguracji:

Parameter Opis
resourceId To jest wymagane. Identyfikator zasobu składnika aplikacji, na którym należy zastosować kryteria
metricNamespace To jest wymagane. Przestrzeń nazw metryki po stronie serwera.
metricName To jest wymagane. Metryki po stronie serwera, na których należy zastosować kryteria.
aggregation To jest wymagane. Agregacja do zastosowania w metrykach po stronie serwera.
condition Opcjonalny. Operator porównania, taki jak greater than, lub less than.
value To jest wymagane. Wartość liczbowa do porównania z metryki.

Przykład konfiguracji kryteriów niepowodzenia

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która ma trzy kryteria niepowodzenia testu obciążeniowego.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
failureCriteria:
  clientMetrics:
    - avg(responseTimeMs) > 300
    - percentage(error) > 50
    - getCustomerDetails: avg(latency) > 200
  serverMetrics:
    - resourceId: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-vm
      metricNamespace: Microsoft.Compute/virtualMachines
      metricName: Percentage CPU
      aggregation: Average
      condition: GreaterThan
      value: 80
    - resourceId: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-vm
      metricNamespace: Microsoft.Compute/virtualMachines
      metricName: Available Memory
      aggregation: Average
      condition: LessThan
      value: 20

appComponents konfiguracja

Zasoby po stronie serwera można monitorować podczas testu obciążeniowego. Dowiedz się więcej o monitorowaniu zasobów po stronie serwera. Po uruchomieniu testu obciążeniowego dla aplikacji hostowanej na platformie Azure usługa Azure Load Testing zbiera metryki zasobów dla składników aplikacji i przedstawia je na pulpicie nawigacyjnym testu obciążeniowego.

W poniższej appComponents: tabeli opisano różne pola w konfiguracji:

Parameter Opis
resourceId To jest wymagane. Identyfikator zasobu składnika aplikacji, na którym należy zastosować kryteria.
resourceName Opcjonalny. Nazwa zasobu, który ma być monitorowany.
kind Opcjonalny. Rodzaj zasobu do monitorowania.
metrics To jest wymagane. Lista metryk, które mają być monitorowane dla składnika aplikacji. Zawiera on nazwę, przestrzeń nazw i agregację dla metryki.

Przykład konfiguracji składników aplikacji

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która ma dwa składniki aplikacji.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
appComponents:
  - resourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/samplerg/providers/microsoft.insights/components/appComponentResource"
    resourceName: appComponentResource #Optional
    kind: web # Optional
    metrics:
      - name: "requests/duration"
        namespace: microsoft.insights/components 
        aggregation: "Average"
      - name: "requests/count"
        aggregation: "Total"
        namespace: microsoft.insights/components   
  - resourceId: "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/samplerg/providers/microsoft.insights/components/appComponentResource"
    resourceName: appComponentResource #Optional
    kind: web # Optional
    metrics:
      - name: "requests/duration"
        aggregation: "Average"
        namespace: microsoft.insights/components
      - name: "requests/count"
        aggregation: "Total"
        namespace: microsoft.insights/components

autoStop konfiguracja

Funkcja automatycznego zatrzymywania testów obciążeniowych umożliwia automatyczne zatrzymywanie testu obciążeniowego, gdy wartość procentowa błędu przekracza określony próg w danym przedziale czasu. Dowiedz się więcej na temat funkcji automatycznego zatrzymania testu obciążeniowego.

Klawisz Typ Wartość domyślna Opis
errorPercentage liczba całkowita 90 Próg wartości procentowej błędu w ciągu timeWindow. Jeśli wartość procentowa błędu przekracza tę wartość procentową w danym przedziale czasu, przebieg testu zostanie zatrzymany automatycznie.
timeWindow liczba całkowita 60 Przedział czasu w sekundach do obliczenia wartości errorPercentage.

Przykład konfiguracji automatycznego zatrzymania

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która ma trzy kryteria niepowodzenia testu obciążeniowego.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
autoStop:
  errorPercentage: 80
  timeWindow: 60

properties konfiguracja

Możesz określić plik właściwości użytkownika JMeter dla testu obciążeniowego. Plik właściwości użytkownika jest przekazywany wraz z planem testu i innymi plikami. Dowiedz się więcej o korzystaniu z właściwości użytkownika JMeter w usłudze Azure Load Testing.

Klawisz Typ Wartość domyślna Opis
userPropertyFile ciąg Plik do użycia jako plik właściwości użytkownika narzędzia Apache JMeter lub plik konfiguracji locust. W przypadku locust pliki z rozszerzeniami .conf, .ini i .toml są obsługiwane jako plik konfiguracji. Plik jest przekazywany do zasobu usługi Azure Load Testing wraz ze skryptem testowym i innymi plikami konfiguracji. Jeśli plik znajduje się w podfolderze na komputerze lokalnym, użyj ścieżki względem lokalizacji skryptu testowego.

Przykład konfiguracji pliku właściwości użytkownika

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która określa plik właściwości użytkownika.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
properties:
  userPropertyFile: 'user.properties'

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która określa plik konfiguracji locust.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.py
testType: Locust
engineInstances: 1
properties:
  userPropertyFile: 'locust.conf'

secrets konfiguracja

Wartości wpisów tajnych można przechowywać w usłudze Azure Key Vault i odwoływać się do nich w planie testu. Dowiedz się więcej na temat używania wpisów tajnych z usługą Azure Load Testing.

Klawisz Typ Wartość domyślna Opis
name ciąg Nazwa tajemnicy. Ta nazwa powinna być zgodna z nazwą wpisu tajnego używaną w żądaniach planu testów.
value ciąg Identyfikator URI (identyfikator wpisu tajnego) dla wpisu tajnego usługi Azure Key Vault.

Przykład konfiguracji wpisów tajnych

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która odwołuje się do wpisu tajnego my-secret w usłudze Azure Key Vault.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
secrets:
  - name: my-secret
    value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345

env konfiguracja

Zmienne środowiskowe można określić i odwołać się do nich w planie testu. Dowiedz się więcej na temat używania zmiennych środowiskowych z usługą Azure Load Testing.

Klawisz Typ Wartość domyślna Opis
name ciąg Nazwa zmiennej środowiskowej. Ta nazwa powinna być zgodna z nazwą zmiennej używanej w żądaniach planu testów.
value ciąg Wartość zmiennej środowiskowej.

Przykład konfiguracji zmiennej środowiskowej

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która określa zmienną środowiskową my-variable i wartość my-value.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
env:
  - name: my-variable
    value: my-value

certificates konfiguracja

Certyfikaty klienta można przekazać do testu obciążeniowego. Certyfikat jest przechowywany w usłudze Azure Key Vault. Dowiedz się więcej na temat używania certyfikatów klienta z usługą Azure Load Testing.

Klawisz Typ Wartość domyślna Opis
name ciąg Nazwa certyfikatu.
value ciąg Identyfikator URI (identyfikator wpisu tajnego) dla certyfikatu w usłudze Azure Key Vault.

Przykład konfiguracji certyfikatu

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która odwołuje się do certyfikatu klienta w usłudze Azure Key Vault.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
certificates:
  - name: my-certificate
    value: https://akv-contoso.vault.azure.net/certificates/MyCertificate/abc1234567890def12345

referenceIdentities konfiguracja

Tożsamości zarządzane można używać w różnych scenariuszach w teście obciążeniowym. Tożsamości zarządzane mogą być używane w teście na potrzeby uzyskiwania dostępu do wpisów tajnych lub certyfikatów z usługi Azure Key Vault, pobierania metryk dla kryteriów niepowodzenia po stronie serwera i uwierzytelniania punktów końcowych.

W poniższej referenceIdentities: tabeli opisano różne pola w konfiguracji:

Parameter Opis
kind To jest wymagane. Definiuje scenariusz, dla którego jest używana tożsamość zarządzana. Może to być jeden z następujących KeyVaultelementów , Metricslub Engine. Dla rodzaju Enginemoże istnieć wiele elementów.
type To jest wymagane. Typ tożsamości. Może to być UserAssigned lub SystemAssigned.
value To jest wymagane. Identyfikator zasobu tożsamości zarządzanej. Nie trzeba tego podać, jeśli typ to SystemAssigned.

Przykład konfiguracji tożsamości odwołań

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego dla wielu tożsamości.

version: v0.1
testId: SampleTest
displayName: Sample Test
description: Load test website home page
testPlan: SampleTest.jmx
testType: JMX
engineInstances: 1
secrets:
  - name: my-secret
    value: https://akv-contoso.vault.azure.net/secrets/MySecret/abc1234567890def12345
failureCriteria:
  serverMetrics:
    - resourceId: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-vm
      metricNamespace: Microsoft.Compute/virtualMachines
      metricName: Percentage CPU
      aggregation: Average
      condition: GreaterThan
      value: 80
referenceIdentities:
  - kind: KeyVault
    type: UserAssigned
    value: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity
  - kind: Metrics
    type: SystemAssigned
  - kind: Engine
    type: UserAssigned
    value: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity
  - kind: Engine
    type: UserAssigned
    value: /subscriptions/abcdef01-2345-6789-0abc-def012345678/resourceGroups/sample-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/sample-identity1

Żądanie pliku JSON

Jeśli używasz testu opartego na adresach URL, możesz określić żądania HTTP w pliku JSON zamiast używać skryptu testowego. Pamiętaj, aby ustawić wartość testType na URL w pliku YAML konfiguracji testu i odwołać się do pliku JSON żądań.

Żądania HTTP

Plik JSON żądań używa następujących właściwości do definiowania żądań we requests właściwości :

Majątek Typ Opis
requestName ciąg Unikatowa nazwa żądania. Możesz odwołać się do nazwy żądania podczas konfigurowania kryteriów testu niepowodzenia.
responseVariables macierz Lista zmiennych odpowiedzi. Użyj zmiennych odpowiedzi, aby wyodrębnić wartość z żądania i odwołać się do niej w kolejnym żądaniu. Dowiedz się więcej o zmiennych odpowiedzi.
responseVariables.extractorType ciąg Mechanizm wyodrębniania wartości z danych wyjściowych odpowiedzi. Obsługiwane wartości to XPathExtractor, JSONExtractori RegularExpression.
responseVariables.expression ciąg Wyrażenie w celu pobrania danych wyjściowych odpowiedzi. Wyrażenie zależy od wartości typu wyodrębniającego.
responseVariables.variableName ciąg Unikatowa nazwa zmiennej odpowiedzi. Tę zmienną można odwołać w kolejnym żądaniu przy użyciu {$variable-name} składni .
queryParameters macierz Lista parametrów ciągu zapytania, które mają być przekazywane do punktu końcowego.
queryParameters.key ciąg Nazwa parametru ciągu zapytania.
queryParameters.value ciąg Wartość parametru ciągu zapytania.
requestType ciąg Typ żądania. Obsługiwane wartości to: URL lub CURL.
endpoint ciąg Adres URL punktu końcowego aplikacji do przetestowania.
headers macierz Lista nagłówków HTTP do przekazania do punktu końcowego aplikacji. Określ parę klucz-wartość dla każdego nagłówka.
body ciąg Tekst treści żądania HTTP. Możesz użyć elementu requestBodyFormat , aby określić format zawartości treści.
requestBodyFormat ciąg Format zawartości treści. Obsługiwane wartości to: Text, , JSONJavaScript, HTML, i XML.
method ciąg Metoda HTTP w celu wywołania punktu końcowego. Obsługiwane wartości to: GET, , POST, PUTDELETE, PATCH, HEAD, i OPTIONS.
curlCommand ciąg Polecenie cURL do uruchomienia. Wymaga, aby element to requestTypeCURL.

Poniższy fragment kodu JSON zawiera przykładowy plik JSON żądań:

{
    "version": "1.0",
    "scenarios": {
        "requestGroup1": {
            "requests": [
                {
                    "requestName": "add",
                    "responseVariables": [],
                    "queryParameters": [
                        {
                            "key": "param1",
                            "value": "value1"
                        }
                    ],
                    "requestType": "URL",
                    "endpoint": "https://www.contoso.com/orders",
                    "headers": {
                        "api-token": "my-token"
                    },
                    "body": "{\r\n  \"customer\": \"Contoso\",\r\n  \"items\": {\r\n\t  \"product_id\": 321,\r\n\t  \"count\": 50,\r\n\t  \"amount\": 245.95\r\n  }\r\n}",
                    "method": "POST",
                    "requestBodyFormat": "JSON"
                },
                {
                    "requestName": "get",
                    "responseVariables": [],
                    "requestType": "CURL",
                    "curlCommand": "curl --request GET 'https://www.contoso.com/orders'"
                },
            ],
            "csvDataSetConfigList": []
        }
    },
    "testSetup": [
        {
            "virtualUsersPerEngine": 1,
            "durationInSeconds": 600,
            "loadType": "Linear",
            "scenario": "requestGroup1",
            "rampUpTimeInSeconds": 30
        }
    ]
}

Ładowanie konfiguracji

Plik JSON żądań używa następujących właściwości do zdefiniowania konfiguracji ładowania we testSetup właściwości :

Majątek Typ Typ ładowania Opis
loadType ciąg Typ wzorca ładowania. Obsługiwane wartości to: linear, stepi spike.
scenario ciąg Odwołanie do grupy żądań określonej we scenarios właściwości .
virtualUsersPerEngine liczba całkowita Wszystko Liczba użytkowników wirtualnych na wystąpienie aparatu testowego.
durationInSeconds liczba całkowita Wszystko Łączny czas trwania testu obciążeniowego w sekundach.
rampUpTimeInSeconds liczba całkowita Liniowy, krok Czas trwania w sekundach, aby zwiększyć liczbę docelowych użytkowników wirtualnych.
rampUpSteps liczba całkowita Krok Liczba kroków, które należy wykonać, aby osiągnąć docelową liczbę użytkowników wirtualnych.
spikeMultiplier liczba całkowita Pik/Kolec/Skok Współczynnik mnożenia liczby użytkowników docelowych w czasie trwania skoku.
spikeHoldTimeInSeconds liczba całkowita Pik/Kolec/Skok Łączny czas trwania w sekundach w celu utrzymania obciążenia skokowego.

Konfiguracja regionalnego testu obciążeniowego

Obciążenie można dystrybuować między regionami, aby lepiej symulować rzeczywiste wzorce ruchu. Możesz określić regiony, z których chcesz wygenerować obciążenie, oraz ilość obciążenia, które chcesz symulować z każdego regionu. Można to zrobić, określając nazwę regionu i liczbę wystąpień aparatu, które mają być w tym regionie. Dowiedz się więcej na temat generowania obciążenia z wielu regionów.

Klawisz Typ Wartość domyślna Opis
region ciąg Nazwa regionu świadczenia usługi Azure.
engineInstances liczba całkowita Liczba wystąpień aparatu dla tego regionu świadczenia usługi Azure.

Przykład konfiguracji testu obciążenia regionalnego

Poniższy fragment kodu przedstawia konfigurację testu obciążeniowego, która określa dwa regiony eastus platformy Azure i eastasia liczbę wystąpień aparatu dla każdego regionu.

displayName: Sample Test
testPlan: sampleScript.jmx
description: 'Load test website home page'
engineInstances: 4
testId: SampleTest
testType: Locust
splitAllCSVs: False
regionalLoadTestConfig:
- region: eastus
  engineInstances: 2
- region: eastasia
  engineInstances: 2
failureCriteria:
- p90(response_time_ms) > 10000
autoStop:
  errorPercentage: 90
  timeWindow: 60