View a markdown version of this page

API für verteilte Lasttests - Verteilte Lasttests auf AWS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

API für verteilte Lasttests

Diese Lösung für Lasttests hilft Ihnen dabei, Testergebnisdaten auf sichere Weise verfügbar zu machen. Die API fungiert als „Eingangstür“ für den Zugriff auf in Amazon DynamoDB gespeicherte Testdaten. Sie können die APIs auch verwenden, um auf alle erweiterten Funktionen zuzugreifen, die Sie in die Lösung integrieren.

Diese Lösung verwendet einen Amazon Cognito-Benutzerpool, der in Amazon API Gateway zur Identifizierung und Autorisierung integriert ist. Wenn ein Benutzerpool mit der API verwendet wird, dürfen Kunden die für den Benutzerpool aktivierten Methoden nur aufrufen, nachdem sie ein gültiges Identitätstoken angegeben haben.

Weitere Informationen zur direkten Ausführung von Tests über die API finden Sie unter Signieren von Anfragen in der Amazon API Gateway-REST-API-Referenzdokumentation.

Die folgenden Operationen sind in der API der Lösung verfügbar.

Anmerkung

Weitere Informationen zu testScenario und anderen Parametern finden Sie in den Szenarien und dem Payload-Beispiel im GitHub Repository.

Informationen zum Stapel

Szenarien

Testläufe

Ausgangswert

Aufgaben

Regionen

HOLEN SIE SICH /stack-info

Description

Der GET /stack-info Vorgang ruft Informationen über den bereitgestellten Stack ab, einschließlich Erstellungszeit, Region und Version. Dieser Endpunkt wird vom Frontend verwendet.

Antwort

200 - Erfolg

Name Description

created_time

ISO 8601-Zeitstempel, als der Stack erstellt wurde (zum Beispiel) 2025-09-09T19:40:22Z

region

AWS-Region, in der der Stack bereitgestellt wird (z. B.) us-east-1

version

Version der bereitgestellten Lösung (zum Beispielv4.0.0)

Antworten auf Fehler

  • 403- Verboten: Unzureichende Berechtigungen für den Zugriff auf Stack-Informationen

  • 404- Nicht gefunden: Stack-Informationen sind nicht verfügbar

  • 500- Interner Serverfehler

GET /scenarios

Description

Die GET /scenarios Operation ermöglicht es Ihnen, eine Liste von Testszenarien abzurufen.

Antwort

Name Description

data

Eine Liste von Szenarien, einschließlich der ID, des Namens, der Beschreibung, des Status, der Laufzeit, der Tags, der Gesamtzahl der Durchläufe und der letzten Ausführung für jeden Test

POST /scenarios

Description

Der POST /scenarios Vorgang ermöglicht es Ihnen, ein Testszenario zu erstellen oder zu planen.

Anforderungstext

Name Description

testName

Der Name des Tests

testDescription

Die Beschreibung des Tests

testTaskConfigs

Ein Objekt, das concurrency (die Anzahl der parallelen Läufe), taskCount (die Anzahl der Aufgaben, die für die Ausführung eines Tests erforderlich sind) und region für das Szenario angibt

testScenario

Die Testspezifikation einschließlich Parallelität, Testzeit, Host und Methode für den Test

nativeRunMode

Ein Objekt, das den Traffic-Shape-Modus auswählt. Lassen Sie ihn weg, um den Standardmodus zu verwenden. Schließen Sie ihn mit einer maxTestDurationSeconds Sicherheitsdauer von bis zu 24 Stunden ein, um den nativen Modus auszuwählen und das hochgeladene Skript den Ladevorgang steuern zu lassen. Nur skriptbasierte Tests unterstützen den einheitlichen Modus. Weitere Informationen finden Sie unter Traffic-Shape-Modi.

testType

Der Testtyp (z. B.simple,jmeter)

fileType

Der Upload-Dateityp (z. B.none,script,zip)

tags

Ein Array von Zeichenketten zur Kategorisierung von Tests. Optionales Feld mit einer maximalen Länge von 5 (z. B.["blue", "3.0", "critical"])

scheduleDate

Das Datum, an dem ein Test ausgeführt werden soll. Wird nur bereitgestellt, wenn ein Test geplant wird (z. B.2021-02-28)

scheduleTime

Die Zeit, um einen Test auszuführen. Wird nur bereitgestellt, wenn ein Test geplant wird (z. B.21:07)

scheduleStep

Der Schritt im Planungsprozess. Nur verfügbar, wenn ein wiederkehrender Test geplant wird. (Zu den verfügbaren Schritten gehören create undstart)

cronvalue

Der Cron-Wert für die Anpassung der wiederkehrenden Planung. Falls verwendet, lassen Sie ScheduleDate und ScheduleTime weg.

cronExpiryDate

Erforderliches Datum, damit der Cron abläuft und nicht unbegrenzt läuft.

recurrence

Die Wiederholung eines geplanten Tests. Wird nur bereitgestellt, wenn ein wiederkehrender Test geplant wird (z. B.daily, weeklybiweekly, odermonthly)

Antwort

Name Description

testId

Die eindeutige ID des Tests

testName

Der Name des Tests

status

Der Status des Tests

OPTIONEN/SZENARIEN

Description

Die OPTIONS /scenarios Operation liefert eine Antwort auf die Anfrage mit den richtigen CORS-Antwortheadern.

Antwort

Name Description

testId

Die eindeutige ID des Tests

testName

Der Name des Tests

status

Der Status des Tests

HOLEN SIE SICH /scenarios/ {testId}

Description

Die GET /scenarios/{testId} Operation ermöglicht es Ihnen, die Details eines bestimmten Testszenarios abzurufen.

Anforderungsparameter

testId
  • Die eindeutige ID des Tests

    Typ: Zeichenfolge

    Erforderlich: Ja

latest
  • Abfrageparameter, um nur den letzten Testlauf zurückzugeben. Die Standardeinstellung ist true

    Typ: Boolesch

    Erforderlich: Nein

history
  • Abfrageparameter, um den Testlaufverlauf in die Antwort aufzunehmen. Der Standardwert ist true. Auf setzen, false um den Verlauf auszuschließen

    Typ: Boolesch

    Erforderlich: Nein

Antwort

Name Description

testId

Die eindeutige ID des Tests

testName

Der Name des Tests

testDescription

Die Beschreibung des Tests

testType

Die Art des Tests, der ausgeführt wird (z. B.simple,jmeter)

fileType

Der Dateityp, der hochgeladen wird (z. B.none,script,zip)

tags

Eine Reihe von Zeichenfolgen zur Kategorisierung von Tests

status

Der Status des Tests

startTime

Uhrzeit und Datum, an dem der letzte Test gestartet wurde

endTime

Uhrzeit und Datum, an dem der letzte Test beendet wurde

testScenario

Die Testspezifikation einschließlich Parallelität, Testzeit, Host und Methode für den Test

taskCount

Die Anzahl der Aufgaben, die für die Ausführung des Tests erforderlich sind

taskIds

Eine Liste von Task-IDs zum Ausführen von Tests

results

Die endgültigen Ergebnisse des Tests

history

Eine Liste der Endergebnisse vergangener Tests (ausgenommen wannhistory=false)

totalRuns

Die Gesamtzahl der Testläufe für dieses Szenario

lastRun

Der Zeitstempel des letzten Testlaufs

errorReason

Eine Fehlermeldung, die generiert wird, wenn ein Fehler auftritt

nextRun

Der nächste geplante Lauf (z. B.2017-04-22 17:18:00)

scheduleRecurrence

Die Wiederholung des Tests (z. B.,daily, weeklybiweekly,monthly)

POST /scenarios/ {testId}

Description

Der POST /scenarios/{testId} Vorgang ermöglicht es Ihnen, ein bestimmtes Testszenario abzubrechen.

Parameter anfordern

testId
  • Die eindeutige ID des Tests

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

status

Der Status des Tests

LÖSCHE /scenarios/ {testId}

Description

Mit diesem DELETE /scenarios/{testId} Vorgang können Sie alle Daten löschen, die sich auf ein bestimmtes Testszenario beziehen.

Parameter anfordern

testId
  • Die eindeutige ID des Tests

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

Name Description

status

Der Status des Tests

OPTIONEN /scenarios/ {testId}

Description

Die OPTIONS /scenarios/{testId} Operation liefert eine Antwort auf die Anfrage mit den richtigen CORS-Antwortheadern.

Antwort

Name Description

testId

Die eindeutige ID des Tests

testName

Der Name des Tests

testDescription

Die Beschreibung des Tests

testType

Die Art des Tests, der ausgeführt wird (z. B.simple,jmeter)

fileType

Der Dateityp, der hochgeladen wird (z. B.none,script,zip)

status

Der Status des Tests

startTime

Uhrzeit und Datum, an dem der letzte Test gestartet wurde

endTime

Uhrzeit und Datum, an dem der letzte Test beendet wurde

testScenario

Die Testspezifikation einschließlich Parallelität, Testzeit, Host und Methode für den Test

taskCount

Die Anzahl der Aufgaben, die zur Ausführung des Tests erforderlich sind

taskIds

Eine Liste von Task-IDs zum Ausführen von Tests

results

Die endgültigen Ergebnisse des Tests

history

Eine Liste der Endergebnisse vergangener Tests

errorReason

Eine Fehlermeldung, die generiert wird, wenn ein Fehler auftritt

GET /scenarios/ {testId} /testruns

Description

Der GET /scenarios/{testId}/testruns Vorgang ruft Testlauf-IDs für ein bestimmtes Testszenario ab, die optional nach Zeitbereich gefiltert sind. Wennlatest=true, gibt nur den letzten Testlauf zurück.

Anforderungsparameter

testId
  • Die ID des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

latest
  • Gibt nur die letzte Testlauf-ID zurück

    Typ: Boolescher Wert

    Standard: false

    Erforderlich: Nein

start_timestamp
  • ISO 8601-Zeitstempel zum Filtern von Testläufen (einschließlich). Beispiel: 2024-01-01T00:00:00Z

    Typ: Zeichenfolge (Datums-/Uhrzeitformat)

    Erforderlich: Nein

end_timestamp
  • ISO 8601-Zeitstempel zum Filtern von Testläufen bis (einschließlich). Beispiel: 2024-12-31T23:59:59Z

    Typ: Zeichenfolge (Datums-/Uhrzeitformat)

    Erforderlich: Nein

limit
  • Maximale Anzahl zurückzugebender Testläufe (wird ignoriert, wenn) latest=true

    Typ: Integer (mindestens: 1, maximal: 100)

    Standard: 20

    Erforderlich: Nein

next_token
  • Paginierungstoken aus der vorherigen Antwort, um die nächste Seite abzurufen

    Typ: Zeichenfolge

    Erforderlich: Nein

Antwort

200 — Erfolg

Name Description

testRuns

Array von Testlaufobjekten, die jeweils testRunId (string) und startTime (ISO 8601 date-time) enthalten

pagination

Objekt, das limit (Integer) und next_token (Zeichenfolge oder Null) enthält. Das Token ist Null, wenn keine weiteren Ergebnisse vorliegen

Antworten auf Fehler

  • 400- Ungültiges Zeitstempelformat oder ungültige Parameter

  • 404- Das Testszenario wurde nicht gefunden

  • 500- Interner Serverfehler

Beispielverwendung

  • Nur letzter Testlauf: GET /scenarios/test123/testruns?latest=true

  • Spätester innerhalb des Zeitbereichs: GET /scenarios/test123/testruns?latest=true&start_timestamp=2024-01-01T00:00:00Z

  • Nächste Seitenanfrage: GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==

GET /scenarios/ {testId} /testruns/ {test} RunId

Description

Der GET /scenarios/{testId}/testruns/{testRunId} Vorgang ruft vollständige Ergebnisse und Metriken für einen bestimmten Testlauf ab. Lassen Sie optional Verlaufsergebnisse aus, um eine schnellere Reaktion history=false zu ermöglichen.

Anforderungsparameter

testId
  • Die ID des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

testRunId
  • Die spezifische Testlauf-ID

    Typ: Zeichenfolge

    Erforderlich: Ja

history
  • Schließt das Verlaufs-Array als Antwort ein. Auf setzen, false um den Verlauf für eine schnellere Reaktion wegzulassen

    Typ: Boolescher Wert

    Standard: true

    Erforderlich: Nein

Antwort

200 — Erfolg

Name Description

testId

Die eindeutige ID des Tests (z. B.seQUy12LKL)

testRunId

Die spezifische Testlauf-ID (zum Beispiel2DEwHItEne)

testDescription

Beschreibung des Belastungstests

testType

Die Art des Tests (z. B.simple,jmeter)

status

Der Status des Testlaufs: completerunning,failed, oder cancelled

startTime

Die Uhrzeit und das Datum, an dem der Test gestartet wurde (z. B.2025-09-09 21:01:00)

endTime

Uhrzeit und Datum, an dem der Test beendet wurde (z. B.2025-09-09 21:18:29)

succPercent

Prozentsatz des Erfolgs (zum Beispiel100.00)

testTaskConfigs

Array von Aufgabenkonfigurationsobjektenregion, dietaskCount, und enthalten concurrency

completeTasks

Objektanzahl, die Regionen den abgeschlossenen Aufgaben zuordnet

results

Objekt mit detaillierten Metriken wie avg_lt (durchschnittliche Latenz), Perzentile (p0_0p50_0,p90_0,p95_0,,p99_0,p99_9,,p100_0), avg_rt (durchschnittliche Antwortzeit), avg_ct (durchschnittliche Verbindungszeit), stdev_rt (Reaktionszeit mit Standardabweichung), concurrencythroughput, succ (Erfolgsanzahl), fail (Fehleranzahl),, bytes testDurationmetricS3Location, rc (Antwortcode-Array) und Array labels

testScenario

Objekt, das eine Testkonfiguration mitexecution, und reporting Eigenschaften enthält scenarios

history

Reihe historischer Testergebnisse (ausgenommen wennhistory=false)

Antworten auf Fehler

  • 400- Ungültige TestID oder Test RunId

  • 404- Testlauf nicht gefunden

  • 500- Interner Serverfehler

LÖSCHEN SIE /scenarios/ {testId} /testruns/ {test} RunId

Description

Der DELETE /scenarios/{testId}/testruns/{testRunId} Vorgang löscht alle Daten und Artefakte, die sich auf einen bestimmten Testlauf beziehen. Die Testlaufdaten werden aus DynamoDB entfernt, während die tatsächlichen Testdaten in S3 unverändert bleiben.

Anforderungsparameter

testId
  • Die ID des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

testRunId
  • Die spezifische Testlauf-ID, die gelöscht werden soll

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

204 — Erfolgreich

Der Testlauf wurde erfolgreich gelöscht (kein Inhalt zurückgegeben)

Antworten auf Fehler

  • 400- Ungültige TestID oder Test RunId

  • 403- Verboten: Unzureichende Berechtigungen zum Löschen des Testlaufs

  • 404- Testlauf nicht gefunden

  • 409- Konflikt: Der Testlauf läuft gerade und kann nicht gelöscht werden

  • 500- Interner Serverfehler

GET /scenarios/ {testId} /baseline

Description

Der GET /scenarios/{testId}/baseline Vorgang ruft das angegebene Baseline-Testergebnis für ein Szenario ab. Gibt je nach data Parameter entweder die Baseline-Testlauf-ID oder die vollständigen Baselinergebnisse zurück.

Anforderungsparameter

testId
  • Die ID des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

data
  • Gibt die vollständigen Basisdaten des Testlaufs zurücktrue, wenn, andernfalls nur der Test RunId

    Typ: Boolescher Wert

    Standard: false

    Erforderlich: Nein

Antwort

200 — Erfolg

Wann data=false (Standard):

Name Description

testId

Die ID des Testszenarios (zum BeispielseQUy12LKL)

baselineTestRunId

Die Baseline-Testlauf-ID (zum Beispiel2DEwHItEne)

Wanndata=true:

Name Description

testId

Die Testszenario-ID (zum BeispielseQUy12LKL)

baselineTestRunId

Die Baseline-Testlauf-ID (zum Beispiel2DEwHItEne)

baselineData

Objekt mit den Ergebnissen des vollständigen Testlaufs (dieselbe Struktur wieGET /scenarios/{testId}/testruns/{testRunId})

Antworten auf Fehler

  • 400- Ungültiger TestID-Parameter

  • 404- Das Testszenario wurde nicht gefunden oder es wurde kein Basiswert festgelegt

  • 500- Interner Serverfehler

PUT /scenarios/ {testId} /baseline

Description

Der PUT /scenarios/{testId}/baseline Vorgang bestimmt einen bestimmten Testlauf als Grundlage für den Leistungsvergleich. Pro Szenario kann nur ein Basiswert festgelegt werden.

Anforderungsparameter

testId
  • Die ID des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

Anforderungstext

Name Description

testRunId

Die Testlauf-ID, die als Basiswert festgelegt werden soll (z. B.2DEwHItEne)

Antwort

200 — Erfolg

Name Description

message

Bestätigungsnachricht (zum BeispielBaseline set successfully)

testId

Die ID des Testszenarios (zum BeispielseQUy12LKL)

baselineTestRunId

Die festgelegte Baseline-Testlauf-ID (z. B.2DEwHItEne)

Antworten auf Fehler

  • 400- Ungültige TestID oder Test RunId

  • 404- Testszenario oder Testlauf nicht gefunden

  • 409- Konflikt: Der Testlauf kann nicht als Ausgangswert festgelegt werden (z. B. fehlgeschlagener Test)

  • 500- Interner Serverfehler

LÖSCHEN SIE /scenarios/ {testId} /baseline

Description

Der DELETE /scenarios/{testId}/baseline Vorgang löscht den Basiswert für ein Szenario, indem er auf eine leere Zeichenfolge gesetzt wird.

Anforderungsparameter

testId
  • Die ID des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

Antwort

204 — Erfolg

Die Baseline wurde erfolgreich gelöscht (es wurde kein Inhalt zurückgegeben)

Antworten auf Fehler

  • 400- Ungültige TestID

  • 500- Interner Serverfehler

/tasks ABRUFEN

Description

Der GET /tasks Vorgang ermöglicht es Ihnen, eine Liste der laufenden Amazon Elastic Container Service (Amazon ECS) -Aufgaben abzurufen.

Antwort

Name Description

tasks

Eine Liste von Aufgaben-IDs für die Ausführung von Tests

OPTIONEN /Aufgaben

Description

Die OPTIONS /tasks Aufgabenoperation liefert eine Antwort auf die Anfrage mit den richtigen CORS-Antwortheadern.

Antwort

Name Description

taskIds

Eine Liste von Task-IDs zum Ausführen von Tests

HOLEN SIE SICH /regions

Description

Mit diesem GET /regions Vorgang können Sie die regionalen Ressourceninformationen abrufen, die für die Ausführung eines Tests in dieser Region erforderlich sind.

Antwort

Name Description

testId

Die Regions-ID

ecsCloudWatchLogGroup

Der Name der CloudWatch Amazon-Protokollgruppe für die AWS Fargate-Aufgaben in der Region

region

Die Region, in der die Ressourcen in der Tabelle existieren

subnetA

Die ID eines der Subnetze in der Region

subnetB

Die ID eines der Subnetze in der Region

taskCluster

Der Name des AWS Fargate-Clusters in der Region

taskDefinition

Der ARN der Aufgabendefinition in der Region

taskImage

Der Name des Task-Images in der Region

taskSecurityGroup

Die ID der Sicherheitsgruppe in der Region

OPTIONEN /Regionen

Description

Die OPTIONS /regions Operation liefert eine Antwort auf die Anfrage mit den richtigen CORS-Antwortheadern.

Antwort

Name Description

testId

Die Regions-ID

ecsCloudWatchLogGroup

Der Name der CloudWatch Amazon-Protokollgruppe für die AWS Fargate-Aufgaben in der Region

region

Die Region, in der die Ressourcen in der Tabelle existieren

subnetA

Die ID eines der Subnetze in der Region

subnetB

Die ID eines der Subnetze in der Region

taskCluster

Der Name des AWS Fargate-Clusters in der Region

taskDefinition

Der ARN der Aufgabendefinition in der Region

taskImage

Der Name des Task-Images in der Region

taskSecurityGroup

Die ID der Sicherheitsgruppe in der Region