Schlagwortarchiv für: Testautomatisierung

Einbindung von Playwright unter JUnit

Nachdem wir in einem anderen Artikel die grundlegende Einrichtung und Verwendung von Playwright demonstriert haben, wollen wir nun Playwright einsetzen, um mit JUnit die echten Tests einer Webanwendung zu schreiben. Weiterlesen

Vor einigen Jahren haben wir in einem unserer Blog Beiträge für die Lösungsmöglichkeit berichtet, wie man auf HTML 5 Seiten Drag & Drop Testautomatisierung mit HTML 5 implementeiren kann.

Der Hintrgrund war, dass die offizielle Selenium Drag & Drop API aus der Actions Klasse auf HTML 5 Seiten nicht richtig funktioniert und selbst die Referenz-Implementierungen von W3C Standard nicht autoamtisieren kann. Der zugehörige Bug-Request für Selenium Web Driver wurde bereits im Jahr 2012 angelegt. Leider ist er nach inzwischen 8 Jahren immer noch ungelöst 🙁

Da die Notwenigkeit der Drag & Drop Testautomtisierung mit Selenium aufgrund von immer komplexer Geschäftsapplikationen im Web immer häufiger angefragt wird, haben wir die Drag&Drop Implementeirung auf GitHub als Open Source Projekt bereitgestellt und ein fertiges Nuget Paket für C# veröffentlicht.

Im Rahmen dieser Implementierung wird die bereits beschriebene alternative Drag & Drop Umsetzung mit einem JavaScript umgesetzt, das automatisch augerufen wird.

Bei der Verwendung von Nuget Paket für Drag&Drop kann die Testautomatisierung von Drag&Drop in nur wenigen Schritten realisiert werden:

  1. Drag & Drop Nugen Paket SeleniumDragDrop in C# Solution einbinden
  2. Quell- und Ziel-Elemente für Drag & Drop auf der Web Seite finden
  3. DragDropHelper instanzieren
  4. Drag & Drop Operation für Quell- und Ziel-Elemente aufrufen

Die Automatisierung von Drag&Drop auf der W3C Refernz-Seite für HTML 5 Drag & Drop kann damit etwa wie folgt aussehen:

    IWebDriver driver = new ChromeDriver(Environment.CurrentDirectory);
    try
    {
        driver.Navigate().GoToUrl("https://www.w3schools.com/html/html5_draganddrop.asp");

        IWebElement sourceEl = driver.FindElement(By.Id("drag1"));
        IWebElement targetEl = driver.FindElement(By.Id("div2"));

        SeleniumDragDrop.DragDropHelper dragdrop = new SeleniumDragDrop.DragDropHelper(driver);
        dragdrop.DragAndDrop(sourceEl, targetEl);

        Assert.IsNotNull(targetEl.FindElement(By.Id("drag1")));
    }
    finally
    {
        driver.Quit();
    }

Viel Spaß beim Ausprobieren.

Testautomatisierung von Rest APIs hat in den vergangenen Jahren enorm an Bedeutung gewonnen. Das liegt daran, dass überwiegende Anzahl moderner Software-Produkte auf eine zustandslose verteilte Kommunikation zwischen verschiedenen Endpunkten mittels REST API setzt. In diesem Tutorial lernen Sie was man unter REST API Tests versteht und wie man sie anhand eines einfachen Beispiel mit Testwerkzeug „Postman“ schnell und ohne detailliertes technisches Wissen aufbauen kann.

Weiterlesen

Tutorial-Ziel:

Integration Tests stellen nach den Unit Tests die nächste zentrale Teststufe innerhalb der Testautomatisierungspyramide dar. In diesem Tutorial werden die Grundlagen der Integration Tests erläutert und verschiedene Arten von Integration Tests anhand von praktischen Beispielen demonstriert und geübt.

Unter anderem werden folgende Themen behandelt:

  • Was sind Integration Tests und ihre verschiedene Unterarten?
  • Welche Bereiche kann man mit Integration Tests abdecken?
  • Die grundlegenden Bestandteile eines Integration Tests
  • Erstellung verschiedener Integration Tests für das Beispiel-Szenario
  • Wartung und Lifecycle der Integration Tests

Weiterlesen

 

Tutorial-Ziel:

In dieser Serie werden anhand eines sehr einfachen Beispiels die Testautomatisierungsansätze auf verschiedenen etablierten Stufen gemäß der Testautomatisierungspyramide erläutert.

Dabei werden die Methodiken der Testautomatisierung auf folgenden Stufen vorgestellt

  • Unit Tests (White-Box)
  • Integration Tests (White-Box)
  • Integration Tests / Api Tests (Black-Box)
  • System Tests / End-to-End Tests (Black-Box)

und anhand eines identischen Beispiel-Testszenarios gegenübergestellt, um die Unterschiede hinsichtlich

  • des Automatisierungsaufwandes
  • des erforderlichen Skills
  • der erforderlichen Tools und Infrastruktur
  • der typischen Testlaufzeiten und der Feedback-Loop Dauer  (die insbesondre im agilen Umfeld von zentraler Bedeutung ist)

zu verdeutlichen.

Weiterlesen

Tutorial-Ziel:

Im 1. Teil der Serie wurden die grundlegenden Testautomatisierungsansätze und Test Stufen sowie unser Beispiel Testszenario vorgestellt.

Im 2. Teil der Serie werden die Grundlagen der Testautomatisierung auf der Stufe der Unit Tests anhand dieses Testszenarios näher erläutert.

Unter anderem werden folgende Themen behandelt:

  • Was sind die Unit Tests und deren USPs?
  • Was soll mittels Unit Tests getestet werden?
  • Die grundlegenden Bestandteile eines Unit Tests?
  • Welche Unit Tests Frameworks gibt es?
  • Einrichtung einer Entwicklungsumgebung
  • Erstellung eines Unit Test Projektes
  • Erstellung der Unit Tests für das Beispiel-Szenario
  • Wartung und Lifecycle der Unit Tests

Weiterlesen