Testing Files Generator
Deutsch

Echte Testdateien in jeder exakten Größe erzeugen

PDF, PNG, DOCX, ZIP - insgesamt 26 Formate, und jedes ist eine echte Datei, die sich in der Software öffnet, zu der sie gehört, in genau der Größe, die du verlangt hast. Jeder Lauf hält außerdem fest, was deine Anwendung mit jeder Datei tun soll. Kommandozeile und Desktop-Fenster, kostenlos und Open Source, vollständig auf deinem Rechner.

Kostenlos und Open Source, GPL-3.0. Keine Anmeldung nötig. Die Downloads für Windows und macOS sind signiert und starten ohne Warnung.

Das Desktop-Fenster von Testing Files Generator, eingerichtet für einen Stapel Testdateien
Das Desktop-Fenster, eingerichtet für einen Stapel Dateien. Dieselbe Engine läuft hinter der Kommandozeile.

Das Problem

Eine Testdatei zu machen ist einfach. Die richtigen tausend zu machen ist das Mühsame

Du testest Software, die Dateien von Menschen annimmt. Früher oder später brauchst du:

Genau das ersetzt dieses Tool. Es ist gebaut für QA-Engineers, Testautomatisierung und alle, deren Code ein Upload-Formular, eine Importroutine, einen Parser oder ein Speicherkontingent hinter sich hat.

Was es anders macht

Andere Generatoren hören bei den Bytes auf. Dieser beantwortet, was dein Test wirklich fragt

Ein Ordner voller Dateien lässt dich weiter entscheiden, was jede davon belegen soll. Jeder Lauf schreibt hier ein manifest.json neben die Dateien - eine einfache Liste von allem, was erzeugt wurde, und zu jedem Eintrag eine deklarierte Erwartung.

Angenommen, dein Upload-Endpunkt erlaubt 1 MB. Fordere die drei Dateien an, die auf dieser Linie liegen:

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
DateiBytesDein System sollWeil
1mb_under_1b.pdf1048575akzeptierensie liegt innerhalb des Limits
1mb_at_limit.pdf1048576akzeptierendas Limit selbst ist erlaubt
1mb_over_1b.pdf1048577ablehnensize_limit

Drei Dateien, drei verschiedene Antworten, in maschinenlesbarer Form. Dein Test liest das Manifest, statt dass du die Assertions von Hand schreibst:

import json, os

directory = "edges"
manifest = json.load(open(os.path.join(directory, "manifest.json")))

for entry in manifest["files"]:
    response = upload(os.path.join(directory, entry["path"]))
    outcome = entry["expected"]["outcome"]
    if outcome == "accept":
        assert response.ok, entry["path"]
    elif outcome == "reject":
        assert not response.ok, entry["path"]

Wo die Antwort von deiner eigenen Richtlinie abhängt, sagt das Manifest das

Es hält unspecified fest, statt eine Erwartung zu erfinden. Ein Generator, der rät, erzeugt falsche Fehlschläge, und eine Testsuite, die ständig Alarm schlägt, wird abgeschaltet.

Presets

Wähle die Frage, bekomme das ganze Set

Ein Preset ist ein Set aus Testdateien, das um eine Testfrage herum entworfen wurde, damit du nicht selbst herausfinden musst, welche Dateien was belegen. Jedes hat eine eigene Seite mit dem, was es meist findet, was im Set steckt und welche Einstellungen es kennt.

Alle Presets und wie sie sich zu Rezepten verhalten

Schnellstart

Drei Befehle, um es in Aktion zu sehen

  1. Eine Datei erzeugen

    Ein PNG, genau zwei Megabyte:

    tfg generate --format png --size 2mb --out ./fixtures
  2. Viele Dateien erzeugen

    Zehntausend Logdateien, jede zwischen einem und acht Kilobyte, die Größen werden aus dem Seed gezogen, sodass morgen dasselbe Set herauskommt. Gib jedem Lauf ein eigenes Verzeichnis - das Manifest ist die einzige Aufzeichnung dessen, was ein Lauf geschrieben hat, deshalb weigert sich das Tool, ein zweites darüber zu schreiben:

    tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs
  3. Prüfen und dann entfernen

    verify sagt dir, dass sich nichts verändert hat. cleanup entfernt genau das, was geschrieben wurde, und sonst nichts:

    tfg verify ./logs/manifest.json
    tfg cleanup ./logs/manifest.json --yes

Größen zählen in 1024ern, wie es dein Dateimanager tut, 2mb bedeutet also 2097152 Bytes. Eine einfache Byte-Zahl funktioniert auch. Die Dokumentation behandelt Rezepte, das Manifest und die Exit-Codes.

Was du bekommst

Gebaut für eine Testsuite, die unbeaufsichtigt läuft

Download

Wähle den Build für dein System

Entpacke das Archiv und starte es. tfg ist die Kommandozeile und tfg-gui das Desktop-Fenster. Es gibt keinen Installer und nichts, was auf deinem Rechner hinzugefügt werden müsste.

System Kommandozeile Desktop-Fenster
Windows amd64, arm64 amd64
Linux amd64, arm64 amd64
macOS arm64 arm64

Was signiert ist und was nicht

Die Downloads für Windows und macOS sind signiert und starten daher ohne Warnung vor einem unbekannten Entwickler. Die für Linux nicht, weil es unter Desktop-Linux nichts Vergleichbares zum Signieren gibt. Jedes Archiv steht auf der Release-Seite in verify-SHA256SUMS.txt, sodass du prüfen kannst, was du heruntergeladen hast.

Kostenlos und Open Source, GPL-3.0. Keine Anmeldung nötig. Die Downloads für Windows und macOS sind signiert und starten ohne Warnung.