Testing Files Generator
Deutsch

So erstellst du eine Datei in exakter Größe

Jedes System hat dafür einen Befehl, alle drei stehen unten. Sie liefern dir eine Datei mit genau der richtigen Byte-Zahl - und für viele Tests ist das alles, was du brauchst. Jeder Befehl auf dieser Seite wurde vor der Veröffentlichung ausgeführt, auf dem System, zu dem er gehört.

Die kurze Antwort

Windows: fsutil file createnew name 10485760. Linux: dd if=/dev/zero of=name bs=1M count=10. macOS: mkfile 10m name. Größen werden in Bytes angegeben, und 10 MB, so gezählt wie dein Dateimanager zählt, sind 10485760 davon.

Windows

fsutil und eine PowerShell-Variante, die nichts Zusätzliches braucht

fsutil gehört zu Windows. Es nimmt die Größe in Bytes, rechne die Zahl also vorher aus - 10 MB sind 10485760, 100 MB sind 104857600, 1 GB ist 1073741824.

fsutil file createnew test10mb.bin 10485760

Gemessen unter Windows 11: Es funktioniert in einer normalen Eingabeaufforderung und braucht keine erhöhten Rechte, und die Datei hat genau 10485760 Bytes.

PowerShell kann dasselbe, ohne ein anderes Programm aufzurufen, und versteht Einheiten:

$file = New-Object System.IO.FileStream "test10mb.bin", Create, ReadWrite
$file.SetLength(10MB)
$file.Close()

10MB bedeutet in PowerShell 10485760 Bytes, dieselbe Zählung auf 1024er-Basis, die der Explorer verwendet, die beiden Befehle oben erzeugen also dieselbe Größe.

Linux

dd, truncate und fallocate und der Unterschied, der Leute erwischt

dd kennt jeder. Es schreibt die Bytes wirklich:

dd if=/dev/zero of=test10mb.bin bs=1M count=10

truncate ist sofort fertig, und genau das ist der Haken. Gemessen unter Alpine Linux meldet die Datei 10485760 Bytes und belegt null Blöcke - sie ist eine Sparse-Datei. Wer sie liest, bekommt zehn Megabyte Nullen, aber der Datenträger hat den Platz nie hergegeben:

truncate -s 10M test10mb.bin

Das ist für den Test eines Upload-Limits in Ordnung und für den Test einer Datenträgerquote irreführend. fallocate ist das Mittel der Wahl, wenn der Platz wirklich belegt sein muss:

fallocate -l 10M test10mb.bin

Und wenn der Inhalt inkompressibel sein muss, damit ein Archivierer ihn nicht wieder zusammendrücken kann:

head -c 10485760 /dev/urandom > test10mb.bin

macOS

mkfile, das nicht sparse ist, und die beiden, die du schon kennst

macOS liefert mkfile mit. Gemessen unter macOS 26.6.2: 10485760 Bytes und 20480 Blöcke, der Platz ist also wirklich belegt statt nur versprochen:

mkfile 10m test10mb.bin

dd und truncate gibt es ebenfalls, und sie verhalten sich wie unter Linux:

dd if=/dev/zero of=test10mb.bin bs=1m count=10
truncate -s 10M test10mb.bin

Wo das nicht mehr reicht

Eine Datei in der richtigen Größe ist keine Datei der richtigen Art

Alles oben Genannte liefert dir einen Block aus Nullen. Das reicht, wenn das Getestete nur auf die Größe schaut - ein Upload-Limit, eine Quote, eine Übertragung. Es reicht nicht mehr, sobald irgendetwas die Datei öffnet.

Gemessen, und es lohnt sich, das selbst zu probieren: Erzeuge mit fsutil eine 2-MB-Datei, nenne sie photo.png und gib sie einer Bildbibliothek. Pillow antwortet cannot identify image file. Es ist kein PNG. Es war nie eines - nur der Name behauptete es.

Das ist wichtiger, als es klingt, wegen der Richtung, in der der Test dann fehlschlägt. Dein Upload-Endpunkt weist die Datei ab, dein Test wird grün, und du schließt, dass das Größenlimit funktioniert. Er hat sie nicht wegen der Größe abgewiesen. Er hat sie abgewiesen, weil die Bytes kein Bild waren, und die Regel, die du testen wolltest, wurde nie erreicht.

Der andere Weg

Eine echte Datei dieses Formats, in genau der Größe, die du verlangt hast

Das ist es, was Testing Files Generator tut. Die Datei ist eine echte ihres Formats - sie öffnet sich in der Software, zu der sie gehört - und hat die exakte Byte-Zahl, die du verlangt hast, auf das Byte genau:

tfg generate --format png --size 10mb --out ./fixtures

Verlange eine Größe, die ein Format nicht erreichen kann, und du bekommst einen Fehler, der die Untergrenze und ihren Grund nennt, nie eine Datei in der falschen Größe. Die Formate-Seite listet jedes Format mit der kleinsten Datei auf, die es erzeugen kann.

Und ein Limit sind drei Testfälle statt einem, deshalb baut das Tool alle drei:

tfg generate --format pdf --boundary 10mb --out ./edges

Das ergibt 10485759, 10485760 und 10485761 Bytes und ein Manifest, das sagt, welche davon dein System akzeptieren und welche es ablehnen soll. Die Anwendungsfälle-Seite geht das und vier weitere Aufgaben durch, für die es gebaut ist.

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

Was solltest du also verwenden?

Beides steht auf dieser Seite, weil beides manchmal richtig ist. Der Fehler, den es zu vermeiden gilt, ist, das Erste zu verwenden, wo das Zweite nötig ist, und den grünen Test als Beweis zu lesen.