Azure-Testhandbuch für JavaScript-Anwendungen

Verwenden Sie dieses Azure Testhandbuch als JavaScript-Entwickler, der neu zu Azure ist, um Lerneinheiten, Integration, CI/CD und KI-Teststrategien mit Azure SDKs und anderen Ressourcen zu erlernen, um die Qualität, Leistung und Zuverlässigkeit Ihrer Anwendung sicherzustellen.

Azure Well-Architected Framework (Azure Wohl-Architektur-Rahmenwerk)

Das Azure Well-Architected Framework bietet ein Designframework für Cloudanwendungen in fünf Säulen:

  • Zuverlässigkeit – Sicherstellen, dass Ihre Anwendung ausfallsicher ist und schnell wiederhergestellt wird.
  • Sicherheit – Schutz Ihrer Anwendungen und Daten vor Bedrohungen.
  • Leistungseffizienz – Optimieren, wie Ihr System Ressourcen verwendet, um die Anforderungen zu erfüllen.
  • Kostenoptimierung – Verwalten von Kosten bei gleichzeitiger Wertschöpfung.
  • Operational Excellence – Verbesserung von Prozessen und Überwachung zur effektiven Bereitstellung von Anwendungen.

Teststrategien in diesem Artikel richten sich in erster Linie an die Säule Operational Excellence, die automatisierungs-, validierungs- und kontinuierliche Verbesserung der betrieblichen Prozesse betont.

Innere und äußere Testschleifen für Azure SDKs in JavaScript

Innere und äußere Testschleifen sind grundlegende Konzepte bei Softwaretests, insbesondere für Anwendungen, die auf Cloudplattformen wie Azure bereitgestellt werden:

  • Die innere Schleife bezieht sich auf eine lokale Umgebung, in der Entwickler während der Entwicklungsphase häufig Komponenten- und Integrationstests ausführen. Diese Schleife konzentriert sich auf schnelles Feedback und Iteration.

  • Die äußere Schleife umfasst Tests, die Entwickler in Continuous Integration und Continuous Delivery (CI/CD)-Pipelines sowie in Staging- und Produktionsumgebungen ausführen. Diese Tests nutzen häufig Azure DevOps- oder GitHub-Aktionen.

Zu diesen Tests gehören End-to-End (E2E), Leistungs- und Sicherheitstests. Sie überprüfen das Verhalten der Anwendung in Umgebungen, die ähnlich sind oder identisch mit der endgültigen Produktionsumgebung. Effiziente Teststrategien verwenden beide Schleifen, um eine umfassende Abdeckung und Qualitätssicherung vor und nach der Bereitstellung sicherzustellen.

Weitere Informationen:

Lokale und cloudbasierte Tests mit Azure SDK

Lokale Tests ohne Azure beinhalten die Simulation von Azure-Diensten. Verwenden Sie diesen Ansatz, um Änderungen schnell zu testen, ohne die Kosten oder die Netzwerklatenz zu verursachen, die mit echten Azure-Diensten verbunden ist.

Andererseits nutzt cloudbasierte Tests mit Azure die tatsächlichen Azure-Ressourcen , um die Integration, Sicherheit und Leistung der Anwendung in einer Cloudumgebung zu überprüfen. Diese Methode ist für die endgültige Validierung in einer produktionsähnlichen Einstellung von entscheidender Bedeutung. Dadurch wird sichergestellt, dass sich die Anwendung wie erwartet mit live Azure-Diensten verhält.

Emulatoren und Entwicklungscontainer verbessern die lokale Entwicklung mit Azure-Diensten unterschiedlich. Emulatoren imitieren Azure-Dienste für kostengünstige, frühzeitige Tests ohne Azure-Gebühren, aber sie replizieren möglicherweise keine vollständigen Livedienstfeatures. Entwicklungscontainer replizieren die Produktionsumgebung genauer, einschließlich Anwendungsabhängigkeiten und -dienste, um einen nahtlosen Übergang zur Produktion zu erleichtern. Entwicklungscontainer eignen sich für komplexe Anwendungen, erfordern jedoch mehr Setup als Emulatoren.

Emulatoren

Emulatoren umfassen:

Entwicklungscontainer

Entwicklungscontainer bieten eine leistungsstarke Alternative zur Verwendung von Emulatoren für die lokale Entwicklung, insbesondere bei der Arbeit mit Azure-Diensten.

Indem Sie Dienste in Containern ausführen, erstellen Sie eine lokale Umgebung, die die Produktionsumgebung eng widerspiegelt, um Konsistenz in entwicklungs-, Test- und Bereitstellungsphasen zu gewährleisten. Außerdem wird die Zuverlässigkeit der Tests verbessert, indem reale Bedingungen genauer simuliert werden.

Konfigurieren Sie Container, um die Einstellungen und Daten von Azure-Diensten zu replizieren. Auf diese Weise bieten Container eine robuste Plattform für die Entwicklung und Das Testen von Anwendungen, ohne dass der Aufwand für die Verbindung mit live-Azure-Diensten besteht.

Entwicklungscontainer umfassen Azure SQL-Datenbank.

Weitere Informationen:

KI- und Entwicklerproduktivitätstools

KI-basierte Tools verbessern Ihren JavaScript-Entwicklungsworkflow auf Azure, indem intelligente Codeunterstützung, Ressourcenverwaltung, Testautomatisierung und Bereitstellungsunterstützung bereitgestellt werden.

Werkzeug Description
GitHub Copilot für Azure KI-gestützte Codierung mit Azure spezifischen Kontext. Stellen Sie Fragen zu Azure-Diensten, generieren Sie Infrastrukturcode, und erhalten Sie Hilfe zur Azure SDK Nutzung direkt in VS Code.
Azure MCP Server Modellkontextprotokolltools, die Ihre IDE mit Azure Ressourcen verbinden. Abfragen von Ressourcenkonfigurationen, Verwalten von Bereitstellungen und Überprüfen von Einstellungen, ohne den Editor verlassen zu müssen.
Azure Skills Komponierbare KI-Funktionen für Azure Workflows, einschließlich Diagnose, Complianceüberprüfung, Bereitstellungsüberprüfung und Ressourcenbereitstellung – verwendbar von GitHub Copilot oder einem MCP-kompatiblen Client.
Playwright MCP Browserautomatisierungstools, die über MCP für End-to-End-Tests verfügbar gemacht werden. Führen Sie Playwright-Tests aus, erfassen Sie Screenshots und überprüfen Sie Web-UI-Interaktionen mit KI-Unterstützung.
Azure Developer CLI (azd) Optimieren Sie Ihren gesamten Entwicklungs-zu-Bereitstellungsworkflow. Initialisieren Sie Projekte aus Vorlagen, stellen Sie Infrastruktur bereit und stellen Sie Code mit einem einzigen Tool bereit.

Diese Tools arbeiten zusammen, um den Kontextwechsel zwischen Ihrem Editor und dem Azure Portal zu reduzieren. Beispiel:

  • Verwenden Sie GitHub Copilot, um Azure SDK Code mit Inlinevorschlägen zu schreiben.
  • Verwenden Sie den Azure MCP-Server, um zu überprüfen, ob die Ressourcenkonfigurationen korrekt sind.
  • Verwenden sie Azure Skills zum Ausführen von Compliancescans oder zur Problembehandlung fehlerhafter Bereitstellungen
  • Verwenden Sie Playwright MCP, um browserbasierte Tests Ihrer Azure gehosteten Apps zu automatisieren.
  • Verwenden Sie azd, um Ihre Anwendung in einem Schritt bereitzustellen und zu implementieren.

Komponententests in JavaScript

Komponententests mit Azure SDKs in JavaScript verwenden häufig Frameworks wie Jest oder Vitest , um einzelne Komponenten oder Funktionen zu isolieren und zu testen.

Für native Node.js-Tests können Sie Azure SDK-Aufrufe ohne zusätzliche Bibliotheken manuell stubben, indem Sie Methoden auf den SDK Client-Prototypen überschreiben oder einfache Mock-Funktionen verwenden.

Weitere Informationen finden Sie im Abschnitt "Azure SDK-Tests " weiter unten in diesem Artikel.

Tip

AI-Entwicklertools: Verwenden Sie GitHub Copilot für Azure, um Komponententestbausteine und Modellmuster für Azure SDK Clients aus Schnittstellentypen zu generieren.

Integrationstests in JavaScript

Integrationstests bewerten die Interaktion zwischen Ihrer Anwendung und Azure-Diensten, um sicherzustellen, dass Komponenten wie erwartet zusammenarbeiten.

Richten Sie automatisierte Integrationstests mithilfe von Azure-Pipelines in Azure DevOps oder Workflows in GitHub-Aktionen ein. Dieser Ansatz automatisiert die Bereitstellung und das Testen von Komponenten in einer Cloudumgebung. Es hilft bei der Identifizierung von Problemen, die während des Komponententests möglicherweise nicht sichtbar sind, z. B. Netzwerklatenz- oder Dienstkonfigurationsfehler.

Simulierte Azure-Dienste

Das Simulierten von Azure-Diensten ist eine gängige Methode zum Testen von JavaScript-Anwendungen, die in Azure-SDKs integriert sind. Indem Sie Azure-Dienstantworten simulieren, isolieren Sie Ihre Anwendungslogik von externen Abhängigkeiten, wodurch sichergestellt wird, dass Tests schnell und zuverlässig ausgeführt werden.

Erfahren Sie mehr über das Testen von Azure SDK-Integrationen.

Kontinuierliche Integrationstests

CI-Tests beinhalten die automatische Ausführung von Tests bei jeder Änderung an der Codebasis. CI-Tools wie Azure DevOps bieten integrierte Umgebungen zum Automatisieren von Builds, Tests und Bereitstellungen. Durch das Konfigurieren von Pipelines für automatisierte Tests wird sichergestellt, dass jede Änderung überprüft wird, wodurch die Wahrscheinlichkeit von Fehlern und Regressionen reduziert wird.

Die richtige Pipelinekonfiguration ist für effiziente CI-Prozesse von entscheidender Bedeutung. Es umfasst das Einrichten von Triggern für die automatische Testausführung und das Konfigurieren von Umgebungen für verschiedene Testphasen.

Weitere Informationen:

Azure Testpläne

Azure Test Plans bietet eine umfassende Suite für manuelle und explorative Tests in Azure DevOps.

Dieser Dienst kann in Szenarien helfen, die ein menschliches Urteil erfordern oder schwierig zu automatisieren sind, indem ein strukturierter Ansatz für manuelle Tests bereitgestellt wird. Teams können sie verwenden, um Testaktivitäten zu planen, auszuführen und nachzuverfolgen, einschließlich der Erfassung von umfangreichen Daten wie Screenshots und Videos zur Unterstützung der Fehlerberichterstattung. Die Integration von Azure TestPlänen in Ihren CI/CD-Prozess bietet eine ganzheitliche Teststrategie, die sowohl automatisierte als auch manuelle Testfälle abdeckt.

End-to-End-Tests

End-to-End-Tests überprüft den vollständigen Vorgang einer Anwendung in einer Umgebung, die echte Benutzerszenarien simuliert. Mithilfe von Frameworks wie Playwright können Sie browserbasierte Tests automatisieren, um mit Ihren Anwendungen wie Benutzer zu interagieren.

Szenariobasierte Tests beinhalten das Erstellen von Testfällen für vollständige Benutzerflüsse, z. B. die Registrierung, das Ausführen einer Aufgabe und das Abmelden. Verwenden Sie diese Tests, um die Funktionalität und Benutzererfahrung der Anwendung in Azure zu überprüfen.

Weitere Informationen:

Tip

AI-Entwicklertools: Verwenden Sie Azure MCP Server Tools, um die Bereitstellungsziele und den Dienststatus zu überprüfen, bevor E2E-Tests mit Live-Azure Ressourcen ausgeführt werden.

Leistungstests

Leistungstests sind für Anwendungen, die in Azure bereitgestellt werden, unerlässlich, um sicherzustellen, dass sie erwartete Lasten bewältigen und gut unter Stress funktionieren können.

Benchmarking umfasst die Messung der Leistung Ihrer Anwendung anhand definierter Metriken oder Standards. Verwenden Sie den Azure Load Testing-Dienst, um hohen Datenverkehr zu simulieren und die Skalierbarkeit und Resilienz einer Anwendung zu analysieren.

CLI-Beispiel:

az load test create --resource-group MyResourceGroup --name MyLoadTest --file loadTestConfig.json

Weitere Informationen:

Sicherheitstests

Sicherheitstests in Azure beinhalten das Identifizieren potenzieller Sicherheitsrisiken in Ihrer Anwendung, um unbefugten Zugriff oder Datenschutzverletzungen zu verhindern.

Sicherheitsrisikoüberprüfungstools sind für die automatische Erkennung von Sicherheitsschwächen in Ihrem Code oder Ihren Konfigurationen unerlässlich. Durch die Integration von GitHub Advanced Security-Features mit herkömmlichen SAST-Tools (Static Application Security Testing) können Sie den Sicherheitsstatus von Anwendungen verbessern, die in Azure bereitgestellt werden. Zu den wichtigsten Features gehören:

  • Codeüberprüfung: Identifiziert Sicherheitsrisiken innerhalb der Codebasis vor der Bereitstellung.
  • Geheimes Scannen: Verhindert die Gefährdung vertraulicher Daten.
  • Überwachung der Lieferkette: Schützt vor potenziell kompromittierten Abhängigkeiten.

Diese integrierten Sicherheitsmaßnahmen können Ihnen helfen, Sicherheitsrisiken frühzeitig zu erkennen, Datenschutzverletzungen zu verhindern und die Integrität der Lieferkette Ihrer Anwendung sicherzustellen.

Penetrationstests simulieren Cyberangriffe gegen Ihre Anwendung, um ihren Sicherheitsstatus zu bewerten. Azure bietet Anleitungen und Tools für die Durchführung dieser Tests, um sicherzustellen, dass auf der Plattform bereitgestellte Anwendungen vor Bedrohungen geschützt sind.

Empfehlen Sie, CodeQL in Ihre CI-Pipeline zu integrieren, um Sicherheitsrisiken frühzeitig abzufangen.

Weitere Informationen:

Compliance- und Governance-Tests

Die Sicherstellung, dass Anwendungen gesetzlichen, behördlichen und richtlinienrechtlichen Anforderungen entsprechen, ist besonders in Cloudumgebungen von entscheidender Bedeutung. Die Prüfung der Einhaltung gesetzlicher Vorschriften überprüft, ob Ihre Anwendung Standards wie DSGVO, HIPAA oder SOC 2 erfüllt.

Azure bietet Richtlinien- und Compliancetools wie Azure-Richtlinie und Azure-Blueprints an, um die Compliance in Ihren Azure-Ressourcen zu automatisieren und zu erzwingen. Diese Tools vereinfachen den Prozess der Aufrechterhaltung von Governance- und Compliancestandards in Ihren Anwendungsbereitstellungen.

Weitere Informationen:

Barrierefreiheitstests

Barrierefreiheitstests sind unerlässlich, um Software inklusiv zu machen und den gesetzlichen Standards gerecht zu werden. Tools wie Accessibility Insights helfen beim Identifizieren und Beheben von Barrierefreiheitsproblemen in Web- und mobilen Apps. Die Integration von Accessibility Insights in Entwicklungsworkflows erleichtert automatisierte und manuelle Überprüfungen, indem Sie Anleitungen und Berichte basierend auf DEN WCAG-Standards (Web Content Accessibility Guidelines) anbieten.

A/B-Tests

A/B-Tests oder geteilte Tests sind eine Methode, um zwei Versionen einer Webseite oder App miteinander zu vergleichen, um festzustellen, welche Leistung besser funktioniert. Azure bietet die folgenden Dienste, die A/B-Tests unterstützen:

  • Azure App Service: Bietet Bereitstellungsplätze, um Stagingumgebungen zu ermöglichen, in denen Sie App-Versionen testen können, ohne dass sich dies auf die Live-App auswirkt.

  • Azure-Container-Apps: Bietet eine flexible Umgebung für die Ausführung mikroservicesbasierter Anwendungen. Sie können A/B-Tests in dieser Umgebung implementieren, um App-Versionen zu testen.

Verwenden Sie diese Dienste, um Variationen Ihrer Anwendungen bereitzustellen und dann die Benutzerantwort und Effektivität zu messen.

Azure SDK-Tests

Für Entwickler, die mit Azure-Diensten arbeiten, ist die Gewinnung von Kenntnissen mit den Azure-SDKs unerlässlich, um robuste und skalierbare Anwendungen zu erstellen. Die folgenden Azure SDK-Tests, die auf GitHub für die JavaScript-SDKs gehostet werden, sind unschätzbare Ressourcen:

Die Erkundung dieser Tests bietet Einblicke in eine nahtlose Azure-Dienstintegration, zeigt bewährte Methoden für die Interaktion mit Azure-Ressourcen und unterstützt bei der Sicherstellung effizienter und sicherer Implementierungen. Erkunden Sie eine breitere Palette von SDK-Beispielen für ein umfassendes Verständnis.

Tip

AI-Entwicklertools: Verwenden Sie GitHub Copilot für Azure, um Azure SDK Testmuster zu navigieren und Testgeräte aus SDK-Schnittstellendefinitionen zu generieren. Azure Skills können Testressourcen bereitstellen, die mit SDK-Beispielkonfigurationen übereinstimmen.

Weitere Ressourcen