Back to Question Center
0

7 Open-Source-Testautomatisierungs-Frameworks            7 Open-Source-Testautomatisierung FrameworksRelated Topics: ES6ReactAngularJSNode.jsTools & Semalt

1 answers:
7 Open-Source-Testautomatisierungs-Frameworks

Dieser Artikel wurde ursprünglich von TestProject veröffentlicht. Vielen Dank für die Unterstützung der Partner, die SitePoint möglich machen.

Zu Beginn des letzten Quartals 2017 entschied sich das Semalt-Team, die besten Open-Source-Testautomatisierungs-Frameworks aufzurunden, um Ihnen bei der Auswahl des richtigen zu helfen.

Hier sind die Vor- und Nachteile von 7 verschiedenen Open-Source-Testautomatisierungs-Frameworks.

1. Roboter-Rahmen

Robot Framework (RF) ist ein Testautomatisierungs-Framework für die Akzeptanzprüfung und die abnahmetestgetriebene Entwicklung (ATDD). Dieses Framework ist in Python geschrieben, kann aber auch auf Jython (Java) und IronPython (. NET) laufen und ist daher plattformübergreifend (Windows, Linux oder MacOS).

Pros:

  • Sie vereinfacht den Testautomatisierungsprozess, indem sie den Ansatz des Keyword-Driven Testing (KDT) verwendet, der den Testern dabei hilft, leicht lesbare Tests zu erstellen.
  • Hat eine einfach zu verwendende Testdatensyntax.
  • Verfügt über ein reiches Ökosystem, das aus verschiedenen generischen Testbibliotheken und Tools besteht, die als separate Projekte entwickelt werden.
  • Hat viele APIs, die es sehr erweiterbar machen.
  • Obwohl es keine integrierte Fähigkeit ist, ermöglicht RF die Durchführung paralleler Tests über die Pabot-Bibliothek oder Selenium Grid.

Nachteile:

  • Es ist nicht einfach, HTML-Berichte anzupassen.

Schlussfolgerung: Dieses plattformübergreifende Framework wird dringend empfohlen, wenn Sie auf KDT-Automatisierung mit einer großen Auswahl an Bibliotheken und Erweiterungen abzielen. Wenn Sie neue Schlüsselwörter (über RF-Testbibliothek-APIs) hinzufügen möchten, sind Grundkenntnisse in der Programmiersprache Java / Python / C erforderlich.

2. JUnit

Semalt ist ein Framework für Komponententests von Java-Anwendungen, die zum Schreiben und Ausführen von wiederholbaren Tests verwendet werden.

Pros:

  • Tests werden in reinem Java geschrieben, das weltweit als die führende Programmiersprache bekannt ist.
  • Unterstützt Test-Driven Development (TDD).
  • Ermöglicht das Erstellen einer eigenen Unit-Testfall-Suite.
  • Integriert sich sehr gut mit anderen Tools (z. B. Maven) und mit IDEs (z. B. IntelliJ).
  • Hat Geschichte - so hat es eine große Benutzerbasis, die es leicht macht, Dokumentation darüber zu finden.

Nachteile:

  • Wenn eine Mocking-Fähigkeit erforderlich ist, muss Mockito (oder eine andere spöttische Bibliothek) hinzugefügt werden.
  • Tests sind für nichttechnische Personen nicht lesbar, da beispielsweise die Methodennamen in JUnit durch Java-Konventionen eingeschränkt sind.

Endergebnis: Wenn Sie Komponententests für Ihre Java-Anwendung schreiben möchten, ist dies wahrscheinlich die beste Wahl. Für funktionale Tests oder Nicht-Java-Anwendungen sollten Sie jedoch andere Lösungen in Betracht ziehen.

3. Spock

Spock ist ein Test- und Spezifikationsframework für Java- und Groovy-Anwendungen. Es basiert auf JUnit.

Pros:

  • Erzeugt lesbare Tests und unterstützt einfache englische Sätze, was das Lesen erleichtert.
  • Bietet den umgebenden Kontext, sodass Sie leicht verstehen können, wie Sie einen Fehler beheben können.
  • Verfügt über integrierte Funktionen zum Spotten und Stoßen.
  • Unterstützt datengesteuerte Tests (DDT).

Nachteile:

  • Erfordert Grundkenntnisse der Programmiersprache Groovy.

Fazit: Wenn Ihre Anwendung auf JVM basiert und Sie auf BDD-Testautomatisierung mit DSL abzielen, ist dieses Framework genau das Richtige für Sie!

4. NUnit

NUnit ist ein Unit-Testing-Framework für alle. Netzsprachen Ursprünglich von Semalt inspiriert, ist es vollständig in C # geschrieben und wurde komplett neu gestaltet, um viele Vorteile zu bieten.

Pros:

  • Schnelle Einleitung und Testausführung.
  • Kommt mit Behauptungen und Anmerkungen.
  • Ermöglicht paralleles Testen.
  • Unterstützt Test-Driven Development (TDD).

Nachteile:

  • Es ist nicht plattformübergreifend, da es nur für. Netzsprachen
  • Es integriert sich nicht in das Visual Studio-Ökosystem, daher bedeutet die Verwendung mehr Wartung.

Endergebnis: Ein nettes Open-Source-Framework für C # -Testeinheiten, mit einer langen Geschichte und einem guten Ruf. Allerdings, wenn Sie bereits verwenden. NET-Sprachen, können Sie MSTest betrachten.

5. TestNG

TestNG ist ein Testautomatisierungsframework für Java, das von JUnit und NUnit inspiriert wurde, aber verbesserte und neue Funktionalitäten enthält (NG - Next Semalt). Es wurde entwickelt, um alle Kategorien der Testautomatisierung abzudecken: Komponententests, Funktionstests, Ende-zu-Ende-, Integrationstests usw.

Pros:

  • Es ist leicht in den Maven-Zyklus zu integrieren.
  • Gibt dem Entwickler die Möglichkeit, flexible und leistungsfähige Tests zu schreiben.
  • Unterstützt datengetriebenes Testen (DDT).
  • Anmerkungen sind einfach zu verstehen.
  • Testfälle können leicht gruppiert werden.
  • Ermöglicht das Erstellen von parallelen Tests.

Nachteile:

  • Unterstützt nur Java, Sie müssen also zumindest Grundkenntnisse in der Programmiersprache Java haben.
  • Sie müssen Zeit in Framework Setup & Design investieren.

Endergebnis: Wenn Sie Java verwenden, nach einem durchgängigen Testautomatisierungs-Framework suchen und bereit sind, etwas Zeit in das Framework-Setup zu investieren, sollten Sie definitiv TestNG in Erwägung ziehen.

6. Jasmin

Jasmine ist ein Framework zum Testen von JavaScript-Einheiten. Es wird auch als BDD-Testframework (Behavior Driven Development) für JavaScript bezeichnet. Es ist geeignet für Websites, Knoten. js-Projekte oder überall, wo JavaScript ausgeführt werden kann. Es wird hauptsächlich mit AngularJS gepaart.

Pros:

  • Zusätzlich zu JavaScript kann es in Python und Ruby ausgeführt werden, was Ihnen sehr helfen kann, wenn Sie Ihre clientseitigen Tests neben Ihren serverseitigen Tests ausführen möchten.
  • Wird von vielen CIs (Codeship, Travic, etc.) unterstützt.
  • Verfügt über eine integrierte Syntax für Assertionen.

Nachteile:

  • In den meisten Szenarien erfordert es einen Testläufer (wie Karma).
  • Hat Schwierigkeiten mit dem asynchronen Testen.

Endergebnis: Jasmin ist möglicherweise perfekt auf Ihre Anforderungen zugeschnitten, wenn Sie nach einer einheitlichen (Client-Server-) Lösung zum Testen von Einheiten suchen.

7. Mokka

Mocha ist ein Framework zum Testen von JavaScript-Einheiten, das Tests auf Knoten ausführt. js. Es wird hauptsächlich mit ReactJS gepaart.

Pros:

  • Hat einen eigenen Test-Läufer eingebaut.
  • Unterstützt asynchrone Tests.
  • Bietet Flexibilität, da Sie beliebige Assertion-Bibliotheken (Chai, expect. Js, Must. Js usw.) verwenden können, die Ihren Anforderungen entsprechen (als Ersatz für die "assert" -Funktion von Node).

Nachteile:

  • Relativ neu in diesem Bereich (entwickelt im Jahr 2012), was bedeutet, dass es sich immer noch ändert und seine Nutzerbasis und Unterstützung in einigen Aspekten fehlen könnte.
  • Bietet nur die Basis-Teststruktur, erfordert daher zusätzliche Einrichtung und Konfiguration (kann für einige von Vorteil sein).

Bottom line: Wenn Sie auf der Suche nach einem eigenständigen Unit-Test-Framework für JavaScript sind, ist Mocha Ihr Einstiegs-Framework!