Testing Files Generator
Nederlands

Genereer echte testbestanden in elke exacte grootte

PDF, PNG, DOCX, ZIP - 26 formaten in totaal, en elk is een echt bestand dat opent in het programma waartoe het behoort, in precies de grootte die je vroeg. Elke run schrijft ook op wat je applicatie met elk bestand moet doen. Opdrachtregel en bureaubladvenster, gratis en open source, volledig op je eigen machine.

Gratis en open source, GPL-3.0. Geen account nodig. De downloads voor Windows en macOS zijn ondertekend en starten zonder waarschuwing.

Het bureaubladvenster van Testing Files Generator, klaargezet om een reeks testbestanden te schrijven
Het bureaubladvenster, klaargezet om een reeks bestanden te schrijven. Dezelfde engine draait achter de opdrachtregel.

Het probleem

Eén testbestand maken is makkelijk. De juiste duizend maken is het vervelende deel

Je test software die bestanden van mensen aanneemt. Vroeg of laat heb je nodig:

Dat is wat dit vervangt. Het is gebouwd voor QA-engineers, testautomatisering en iedereen wiens code een uploadformulier, een importroutine, een parser of een opslagquotum achter zich heeft.

Wat het anders maakt

Andere generatoren stoppen bij de bytes. Deze beantwoordt wat je test werkelijk vraagt

Een map met bestanden laat je nog steeds beslissen wat elk bestand moet bewijzen. Elke run schrijft hier een manifest.json naast de bestanden - een eenvoudige lijst van alles wat is gemaakt, en bij elk item een gedeclareerde verwachting.

Stel dat je upload-endpoint 1 MB toestaat. Vraag de drie bestanden die op die lijn zitten:

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
BestandBytesJe systeem moetOmdat
1mb_under_1b.pdf1048575accepterenhet valt binnen de limiet
1mb_at_limit.pdf1048576accepterende limiet zelf is toegestaan
1mb_over_1b.pdf1048577weigerensize_limit

Drie bestanden, drie verschillende antwoorden, in machineleesbare vorm. Je test leest het manifest in plaats van dat jij de asserties met de hand schrijft:

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"]

Waar het antwoord van je eigen beleid afhangt, zegt het manifest dat

Het legt unspecified vast in plaats van een verwachting te verzinnen. Een generator die gokt levert valse fouten op, en een suite die loos alarm slaat wordt uitgezet.

Presets

Kies de vraag, krijg de hele set

Een preset is een set testbestanden ontworpen rond één testvraag, zodat je zelf niet hoeft uit te zoeken welke bestanden wat bewijzen. Elke heeft een pagina die zegt wat hij meestal vindt, wat er in de set zit en welke instellingen hij kent.

Alle presets, en hoe ze zich tot recepten verhouden

Snel starten

Drie opdrachten om het te zien werken

  1. Maak een bestand

    Eén PNG, precies twee megabyte:

    tfg generate --format png --size 2mb --out ./fixtures
  2. Maak veel bestanden

    Tienduizend logbestanden, elk tussen één en acht kilobyte, met groottes getrokken uit de seed zodat morgen dezelfde set oplevert. Geef elke run een eigen map - het manifest is het enige verslag van wat een run schreef, dus de tool weigert er een tweede overheen te schrijven:

    tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs
  3. Controleer ze en verwijder ze dan

    verify zegt je dat er niets verschoven is. cleanup verwijdert precies wat is geschreven en niets anders:

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

Groottes tellen in 1024-tallen, zoals je bestandsbeheer doet, dus 2mb betekent 2097152 bytes. Een gewoon aantal bytes werkt ook. De documentatie behandelt recepten, het manifest en de afsluitcodes.

Wat je krijgt

Gebouwd voor een suite die onbeheerd draait

Download

Kies de build voor je systeem

Pak het archief uit en start het. tfg is de opdrachtregel en tfg-gui is het bureaubladvenster. Er is geen installatieprogramma en niets om aan je machine toe te voegen.

Systeem Opdrachtregel Bureaubladvenster
Windows amd64, arm64 amd64
Linux amd64, arm64 amd64
macOS arm64 arm64

Wat is ondertekend, en wat niet

De downloads voor Windows en macOS zijn ondertekend, dus ze starten zonder waarschuwing over een onbekende ontwikkelaar. Die voor Linux niet, omdat desktop-Linux niets vergelijkbaars heeft om ze mee te ondertekenen. Elk archief staat in verify-SHA256SUMS.txt op de releasepagina, zodat je kunt controleren wat je hebt gedownload.

Gratis en open source, GPL-3.0. Geen account nodig. De downloads voor Windows en macOS zijn ondertekend en starten zonder waarschuwing.