15 Min. Lesezeit

JavaScript Basics für Testautomatisierung - Teil 1

JavaScript Basics für Testautomatisierung - Teil 1

In diesem Guide lernst du die grundlegenden JavaScript-Themen, die du für deine Testautomatisierung brauchst. Wenn du die Beispiele und Übungen direkt ausprobieren möchtest, empfehlen wir dir für den Start einen einfachen Online-Editor wie playcode.io. Einfach den Link öffnen und loslegen!

JavaScript ist die zentrale Programmiersprache fürs Web. Seit ihrer Entstehung Mitte der 1990er Jahre gehört sie zum Standard jedes Browsers. Heutzutage wird JavaScript nicht nur von Webseiten genutzt, sondern auch für serverseitige Anwendungen. Für Softwaretester ist JavaScript daher besonders spannend, weil viele moderne Testtools wie Cypress oder Playwright darauf basieren.

1. Hilfswerkzeuge

Kommentare sind Notizen im Code, die nicht ausgeführt werden. Sie helfen dir und anderen, den Code besser zu verstehen. Kommentare beginnen mit zwei Schrägstrichen // und werden von JavaScript ignoriert. Beispiele:

// Das ist ein Kommentar und wird nicht ausgeführt

Mit console.log() kannst du Werte in der Konsole anzeigen lassen. Das ist besonders praktisch zum Lernen und wichtig für die folgenden Abschnitte. Merke dir vorerst nur: Die Schreibweise von console.log() und dass du den Wert, den du ausgeben möchtest, in die Klammern setzt. So sieht das aus:

console.log("Hallo Welt!"); 
// Ausgabe: Hallo Welt!

2. Variablen

Variablen sind Behälter, in denen Werte gespeichert werden. Du kannst dir eine Variable wie eine beschriftete Box vorstellen, in der du etwas ablegst, z. B. eine Zahl, einen Text oder eine Liste.

Um eine Variable zu erstellen, benutzt du das Schlüsselwort let. Dann vergibst du einen Variablennamen und weist ihr den Wert mit dem Gleichheitszeichen = zu. Jede Anweisung endet mit einem Semikolon ;.

let variablenname = wert;

Hier sind konkrete Beispiele:

// Die Variable 'age' speichert die Zahl 30
let age = 30;

// Die Variable 'name' speichert den Text "Max"
let name = "Max";

3. Primitive Datentypen

Datentyp Beschreibung Wert Beispiel
Number Ganze Zahlen oder Dezimalzahlen 42, 3.14 let peopleCount = 42;
String Text (immer in Anführungszeichen) "Hallo Welt" let greeting = "Hallo Welt";
Boolean Wahrheitswerte true, false let isTestSuccessful = true;
undefined Variable ohne Wert let x;

JavaScript erkennt automatisch, welchen Datentyp eine Variable hat, du musst den Typ also nicht explizit angeben.

4. Arrays

Ein Array ist eine Liste, in der du mehrere Werte speichern kannst. Du kannst Dinge hinzufügen, einzeln abrufen oder später wieder entfernen. Jedes Element hat eine Position, den sogenannten Index, der immer bei 0 beginnt. Außerdem kannst du jederzeit die Länge des Arrays abfragen.

let früchte = ["Apfel", "Banane", "Orange"];

// Auf Elemente zugreifen
console.log(früchte[0]);     // "Apfel" 
console.log(früchte[1]);     // "Banane" 

// Ein Element hinzufügen
früchte.push("Kiwi");
console.log(früchte);        // ["Apfel", "Banane", "Orange", "Kiwi"]

// Ein Element entfernen
früchte.pop();
console.log(früchte);        // ["Apfel", "Banane", "Orange"]

// Die Länge des Arrays abfragen
console.log(früchte.length); // 3

5. Funktionen

Funktionen sind wiederverwendbare Code-Blöcke, die spezifische Aufgaben erledigen. Sie nehmen Eingaben (Parameter) entgegen, verarbeiten diese und können Ergebnisse zurückgeben. Funktionen helfen dir, deinen Code übersichtlich zu halten, Wiederholungen zu vermeiden.

Eine Funktion beginnt mit dem Schlüsselwort function. Danach folgt der Funktionsname. In runden Klammern ( ) kannst du Parameter angeben, also Eingabewerte, die die Funktion benötigt. Diese Parameter, zum Beispiel parameter1 und parameter2. Der eigentliche Code wird in geschweifte Klammern { } geschrieben, der sogenannte Funktionskörper. Optional kann die Funktion mit return ein Ergebnis zurückgeben, das du später weiterverwenden kannst.

function funktionsName(parameter1, parameter2) {
  // Funktionskörper
  return ergebnis;
}

Ein paar Beispiele:

// Eine Funktion, die eine Begrüßung ausgibt:
function greetings(name) {
  console.log("Hallo ");
  console.log(name);
  console.log(" !");
}

greetings("Max");  // Ausgabe: Hallo Max!
greetings("Anna");  // Ausgabe: Hallo Anna!

//Eine Funktion mit Rückgabewert
function addiere(a, b) {
  return a + b;
}

let ergebnis = addiere(5, 3);
console.log(ergebnis);  // Ausgabe: 8

6. Bedingungen

Um im Code verschiedene Wege zu gehen, benutzt man if-else Bedingungen. Dabei ist es wichtig, dass du den richtigen Vergleichsoperator nutzt.

Wichtige Vergleichsoperatoren

  • === gleich
  • !== ungleich
  • < kleiner als, > größer als

Beispiel einer if-else Bedingung

let zahl = 5;

// Überprüfen, ob die Zahl gleich 5 ist  
if (zahl === 5) {
  console.log("Die Zahl ist genau 5");      // Ausgabe: Die Zahl ist genau 5
} else {
  console.log("Die Zahl ist nicht 5");
}

// Überprüfen, ob die Zahl ungleich 5 ist
if (zahl !== 5) {
  console.log("Die Zahl ist nicht 5");
} else {
  console.log("Die Zahl ist genau 5");      // Ausgabe: Die Zahl ist genau 5
}

// Überprüfen, ob die Zahl kleiner als 10 ist
if (zahl < 10) {
  console.log("Die Zahl ist kleiner als 10"); // Ausgabe: Die Zahl ist kleiner
} else {
  console.log("Die Zahl ist 10 oder größer");
}

7. Schlüsselwort await

In JavaScript laufen manche Vorgänge, wie zum Beispiel das Abrufen von Daten, verzögert ab, also asynchron. Mit dem Schlüsselwort await sorgst du dafür, dass JavaScript auf das Ergebnis wartet, bevor es mit dem nächsten Schritt weitermacht. Für Testeinsteiger ist zunächst nur wichtig: Merke dir await und setze es ein, wenn eine Funktion mit async gekennzeichnet ist, damit dein Testcode wirklich synchron abläuft. Bei Playwright ist das häufig nötig, wenn du auf einen Seitenaufruf wartest oder auf ein Element, das erst geladen werden muss.

8. Wiederverwendbarkeit von Code

Wenn dein Testcode größer wird, ist es wichtig, ihn übersichtlich und gut strukturiert zu halten, damit er leicht wartbar bleibt. Das bedeutet, Funktionen und Variablen so zu schreiben, dass du sie mehrfach verwenden kannst, ohne sie jedes Mal neu erstellen zu müssen. Dafür teilst du den Code in einzelne Dateien (Module) auf, die du bei Bedarf wiederverwenden kannst. Mit den Schlüsselwörtern export und import kannst du Funktionen oder Variablen kennzeichnen und in anderen Dateien nutzen.

Die export- und import-Syntax funktioniert so: Mit export function funktionsName() machst du eine Funktion für andere Dateien verfügbar. In einer anderen Datei kannst du die Funktion dann mit import { funktionsName } from './dateiname.js' wiederverwenden. Die geschweiften Klammern { } geben an, welche Funktionen genau importiert werden, und der Pfad './dateiname.js' zeigt auf die Datei, aus der die Funktion stammt.

// Datei: mathUtils.js - Hilfsfunktionen für mathematische Operationen
export function addiere(a, b) {
  return a + b;
}

export function subtrahiere(a, b) {
  return a - b;
}

// Datei: testScript.js - nutzt die Funktionen aus mathUtils.js
import { addiere, subtrahiere } from './mathUtils.js';

console.log(addiere(10, 5));      // Ausgabe: 15
console.log(subtrahiere(10, 5));  // Ausgabe: 5

9. Übungen

a. Übung: Console.log und Kommentare verwenden

Schreibe einen Code, der drei verschiedene Nachrichten mit console.log() ausgibt. Füge oberhalb jeder console.log()-Anweisung einen Kommentar hinzu, der erklärt, was ausgegeben wird.

💡 Lösung anzeigen
// Begrüßung ausgeben
console.log("Willkommen zum JavaScript-Test!");

// Aktueller Status ausgeben  
console.log("Test wird gestartet...");

// Erfolgsmeldung ausgeben
console.log("Alle Vorbereitungen abgeschlossen!");

b. Übung: Variablen erstellen und verwenden

Erstelle eine Variable für eine Webseiten-URL und eine für die erwartete Anzahl von Elementen auf der Seite. Gib beide Werte mit console.log() aus.

💡 Lösung anzeigen
let websiteUrl = "https://example.com";
let expectedElements = 5;

console.log(websiteUrl);
console.log(expectedElements);

c. Übung: Mit verschiedenen Datentypen arbeiten

Erstelle Variablen für folgende Testwerte und gib deren Typ und Wert aus:

  • Eine Anzahl von gefundenen Fehlern (Number)
  • Den Namen eines Tests (String)
  • Ob der Test erfolgreich war (Boolean)
  • Eine nicht zugewiesene Variable (undefined)
💡 Lösung anzeigen
let fehlerAnzahl = 3;
let testName = "Login-Test";
let testErfolgreich = true;
let nichtZugewiesen;

console.log(fehlerAnzahl);
console.log(testName);
console.log(testErfolgreich);
console.log(nichtZugewiesen);

d. Übung: Arrays für Testdaten verwenden

Erstelle ein Array mit verschiedenen Benutzernamen für Tests. Füge einen neuen Benutzernamen hinzu, gib die Gesamtanzahl aus und greife auf den ersten und letzten Benutzernamen zu.

💡 Lösung anzeigen
let testBenutzer = ["admin", "user123", "testuser"];

// Neuen Benutzer hinzufügen
testBenutzer.push("poweruser");

console.log(testBenutzer.length);
console.log(testBenutzer[0]);
console.log(testBenutzer[testBenutzer.length - 1]);

e. Übung: Funktion für Testvalidierung schreiben

Schreibe eine Funktion validatePassword, die prüft, ob ein Passwort mindestens 8 Zeichen lang ist. Die Funktion soll true oder false zurückgeben. Teste sie mit verschiedenen Passwörtern.

💡 Lösung anzeigen
function validatePassword(password) {
  if (password.length >= 8) {
    return true;
  } else {
    return false;
  }
}

console.log(validatePassword("123"));        // false
console.log(validatePassword("sicheresPasswort123")); // true
console.log(validatePassword("test123"));    // false

f. Übung: Testergebnisse mit Bedingungen auswerten

Schreibe eine Funktion, die basierend auf der Anzahl der gefundenen Fehler eine Bewertung ausgibt: 0 Fehler = "Perfekt", 1-3 Fehler = "Gut", mehr als 3 Fehler = "Überarbeitung nötig".

💡 Lösung anzeigen
function bewerteFehler(anzahlFehler) {
  if (anzahlFehler === 0) {
    return "Perfekt";
  } else if (anzahlFehler <= 3) {
    return "Gut";  
  } else {
    return "Überarbeitung nötig";
  }
}

console.log(bewerteFehler(0));   // Perfekt
console.log(bewerteFehler(2));   // Gut
console.log(bewerteFehler(5));   // Überarbeitung nötig

g. Übung: Code-Wiederverwendung mit Export/Import

Erstelle eine Datei testUtils.js mit wiederverwendbaren Test-Hilfsfunktionen. Exportiere sie und importiere sie in einer anderen Datei. (Diese Übung zeigt das Konzept - in playcode.io kannst du es als einen zusammenhängenden Code schreiben)

💡 Lösung anzeigen
// ===== Simulation von testUtils.js =====
// Diese Funktionen würden normalerweise exportiert werden
function generateTestData() {
  let daten = ["Testdaten-1", "Testdaten-2", "Testdaten-3"];
  return daten;
}

function logTestResult(testName, erfolgreich) {
  let status = erfolgreich ? "✓ BESTANDEN" : "✗ FEHLGESCHLAGEN";
  console.log(testName);
  console.log(status);
}

// ===== Simulation der Haupt-Testdatei =====
// Normalerweise würde hier import { generateTestData, logTestResult } from './testUtils.js'; stehen

// Funktionen verwenden
let meineDaten = generateTestData();
console.log(meineDaten);

logTestResult("Login-Test", true);
logTestResult("Navigation-Test", false);

Abschluss & Tipp

Bleib dran und probiere jeden Code direkt im Browser auf playcode.io aus! Experimentiere mit kleinen Änderungen. Je mehr du spielerisch ausprobierst, desto besser verstehst du, wie JavaScript funktioniert und bist perfekt gerüstet für deine ersten eigenen automatisierten Tests!

Veröffentlicht
24. Juli 2025
Aktualisiert
24. Juli 2025

Bleib auf dem Laufenden

Abonniere unseren RSS-Feed und verpasse keine neuen Artikel zu Testautomatisierung

Unsere Kurse

Vertiefe dein Wissen mit unseren praxisnahen Testautomatisierung-Kursen