Einführung in die kontinuierliche Integration und die automatisierte Testbereitstellung von Jenkins

1. Was ist kontinuierliche Integration?

Kontinuierliche Integration (kontinuierliche Integration, kurz CI genannt) bezieht sich auf die häufige Integration von Code in das Backbone.

Der Zweck der kontinuierlichen Integration besteht darin, eine schnelle Iteration von Produkten bei gleichzeitiger Beibehaltung einer hohen Qualität zu ermöglichen. Seine Kernmaßnahme besteht darin, dass Code automatisierte Tests bestehen muss, bevor er in die Hauptlinie integriert wird. Solange ein einzelner Testfall fehlschlägt, kann er nicht integriert werden.

Mit kontinuierlicher Integration können Teams schnell von einer Funktion zu einer anderen wechseln. Kurz gesagt, ein großer Teil der agilen Softwareentwicklung ist auf kontinuierliche Integration zurückzuführen.


2. Der Prozess der kontinuierlichen Integration

  • begehen

Der erste Schritt in diesem Prozess besteht darin, dass Entwickler Code an das Code-Repository übermitteln. Alle nachfolgenden Schritte beginnen mit einem einzigen Commit des nativen Codes.

  • Test (erste Runde)

Das Code-Warehouse ist mit einem Hook zum Festschreiben konfiguriert. Solange der Code übermittelt oder der Trunk zusammengeführt wird, wird der automatisierte Code ausgeführt

  • Bauen

Nach Bestehen der ersten Testrunde kann der Code in den Trunk eingebunden werden, auch wenn er zugestellt werden kann. Nach der Lieferung wird zuerst gebaut (gebaut) und dann mit der zweiten Testrunde begonnen.

Die sogenannte Konstruktion bezieht sich auf die Konvertierung von Quellcode in tatsächlichen Code, der ausgeführt werden kann, z. B. das Installieren von Abhängigkeiten, das Konfigurieren verschiedener Ressourcen (Stylesheet-JS-Skripte, Bilder) usw.

  • Test (zweite Runde)

Nachdem der Build abgeschlossen ist, ist eine zweite Testrunde erforderlich. Wenn in der ersten Runde alle Testinhalte abgedeckt wurden, kann die zweite Runde weggelassen werden. Natürlich sollte zu diesem Zeitpunkt auch der Konstruktionsschritt vor die erste Testrunde verschoben werden.

  • einsetzen

Nach der zweiten Testrunde ist der aktuelle Code eine Version (Artefakt), die direkt bereitgestellt werden kann. Archivieren Sie alle Dateien dieser Version (tarfilename.tar*) und senden Sie sie an den Produktionsserver.

  • Rollback

Sobald in der aktuellen Version ein Problem auftritt, ist ein Rollback zum Build-Ergebnis der vorherigen Version erforderlich. Am einfachsten ist es, den symbolischen Link so zu ändern, dass er auf das Verzeichnis der vorherigen Version verweist.


3. Die Komponenten der kontinuierlichen Integration

1. Ein automatischer Konstruktionsprozess, vom Auschecken des Codes über das Kompilieren und Erstellen, das Ausführen von Tests, das Aufzeichnen von Ergebnissen, Teststatistiken usw., erfolgt automatisch und ohne manuelles Eingreifen.

2. Um die Wartbarkeit des Codes sicherzustellen, ist ein Code-Repository, also eine Versionskontrollsoftware, erforderlich. Als Materialbibliothek für den Konstruktionsprozess wird im Allgemeinen SVN oder Git verwendet.

3. Als kontinuierlicher Integrationsserver ist Jenkins ein kontinuierlicher Integrationsserver mit einfacher Konfiguration und einfacher Verwendung.


Viertens die Vorteile der kontinuierlichen Integration

  • Reduzieren Sie das Risiko, da die kontinuierliche Integration weiterhin erstellt, kompiliert und testet, Probleme sehr früh erkannt werden können und die Reparaturkosten geringer sind
  • Überprüfen Sie kontinuierlich den Systemzustand, reduzieren Sie Probleme durch Release-Risiken und reduzieren Sie sich wiederholende Arbeiten
  • Kontinuierliche Bereitstellung, Bereitstellung bereitstellbarer Einheitenpakete
  • Kontinuierliche Lieferung gebrauchsfertiger Versionen
  • Steigern Sie das Selbstvertrauen des Teams

Fünftens: Jenkins Einführung

Jenkins ist ein beliebtes Open-Source-Tool für die kontinuierliche Integration (Continuous lntegration), das in der Projektentwicklung weit verbreitet ist und Funktionen wie automatisiertes Build-Testen und Bereitstellen bietet. Download-Adresse: https://www.jenkins.io/download/ .

Jenkins-Funktionen:

  • Ein Open-Source-Tool zur kontinuierlichen Integration der Java-Sprachentwicklung, das kontinuierliche Integration und kontinuierliche Bereitstellung unterstützt.
  • Einfache Installation, Bereitstellung und Konfiguration: Es kann über yum installiert oder Kriegspakete heruntergeladen werden und die Installation und Bereitstellung schnell über Docker-Container realisiert werden, was die Konfigurationsverwaltung der Webschnittstelle erleichtern kann.
  • Nachrichtenbenachrichtigung und Testbericht: Integrieren Sie RSS/E-Mail, um das Build-Ergebnis über RSS zu veröffentlichen oder per E-Mail zu benachrichtigen, wenn der Build abgeschlossen ist, und generieren Sie einen JUnit/TestNG-Testbericht.
  • Verteilter Build: Unterstützt Jenkins, damit mehrere Computer gemeinsam erstellen/testen können.
  • Dateiidentifikation: Jenkins kann verfolgen, welche JAR-Dateien von welchem ​​Build generiert werden, welche JAR-Version von welchem ​​Build verwendet wird usw.
  • Umfangreiche Plug-In-Unterstützung: Unterstützt erweiterte Plug-Ins. Sie können Tools entwickeln, die für Ihr eigenes Team geeignet sind, z. B. Git, SVN, Maven, Docker usw.

6. Jenkins automatisierte Testbereitstellung

1. Erstellen Sie einen Artikel

2. Konfigurieren Sie Git zum Herunterladen von Code

Voraussetzungen:

  • Laden Sie das Git-Plugin-Plugin unter „Jenkins verwalten“ -> „Plugins verwalten“ -> „Verfügbare Plugins“ herunter
  • Die Maschine wurde mit einer Git-Betriebsumgebung konfiguriert, Download-Adresse: https://git-scm.com/

3. Konfigurieren Sie geplante Aufgaben

4. Generieren Sie einen HTML-Testbericht

Voraussetzungen:

  • Laden Sie das Plugin „HTML Publisher Plugins“ unter „Jenkins verwalten“ -> „Plugins verwalten“ -> „Verfügbare Plugins“ herunter
  • Nachdem die Aufgabe erstellt wurde, kann ein HTML-Bericht generiert werden

Hinweis: Dem nach der Erstellung des Skripts generierten HTML-Bericht fehlen Stile, da Jenkins aus Sicherheitsgründen einige CSS- und JS-Dateien deaktiviert hat. Wenn Sie also einen vollständigen Testbericht in Jenkins generieren möchten, müssen Sie zuerst den HTML-Bericht extrahieren und ihn dann verarbeiten Es

Verarbeitung des HTML-Berichtsstils verloren:

1. Führen Sie die Anweisung unter „Jenkins verwalten -> Skriptkonsole“ aus:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

Hinweis: Jenkins kann nicht neu gestartet werden. Der Effekt geht nach dem Neustart verloren und die Anweisung muss erneut ausgeführt werden

2. Verwenden Sie das Groovy-Plug-In, um die obige Groovy-Anweisung auszuführen (die lokale Groovy-Ausführungsumgebung ist erforderlich und Jenkins installiert das Groovy-Plug-In).

5. Konfigurieren Sie den E-Mail-Versand

Voraussetzungen:

  • Laden Sie das E-Mail-Erweiterungs-Plugin unter „Jenkins verwalten“ -> „Plugins verwalten“ -> „Verfügbare Plugins“ herunter
  • Konfigurieren Sie die entsprechenden E-Mail-Konfigurationsinformationen unter Jenkins verwalten->System konfigurieren, wie in der folgenden Abbildung dargestellt:

 

 

Der HTML-Code des von mir verwendeten E-Mail-Inhalts:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <tr>本邮件由系统自动发出,无需回复!
            <br/>各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>
        </tr>
        <tr>
            <td><br />
            <b><font color="#0B610B">构建信息</font></b>
            <hr size="2" width="100%" align="center" /></td>
        </tr>
        <tr>
            <td>
                <ul>
                    <li>项目名称: ${PROJECT_NAME}</li>
                    <li>构建状态: ${BUILD_STATUS}</li>
                    <li>项目URL: <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>
                    <li>工作目录: <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                    <li>构建URL: <a href="${BUILD_URL}">${BUILD_URL}</a></li>
                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>
                    <li>测试报告: <a href="${PROJECT_URL}allure">${PROJECT_URL}report</a></li>
                </ul>
                <h4><font color="#0B610B">失败用例</font></h4>
                <hr size="2" width="100%" />$FAILED_TESTS<br/>
            </td>
        </tr>
    </table>
</body>
</html>

6. Erstellen Sie einen Reizbericht

Voraussetzungen:

  • Laden Sie das Plugin „Allure Jenkins Plugins“ unter „Jenkins verwalten“ -> „Plugins verwalten“ -> „Verfügbare Plugins“ herunter
  • Nachdem die Aufgabe erstellt wurde, kann sie leicht erkennbare Dateien generieren (konfigurieren Sie beispielsweise Addopts in pytest.ini, um JSON-Dateien zu generieren).
  • Die Allure-Ausführungsumgebung ist lokal erforderlich (Überprüfung: Geben Sie Allure in cmd ein und die Hilfe wird angezeigt.)

Der Endeffekt:

Supongo que te gusta

Origin blog.csdn.net/ouihsiad/article/details/130140836
Recomendado
Clasificación