DevOps Test-Tool-Integration
Mit der Test-Tool-Integration können Sie Testergebnisse in anzeigen DevOps Für Jenkins, Azure DevOps, GitHub, GitHub Enterprise, Und GitLab Einheiten-, Funktions- und Leistungstests.
Für GitLab Und Jenkins wird nur die Integration des JUnit-Testtyps unterstützt.
- Selentests, die mit TestNG ausgeführt und veröffentlicht werden, werden von gemeldet Jenkins Plugin für ServiceNow DevOps.
- Die Testtypkategorisierung wird unterstützt.
- Zusätzliche Testergebnisse, die von Tools wie Apache JMeter gemeldet werden, können in verarbeitet werden DevOps Mit anwenderdefinierter Verwendung Workflow-Studio Subflows (keine Pipeline-Changes erforderlich).
| Kategorie | Testtyp |
|---|---|
| Einheit | JUnit (Standard) NUnit XUnit Einheitentest Hinweis:
Sie können den Standardtesttyp ändern, indem Sie ändern [sn_devops.default_test_type] DevOps useran. |
| Funktionell |
|
| Leistung | Laden |
Testtypzuordnung
Die Testtypzuordnung verbindet den Testtyp und die zu testende Entität mit DevOps Tool ( Modul.)
Eine genaue Testtypzuordnung stellt sicher, dass der Testtyp in den Testzusammenfassungsergebnissen immer wie vorgesehen angezeigt wird.
| Feld | Beschreibung | |
|---|---|---|
| Testtyp |
|
|
| ID der DevOps-Entität | Tabellenname | DevOps Tabellenname, der die Entität enthält, die mit den Testergebnissen verknüpft ist (in der Testberichtsnutzlast).
Hinweis: Nur DevOps Schritt- und Pipeline-Tabellen werden unterstützt. |
| Dokument | Name der in der ausgewählten Tabelle angegebenen Entität. Zum Beispiel der Name des Schritts, der Pipeline, des Artefakts oder des Pakets. |
|
Testdateipfade ( Jenkins Nur Tests) |
Pfad zur generierten Testergebnisdatei auf der Jenkins Server. Dies ist nützlich, damit Testberichte mit Attributen, die nicht der JUnit- oder TestNG-Implementierung entsprechen, z. B. JMeter, weiterhin von genutzt werden können DevOps. Trennen Sie mehrere Dateien durch ein Komma. Hinweis: Sie müssen verwenden Workflow-Studio subflow zum Transformieren einer Rohtest-Nutzlast. |
|
| Toolintegration | Tool, das den Test ausführt. |
|
| DevOps-Tabelle | DevOps Tabelle, die dem Tabellennamen in entspricht DevOps-Entitäts-ID Einstellung. |
|
Umwandlung einer Rohtest-Nutzlast
Wenn in einer Leistungsphase mehr als einen Testtyp vorhanden ist, können Sie verwenden DevOps-Testtyprichtlinie Entscheidungstabelle zum Konfigurieren des Testtyps für jeden Test, damit die Nutzlasten des Testergebnisses korrekt umgewandelt werden.
| Entscheidungstabelle | Zweck | Konfiguration |
|---|---|---|
| DevOps-Test-Subflow-Richtlinie | Dient zum automatischen Aufrufen eines anwenderdefinierten Subflows, der die vom Tool empfangene Rohnutzlast umwandelt. Entscheidungseingaben:
|
Erstellen Sie eine Entscheidung, die den anwenderdefinierten Subflow angibt, der aufgerufen werden soll, wenn die Rohnutzlast empfangen wird. Legen Sie die Bedingungen so fest, dass sie Felder enthalten, die in der Rohnutzlast enthalten wären. Zum Beispiel „an anrufen“ Jenkins Anwenderdefinierter Subflow für BZ-Leistungstest: Bedingungen:
Antwort: Flow: Jenkins BZ-Leistungstest |
| DevOps-Testtyprichtlinie | Dient zum automatischen Festlegen von Testtypen, wenn in einer Leistungstestphase mehr als ein Testtyp konfiguriert ist. Dies ist erforderlich, damit die Ergebnisse für den zweiten Testtyp korrekt umgewandelt werden. Beispielsweise, wenn sowohl ein Lastleistungstest als auch ein JUnit-Leistungstest in demselben zugeordnet sind DevOps Schritt: Die JUnit-Testergebnisse werden nur dann korrekt formatiert, wenn eine Entscheidung erstellt wird. Entscheidungseingaben:
|
Erstellen Sie eine Entscheidung für jeden Testtyp in der Leistungstestphase, um den Testtyp festzulegen. Lasttest:
JUnit-Test:
|
Testzusammenfassungsergebnisse
- Modul (Testzusammenfassungen und Leistungstest-Zusammenfassungen).
- DevOps-Change-Anforderung – Zugehörige Liste „Testergebnisse“.
- DevOps Pipeline-UI – Qualitätskachel.
Erwartete Nutzlast der Standard-JSON-Benachrichtigungsfähigkeit – Testtool
{
"name": "CorpSite-selenium#55",
"duration": 78.802,
"passedTests": 4,
"failedTests": 0,
"skippedTests": 0,
"blockedTests": 0,
"totalTests": 4,
"startTime": "2020-06-30T18:12:31Z",
"finishTime": "2020-06-30T18:12:31Z",
"passingPercent": 100,
// Use Artifact OR Package OR Build + Stage + PipelineName Attributes
Send only one Attribute combination. For example, send Attributes of either Artifact or Package, or the combination of Build + Stage + PipelineName.
If you send more than one Attribute, priority is given in the following order and the low priory one is ignored. For example, if you send attribute for both packages and artifacts, then attribute of package is considered and the attribute of artifacts is ignored.
1.packages
2.artifcats
3.buildNumber + stageName + pipelineName
"packages": [{"name": "CorpSite-pkg1"}],
"artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}],
"buildNumber": "55",
"stageName": "test",
"pipelineName": "CorpSite-selenium",
}
Notes:
- The pipelineName attribute value must be same as the value in the Orchestration pipeline field of the Pipeline [sn_devops_pipeline] table.
- The stageName attribute value must be same as the value in the Orchestration stage field of the Step [sn_devops_step] table.{
"name": "Performance Tests",
"url": "http://abc.com",
"startTime": "2020-06-30T18:12:31Z",
"finishTime": "2020-06-30T18:12:31Z",
"duration": 78.802,
"maximumVirtualUsers": "",
"throughput": "",
"maximumTime": "",
"minimumTime": "",
"averageTime": "",
"ninetyPercent": "",
"standardDeviation": "",
// Use Artifact OR Package OR Build + Stage + PipelineName Attributes
Send only one Attribute combination. For example, send Attributes of either Artifact or Package, or the combination of Build + Stage + PipelineName.
If you send more than one Attribute, priority is given in the following order and the low priory one is ignored. For example, if you send attribute for both packages and artifacts, then attribute of package is considered and the attribute of artifacts is ignored.
1.packages
2.artifcats
3.buildNumber + stageName + pipelineName
"packages": [{"name": "CorpSite-pkg1"}],
"artifacts": [{"name": "CorpSite-artifact", "version": "1.0.0"}],
"buildNumber": "55",
"stageName": "test",
"pipelineName": "CorpSite-Performance",
}
Notes:
- The pipelineName attribute value must be same as the value in the Orchestration pipeline field of the Pipeline [sn_devops_pipeline] table.
- The stageName attribute value must be same as the value in the Orchestration stage field of the Step [sn_devops_step] table.