Wenn man Webformulare oder Webapplikationen testet, ist es sehr häufig notwendig, realistische Testdaten zu verwenden. Statische Dummy-Daten sind schnell austauschbar, liefern aber keine Variation.
Mit Faker.js lassen sich dynamische, realistisch aussehende Testdaten erzeugen, z. B. Namen, E-Mail-Adressen oder Jobtitel. In Kombination mit Selenium können diese Daten automatisch in Formulare eingetragen werden, um die Funktionalität und Validierung zu testen.
Für dieses Tutorial habe ich in meinem Testlab ein eigenes Formular erstellt, das ihr unter walter-test-engineering.de/testlab findet. So könnt ihr das Skript direkt ausprobieren, ohne eine eigene Testumgebung aufbauen zu müssen.
Was genau ist eigentlich Faker.js?
faker.js ist eine JavaScript-Bibliothek, die genutzt wird, um zufällige Testdaten (engl. fake data) zu erzeugen. Sie wird häufig in der Softwareentwicklung, Testautomatisierung und beim Prototyping verwendet, um realistisch wirkende Daten zu simulieren, ohne echte personenbezogene Informationen zu nutzen.
Das ist besonders nützlich, wenn du Formulare testen oder Datenbanken füllen willst, ohne echte personenbezogene Daten zu verwenden.
Mehr Informationen findest Du auch hier: https://fakerjs.dev/

Hauptmerkmale von Faker.js:
Vielseitige Datenarten:
Du kannst fast alles generieren, z. B.:
- Namen:
faker.name.firstName(),faker.name.lastName() - Adressen:
faker.address.city(),faker.address.streetAddress() - E-Mail-Adressen:
faker.internet.email() - Telefonnummern:
faker.phone.number() - Firmen:
faker.company.name() - Texte und Lorem Ipsum:
faker.lorem.paragraph()
import { faker } from "@faker-js/faker";
const firstName = faker.person.firstName();
const lastName = faker.person.lastName();
const email = faker.internet.email();
const jobTitle = faker.person.jobTitle();
console.log(firstName, lastName, email, jobTitle);
Schritt-für-Schritt-Erklärung des Projektes
Hier ist ein Beispielcode, der ein Testformular auf der Seite https://walter-test-engineering.de/testlab/ ausfüllt:

Erklärung:
faker: Erzeugung von zufälligen Testdatenfs: Speichern von Dateien (z. B. Screenshots), hierzu später mehr
Browser starten

- Startet den Chrome-Browser
- Öffnet die Testformular-Seite
Selektoren definieren

Hier werden alle IDs und CSS-Selektoren der Formularfelder als Konstanten definiert. Das erleichtert spätere Änderungen, falls sich die Seite ändert.
Formularfelder ausfüllen

faker.person.firstName()erzeugt einen zufälligen Vornamen >> z.B. „Lena Müller“- Selenium wartet, bis das Feld sichtbar ist (
until.elementLocated) - Dann wird der Wert eingetragen
Dasselbe Prinzip gilt für:
- Nachname (
faker.person.lastName()) - E-Mail (
faker.internet.email()) - Jobtitel (
faker.person.jobTitle()) - Erfahrung (
"2-4") - Geburtsdatum (
faker.date.birthdate(...)) - Kommentare (
faker.lorem.sentence())
Formular abschicken

- Wartet, bis der Submit-Button sichtbar ist
- Scrollt zum Button, um einen Screenshot festzuhalten (siehe nachfolgend)
- Klickt auf „Absenden“
Screenshot des Formularbereichs
Nach dem Ausfüllen und Absenden des Formulars ist es oft hilfreich, einen visuellen Nachweis zu haben, dass alles korrekt funktioniert hat. Selenium ermöglicht es, Screenshots von ganzen Seiten oder einzelnen Bereichen zu machen. So können wir gezielt nur den relevanten Formularbereich erfassen und für die Dokumentation oder spätere Analysen speichern.
In meinem Testformular erscheint nach dem Abschicken eine Erfolgsmeldung, die bestätigt, dass die Daten korrekt übermittelt wurden – diese soll also im Screenshot dokumentiert werden.

- Nimmt einen Screenshot nur vom Formularbereich
- Speichert die Datei mit Zeitstempel
Ergebnis
Nach dem Ausführen des Skripts gebe ich in der Konsole aus, welche Schritte erfolgreich durchgeführt wurden. Das gibt uns eine klare Rückmeldung über den Ablauf und hilft, mögliche Fehler schnell zu erkennen.
Wie man sieht, wurden alle Formularfelder korrekt ausgefüllt, das Formular abgeschickt und der Screenshot gespeichert:

Hier ist ein Beispiel für den gespeicherten Screenshot des Formularbereichs:

Fazit
Mit Faker.js und Selenium lässt sich die Testautomatisierung auf ein völlig neues Level heben:
-
Du erzeugst realistische Testdaten automatisch, ohne echte Nutzerdaten zu verwenden.
-
Du kannst Formulare automatisiert ausfüllen und abschicken, was die Testgeschwindigkeit enorm steigert.
-
Screenshots ermöglichen eine visuelle Dokumentation der Testergebnisse und helfen beim Nachweis der Testabläufe.
Das spart nicht nur Zeit, sondern erhöht die Testabdeckung, reduziert menschliche Fehler und schützt gleichzeitig sensible Daten. Für Entwickler:innen und QA-Teams ist diese Kombination daher ein äußerst mächtiges Werkzeug im täglichen Testprozess.