Testing Files Generator
Polski

Generuj pliki testowe o zadanym rozmiarze

PDF, PNG, DOCX, ZIP - razem 30 formatów, a każdy to prawdziwy plik, który otwiera się w programie, do którego należy, i ma dokładnie taki rozmiar, o jaki poprosisz. Każdy przebieg zapisuje też, co Twoja aplikacja ma z każdym plikiem zrobić. Wiersz poleceń i okno, darmowe i otwarte, działające wyłącznie na Twojej maszynie.

Darmowe i otwarte, GPL-3.0. Bez zakładania konta. Pliki dla Windows i macOS są podpisane i uruchamiają się bez ostrzeżenia.

Okno programu Testing Files Generator przygotowane do zapisania wsadu plików testowych
Okno programu przygotowane do zapisania wsadu plików. Za wierszem poleceń stoi ten sam silnik.

Problem

Zrobić jeden plik testowy jest łatwo. Zrobić właściwy tysiąc to już robota

Testujesz oprogramowanie, które przyjmuje pliki od ludzi. Prędzej czy później potrzebujesz:

To właśnie zastępuje. Powstało dla inżynierów QA, automatyzacji testów i każdego, kogo kod ma za sobą formularz uploadu, import danych, parser albo limit miejsca.

Czym to się wyróżnia

Inne generatory kończą na bajtach. Ten odpowiada na pytanie, które naprawdę zadaje test

Katalog plików zostawia Cię z decyzją, co każdy z nich ma właściwie udowodnić. Tutaj każdy przebieg zapisuje obok plików manifest.json - zwykłą listę wszystkiego, co powstało, a przy każdej pozycji zadeklarowane oczekiwanie.

Załóżmy, że Twój endpoint przyjmuje 1 MB. Poproś o trzy pliki leżące na tej granicy:

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
PlikBajtówSystem powinienBo
1mb_under_1b.pdf1048575przyjąćmieści się w limicie
1mb_at_limit.pdf1048576przyjąćsam limit jest dozwolony
1mb_over_1b.pdf1048577odrzucićsize_limit

Trzy pliki, trzy różne odpowiedzi, w postaci czytelnej dla maszyny. Test czyta manifest, zamiast żebyś pisał asercje ręcznie:

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

Tam, gdzie odpowiedź zależy od Twojej własnej polityki, manifest to mówi

Zapisuje unspecified, zamiast wymyślać oczekiwanie. Generator, który zgaduje, produkuje fałszywe błędy, a zestaw testów, który krzyczy bez powodu, zostaje wyłączony.

Presety

Wybierz pytanie, dostań cały zestaw

Preset to zestaw plików testowych zaprojektowany wokół jednego pytania testowego, więc nie musisz sam ustalać, który plik czego dowodzi. Każdy ma stronę, która mówi, co zwykle znajduje, co jest w zestawie i jakie ustawienia przyjmuje.

Wszystkie presety i to, jak mają się do przepisów

Szybki start

Trzy polecenia, żeby zobaczyć, jak to działa

  1. Zrób plik

    Jeden PNG, dokładnie dwa megabajty:

    tfg generate --format png --size 2mb --out ./fixtures
  2. Zrób dużo plików

    Dziesięć tysięcy plików logów, każdy od jednego do ośmiu kilobajtów, z rozmiarami losowanymi z ziarna, więc jutro dostaniesz ten sam zestaw. Każdy przebieg dostaje własny katalog - manifest jest jedynym zapisem tego, co przebieg zapisał, więc narzędzie odmawia nadpisania go drugim:

    tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs
  3. Sprawdź je, a potem usuń

    verify mówi, że nic się nie ruszyło. cleanup usuwa dokładnie to, co zostało zapisane, i nic poza tym:

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

Rozmiary liczą się po 1024, tak jak pokazuje je menedżer plików, więc 2mb znaczy 2097152 bajty. Zwykła liczba bajtów też zadziała. Dokumentacja opisuje przepisy, manifest i kody wyjścia.

Co dostajesz

Zbudowane pod zestaw, który chodzi bez nadzoru

Pobieranie

Wybierz wersję dla swojego systemu

Rozpakuj archiwum i uruchom. tfg to wiersz poleceń, a tfg-gui to okno. Nie ma instalatora i nie trzeba niczego dokładać do systemu.

System Wiersz poleceń Okno
Windows amd64, arm64 amd64
Linux amd64, arm64 amd64
macOS arm64 arm64

Co jest podpisane, a co nie

Pliki dla Windows i macOS są podpisane, więc uruchamiają się bez ostrzeżenia o nieznanym wydawcy. Pliki dla Linuksa nie są, bo na Linuksie nie ma czym ich podpisać. Każde archiwum jest wypisane w pliku verify-SHA256SUMS.txt na stronie wydania, więc możesz sprawdzić, co pobrałeś.

Darmowe i otwarte, GPL-3.0. Bez zakładania konta. Pliki dla Windows i macOS są podpisane i uruchamiają się bez ostrzeżenia.