Generujte skutečné testovací soubory v přesné velikosti
PDF, PNG, DOCX, ZIP - celkem 26 formátů a každý je skutečný soubor, který se otevře v programu, kam patří, v přesně té velikosti, o kterou jste požádali. Každý běh také zapisuje, co má vaše aplikace s každým souborem udělat. Příkazový řádek a desktopové okno, zdarma a open source, celé na vašem počítači.
Zdarma a open source, GPL-3.0. Žádná registrace. Stažené soubory pro Windows a macOS jsou podepsané a spustí se bez varování.
-
26
skutečných formátů, každý se otevře v programu, kam patří
-
1 bajt
přesnost každé požadované velikosti, nikdy mlčky nezaokrouhlená
-
0
spojení kamkoli - žádný účet, žádná telemetrie, žádná kontrola aktualizací
Problém
Vytvořit jeden testovací soubor je snadné. Vytvořit těch správných tisíc je ta únavná část
Testujete software, který přijímá soubory od lidí. Dříve nebo později budete potřebovat:
- PDF o přesně 10 MB, abyste zjistili, zda je limit nahrávání skutečný
- tři soubory po obou stranách tohoto limitu, abyste zachytili chyby o jedna
- 10 000 souborů logu, abyste viděli, co udělá noční úloha, když je složka velká
- ZIP, který skutečně obsahuje 200 dokumentů, ne prázdnou skořápku se správnou příponou
- soubor o 4 GB, aniž byste ve svém repozitáři drželi soubor o 4 GB
- stejné fixtures na notebooku i na build serveru, bajt po bajtu
To je to, co toto nahrazuje. Je určeno pro QA inženýry, automatizaci testů a každého, za jehož kódem stojí formulář pro nahrávání, importní rutina, parser nebo kvóta úložiště.
Čím se liší
Jiné generátory končí u bajtů. Tento odpovídá na to, na co se váš test skutečně ptá
Složka souborů vás stále nechává rozhodovat, co má který dokazovat. Každý běh tady zapíše vedle
souborů manifest.json - prostý seznam všeho vytvořeného a u každé položky
deklarované očekávání.
Řekněme, že váš endpoint pro nahrávání povoluje 1 MB. Požádejte o tři soubory, které leží na té hranici:
tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
| Soubor | Bajty | Váš systém má | Protože |
|---|---|---|---|
1mb_under_1b.pdf | 1048575 | přijmout | je uvnitř limitu |
1mb_at_limit.pdf | 1048576 | přijmout | samotný limit je povolen |
1mb_over_1b.pdf | 1048577 | odmítnout | size_limit |
Tři soubory, tři různé odpovědi, ve strojově čitelné podobě. Váš test čte manifest místo toho, abyste vy ručně psali aserce:
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"]
Kde odpověď závisí na vaší vlastní politice, manifest to říká
Zapíše unspecified, místo aby vymýšlel očekávání. Generátor, který hádá, vytváří
falešná selhání a sada testů, která křičí vlk, bude vypnuta.
Předvolby
Vyberte otázku, získejte celou sadu
Předvolba je sada testovacích souborů navržená kolem jedné testovací otázky, abyste nemuseli vymýšlet, které soubory co dokazují. Každá má stránku, která říká, co obvykle najde, co je v sadě a jaké nastavení přijímá.
-
Projde platný soubor tak malý, jak formát dovolí?
empty-and-minimal -
Uloží, zobrazí a vrátí můj systém název souboru, který nečekal?
filename-handling -
Je limit velikosti vynucován přesně tam, kde je deklarován?
size-boundaries -
Přežije můj import tabulek to, co exportují skutečné nástroje?
tabular-import -
Ví moje čtečka, v jakém kódování soubor je, nebo hádá?
text-encoding -
Přijme můj formulář pro nahrávání to, co má, a zbytek odmítne?
upload-validation
Rychlý start
Tři příkazy, abyste to viděli fungovat
-
Vytvořte soubor
Jedno PNG, přesně dva megabajty:
tfg generate --format png --size 2mb --out ./fixtures -
Vytvořte hodně souborů
Deset tisíc souborů logu, každý mezi jedním a osmi kilobajty, s velikostmi losovanými ze seedu, aby zítra vyšla stejná sada. Dejte každému běhu vlastní adresář - manifest je jediný záznam o tom, co běh zapsal, takže nástroj odmítne zapsat druhý přes něj:
tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs -
Ověřte je a pak je odstraňte
verifyvám řekne, že se nic nepohnulo.cleanupodstraní přesně to, co bylo zapsáno, a nic jiného:tfg verify ./logs/manifest.json tfg cleanup ./logs/manifest.json --yes
Velikosti se počítají po 1024, jak to dělá váš správce souborů, takže 2mb znamená
2097152 bajtů. Funguje i prostý počet bajtů. Dokumentace pokrývá
recepty, manifest a návratové kódy.
Co získáte
Vytvořeno pro sadu testů, která běží bez dozoru
-
Přesná velikost, na bajt
Požádejte o 10485761 bajtů a dostanete přesně tolik. Velikost, které formát nedosáhne, je chyba s důvodem, nikdy soubor špatné velikosti.
-
26 skutečných formátů
Ne vycpávkové nuly s příponou. Vygenerované PNG se otevře v prohlížeči obrázků, DOCX ve Wordu, ZIP se rozbalí. Každý formát je před vydáním ověřen nezávislými čtečkami.
-
Manifest, který je testovací orákulum
Cesta, velikost, SHA-256, formát, seed, verze nástroje - a co má váš systém se souborem udělat.
-
Opakovatelné
Stejný recept a stejný seed, stejné bajty, na jakémkoli počítači. Commitujte malý recept YAML místo velkých binárních fixtures.
-
Dvě rozhraní, jeden motor
Příkazový řádek vytvořený pro CI a desktopové okno pro průzkumné testování. Ani jedno není osekanou verzí druhého a test je porovnává schopnost po schopnosti.
-
Zcela offline
Žádný účet, žádný cloud, žádná telemetrie, žádná kontrola aktualizací. V binárce příkazového řádku není zkompilován vůbec žádný síťový zásobník.
Stažení
Vyberte verzi pro svůj systém
Rozbalte archiv a spusťte ho. tfg je příkazový řádek a tfg-gui je
desktopové okno. Není tu instalátor a nic, co by se do vašeho počítače přidávalo.
| Systém | Příkazový řádek | Desktopové okno |
|---|---|---|
| Windows | amd64, arm64 |
amd64 |
| Linux | amd64, arm64 |
amd64 |
| macOS | arm64 |
arm64 |
Co je podepsáno a co ne
Soubory ke stažení pro Windows a macOS jsou podepsané, takže se spustí bez varování o neznámém
vývojáři. Ty pro Linux ne, protože desktopový Linux nemá ekvivalent, kterým by je šlo
podepsat. Každý archiv je uveden v verify-SHA256SUMS.txt na stránce vydání, takže
můžete ověřit, co jste stáhli.
Zdarma a open source, GPL-3.0. Žádná registrace. Stažené soubory pro Windows a macOS jsou podepsané a spustí se bez varování.