API zum Testen verteilter Lasten - 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 zum Testen verteilter Lasten

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

Diese Lösung verwendet einen Amazon Cognito Cognito-Benutzerpool, der in Amazon API Gateway zur Identifizierung und Autorisierung integriert ist. Wenn ein Benutzerpool mit der API verwendet wird, dürfen Clients nur Methoden aufrufen, die vom Benutzerpool aktiviert wurden, nachdem sie ein gültiges Identitätstoken bereitgestellt haben.

Weitere Informationen zur Ausführung von Tests direkt über die API finden Sie unter Signing Requests 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 Payload-Beispielen im GitHub Repository.

Informationen zum Stapel

Szenarien

Testläufe

Basislinie

Aufgaben

Regionen

ERHALTE /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 (z. B.v4.0.0)

Antworten auf Fehler

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

  • 404- Nicht gefunden: Stack-Informationen 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 Testläufe und der letzten Ausführung für jeden Test

POST /szenarien

Description

Die POST /scenarios Operation 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 parallel Läufe), taskCount (die Anzahl der Aufgaben, die zur 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

testType

Der Testtyp (zum Beispielsimple,jmeter)

fileType

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

tags

Eine Reihe 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 angegeben, wenn ein Test geplant wird (z. B.2021-02-28)

scheduleTime

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

scheduleStep

Der Schritt im Planungsprozess. Wird nur bereitgestellt, 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 Terminplanung. 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

GET /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 einstellen, 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 Typ der Datei, die hochgeladen wird (z. B.none,script,zip)

tags

Eine Reihe von Zeichenketten zur Kategorisierung von Tests

status

Der Status des Tests

startTime

Die Uhrzeit und das 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 Aufgaben IDs zum Ausführen von Tests

results

Die endgültigen Ergebnisse des Tests

history

Eine Liste der Endergebnisse früherer 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 (zum Beispiel2017-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ÖSCHEN SIE /scenarios/ {testId}

Description

Die DELETE /scenarios/{testId} Operation ermöglicht es Ihnen, alle Daten zu 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 Typ der Datei, die hochgeladen wird (z. B.none,script,zip)

status

Der Status des Tests

startTime

Die Uhrzeit und das 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 Aufgaben 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 einen Testlauf IDs für ein bestimmtes Testszenario ab, optional gefiltert nach Zeitbereich. Wannlatest=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 zu erhalten

    Typ: Zeichenfolge

    Erforderlich: Nein

Antwort

200 — Erfolg

Name Description

testRuns

Array von Testlaufobjekten, die jeweils testRunId (Zeichenfolge) und startTime (ISO 8601 Datum/Uhrzeit) enthalten

pagination

Objekt, das limit (Ganzzahl) 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

  • Anfrage zur nächsten Seite: GET /scenarios/test123/testruns?limit=20&next_token=eyJ0ZXN0SWQiOiJzZVFVeTEyTEtMIiwic3RhcnRUaW1lIjoiMjAyNC0wMS0xM1QxNjo0NTowMFoifQ==

GET /scenarios/ {testId} /testruns/ {} testRunId

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 schneller reagieren history=false zu können.

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. Stellen Sie auf einfalse, um den Verlauf für eine schnellere Antwort auszulassen

    Typ: Boolescher Wert

    Standard: true

    Erforderlich: Nein

Antwort

200 — Erfolgreich

Name Description

testId

Die eindeutige ID des Tests (zum BeispielseQUy12LKL)

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

Erfolgsquote (zum Beispiel100.00)

testTaskConfigs

Array von Aufgabenkonfigurationsobjektenregion, dietaskCount, und enthalten concurrency

completeTasks

Objekte ordnen Regionen der Anzahl abgeschlossener Aufgaben zu

results

Objekt mit detaillierten Kennzahlen wie avg_lt (durchschnittliche Latenz), Perzentile (p0_0,,,,p50_0,p90_0,p100_0) p95_0 p99_0p99_9, avg_rt (durchschnittliche Reaktionszeit), (durchschnittliche Verbindungszeit), avg_ct (durchschnittliche Verbindungszeit), stdev_rt (Reaktionszeit mit Standardabweichung),, concurrencythroughput, succ (Anzahl der Erfolge), fail (Anzahl der Fehler),,, bytes testDurationmetricS3Location, rc (Antwortcode-Array) und Array labels

testScenario

Objekt, das eine Testkonfiguration mit Eigenschaftenexecution, und reporting enthält scenarios

history

Array mit historischen Testergebnissen (ausgenommen wannhistory=false)

Antworten auf Fehler

  • 400- Ungültige TestID oder testRunId

  • 404- Testlauf nicht gefunden

  • 500- Interner Serverfehler

LÖSCHEN Sie /scenarios/ {testId} /testruns/ {} testRunId

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

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

Antworten auf Fehler

  • 400- Ungültige TestID oder testRunId

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

  • 404- Testlauf wurde 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 ID des Ausgangstestlaufs oder die vollständigen Baseline-Ergebnisse 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 testRunId

    Typ: Boolescher Wert

    Standard: false

    Erforderlich: Nein

Antwort

200 — Erfolgreich

Wann data=false (Standard):

Name Description

testId

Die ID des Testszenarios (zum BeispielseQUy12LKL)

baselineTestRunId

Die ID des Ausgangstestlaufs (z. B.2DEwHItEne)

Wanndata=true:

Name Description

testId

Die ID des Testszenarios (zum BeispielseQUy12LKL)

baselineTestRunId

Die ID des Ausgangstestlaufs (z. B.2DEwHItEne)

baselineData

Vollständiges Objekt mit den Ergebnissen des Testlaufs (gleiche 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 legt einen bestimmten Testlauf als Grundlage für den Leistungsvergleich fest. Pro Szenario kann nur eine Basislinie festgelegt werden.

Anforderungsparameter

testId
  • Die ID des Testszenarios

    Typ: Zeichenfolge

    Erforderlich: Ja

Anforderungstext

Name Description

testRunId

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

Antwort

200 — Erfolgreich

Name Description

message

Bestätigungsnachricht (zum BeispielBaseline set successfully)

testId

Die ID des Testszenarios (zum BeispielseQUy12LKL)

baselineTestRunId

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

Antworten auf Fehler

  • 400- Ungültige TestID oder testRunId

  • 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

Die DELETE /scenarios/{testId}/baseline Operation 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

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

Antworten auf Fehler

  • 400- Ungültige TestID

  • 500- Interner Serverfehler

GET /tasks

Description

Mit GET /tasks diesem Vorgang können Sie eine Liste der laufenden Amazon Elastic Container Service (Amazon ECS) -Aufgaben abrufen.

Antwort

Name Description

tasks

Eine Liste von Aufgaben IDs zum Ausführen von Tests

OPTIONEN /Aufgaben

Description

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

Antwort

Name Description

taskIds

Eine Liste von Aufgaben IDs zum Ausführen von Tests

GET /regions

Description

Mit diesem GET /regions Vorgang können Sie die regionalen Ressourceninformationen abrufen, die für die Durchfü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 Amazon 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

Der OPTIONS /regions Vorgang 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 Amazon 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