Kursinhalt
Einführung in die QA-Automatisierungstests
Einführung in die QA-Automatisierungstests
Einführung in eine CI/CD-Pipeline
Was ist CI/CD?
-
CI steht für Continuous Integration: Es ist eine Praxis, bei der Entwickler ihren Code häufig in ein gemeinsames Repository integrieren. Ein wichtiger Teil von CI ist jedoch sicherzustellen, dass Änderungen, die von einem Entwickler vorgenommen werden, das System nicht beeinträchtigen, wenn sie mit den Änderungen anderer kombiniert werden. Jedes Mal, wenn Code integriert wird, werden automatisierte Tests durchgeführt, um sicherzustellen, dass alles funktioniert;
-
CD steht für Continuous Delivery/Deployment: Sobald der Code integriert und getestet ist, besteht der nächste Schritt darin, ihn automatisch bereitzustellen. Bei der Continuous Delivery wird die Anwendung automatisch für die Freigabe in einer Produktionsumgebung vorbereitet, aber ein Mensch kann entscheiden, wann sie tatsächlich live geht. Bei der Continuous Deployment wird der Code nach bestandenen Tests automatisch in die Produktion bereitgestellt, ohne menschliches Eingreifen;
Eine CI/CD-Pipeline für eine Node.js-Anwendung umfasst typischerweise die folgenden Schritte:
-
Code Commit: Ein Entwickler schreibt Code und pusht ihn in ein Versionskontrollsystem wie GitHub oder GitLab;
-
Automatisiertes Testen (CI): Sobald der Code committet ist, führt das CI-System automatisierte Tests durch, um sicherzustellen, dass die neuen Änderungen die Anwendung nicht beeinträchtigen. Dies ist Teil des größeren Regressionstests;
-
Build (CI): Wenn die Tests bestanden werden, wird die Anwendung gebaut. Für Node.js könnte dies Aufgaben wie das Bündeln von JavaScript-Dateien, das Kompilieren von TypeScript (falls verwendet) oder das Vorbereiten von Assets umfassen;
-
Bereitstellung: Die Anwendung wird automatisch auf dem Host bereitgestellt. Einige beliebte Hosting-Plattformen sind Microsoft Azure, AWS, Heroku usw;
Werkzeuge, die in CI/CD für Node.JS verwendet werden
-
GitHub / GitLab / Bitbucket: Für Versionskontrolle und Repository-Management;
-
Jenkins / CircleCI / GitLab CI: Diese Tools helfen, den Prozess des Testens und Bauens der Anwendung zu automatisieren, wenn Code in das Repository gepusht wird;
-
Docker: Docker wird im Bereitstellungsschritt verwendet. Es verpackt die Node.js-App in einen virtuellen Container, was die Bereitstellung in jeder Umgebung erleichtert;
-
Microsoft Azure / AWS / Heroku: Dienste, bei denen Ihre Node.js-App gehostet und bereitgestellt werden kann;
Wir werden GitHub für das Repository-Management und Jenkins verwenden, um den Testprozess zu automatisieren.
Die Bereitstellung der Anwendung kann direkt nach den automatisierten Tests in Jenkins integriert werden, erfordert jedoch Kenntnisse über Docker, was ein geeigneteres Thema für einen DevOps-Kurs ist.
1. Wofür steht CI in CI/CD?
2. Was ist der Zweck von Continuous Integration (CI)?
3. Welches der folgenden ist ein Beispiel für eine Hosting-Plattform, die in einer CI/CD-Pipeline für Node.js-Anwendungen verwendet wird?
4. Warum wird Docker in der CI/CD-Pipeline verwendet?
Danke für Ihr Feedback!