Generazione di file fittizi

Genera nel solo navigatore file fittizi della dimensione esatta richiesta: immagini, audio, filmati, PDF, testi. Comodo per collaudare i limiti di dimensione dei moduli di caricamento. I file non sono mai trasmessi ad alcun servente.

Formato

Formato Estensione Tipo di supporto Limite della specifica Note
Testo (TXT) .txt text/plain Praticamente illimitato Riempito con testo leggibile ripetuto
CSV .csv text/csv Praticamente illimitato Dati tabellari fittizi con riga d'intestazione
JSON .json application/json Praticamente illimitato Riempito in un unico campo di testo
Binario (BIN) .bin application/octet-stream Praticamente illimitato Sequenza arbitraria che ripete i valori da 0x00 a 0xFF
Immagine (PNG) .png image/png Praticamente illimitato Immagine valida di un pixel più blocchi di riempimento
Audio (WAV) .wav audio/wav 4 GiB Dati PCM silenziosi, realmente riproducibili
Filmato (MP4) .mp4 video/mp4 Praticamente illimitato Registrazione reale nei navigatori compatibili, altrimenti un segnaposto valido nella sola struttura
Filmato (WebM) .webm video/webm Praticamente illimitato Alcuni secondi di animazione realmente registrati, soltanto nei navigatori compatibili
PDF .pdf application/pdf Praticamente illimitato PDF valido di una pagina bianca
ZIP .zip application/zip 4 GiB Archivio con una sola voce non compressa

Che cos'è un generatore di file fittizi

Quando si sviluppa una funzione di caricamento, occorre verificare che i limiti di dimensione e i controlli sull'estensione funzionino davvero come previsto. Per farlo serve un file «esattamente di un certo numero di byte, ma comunque valido per il proprio formato», e non è affatto scontato averne uno a portata di mano. Questo strumento genera testo, immagini, audio, video, PDF, archivi ZIP e altro ancora, ciascuno esattamente nella dimensione richiesta.

Ogni file generato è composto da dati validi secondo la specifica del proprio formato. Molti formati riservano aree che un analizzatore può tranquillamente ignorare, e lo strumento le usa proprio per riempire fino alla dimensione voluta, così l'apertura non genera mai errori. L'intera elaborazione avviene nel browser e nulla viene mai inviato a un server. WAV e ZIP restano comunque limitati a 4 GiB dalla rispettiva specifica di formato.

Come generare un file fittizio

  1. Scegliere il formato Selezionate il formato accettato dal sistema che volete collaudare. Per verificare i controlli su estensione o tipo di supporto, scegliete esattamente quel formato.
  2. Indicare la dimensione Inserite un numero e un'unità di misura. Con un limite «di 10 MB», il confine cambia a seconda che si interpreti come 10.000.000 o 10.485.760 byte.
  3. Impostare il nome del file Potete includere l'estensione nel nome scelto. Modificatelo se volete collaudare regole di rifiuto basate sul nome del file.
  4. Generare e scaricare Premendo «Genera» il file viene creato. Con dimensioni elevate l'operazione richiede più tempo e può essere annullata in qualsiasi momento.

Consigli per sfruttarlo al meglio

  • La logica di convalida dei moduli di caricamento verifica spesso separatamente tre cose: estensione, tipo di supporto e dimensione. Poiché questo strumento genera valori conformi alla specifica in tutti e tre, potrete collaudare mirando al solo limite di dimensione.
  • Un limite «di 10 MB» corrisponde, secondo le realizzazioni, a 10.000.000 di byte oppure a 10.485.760 byte. Poiché l'elenco delle unità permette entrambi i criteri, potrete provare tanto il valore esatto del confine quanto quello che lo supera di un byte.
  • In Chrome ed Edge la scrittura avviene direttamente in flusso sull'unità di destinazione e si possono quindi generare file di decine di gigabyte senza gravare sulla memoria. In Firefox e Safari il file si compone in memoria e la dimensione ha un limite pratico.
  • Per i filmati, nei navigatori compatibili si registrano davvero alcuni secondi di animazione con il codificatore incorporato: aprendoli si vedranno riprodurre. Il resto, cioè il riempimento che occupa la maggior parte del file, e il contenuto degli altri formati di immagine e audio sono fittizi: lo scopo resta la verifica di dimensione, estensione e tipo di supporto.

Impieghi dei file fittizi

Collaudo dei valori limite di caricamento

Create un file esattamente al limite e uno che lo supera di un byte, poi provateli entrambi: così verificate se il messaggio di errore compare esattamente dove previsto dalla specifica.

Verifica dei controlli su estensione e tipo di supporto

Generate un formato consentito e uno vietato e inviateli entrambi, per capire quale dei due criteri sta effettivamente causando il rifiuto.

Controllo del comportamento nei trasferimenti di grandi dimensioni

Con file di diversi gigabyte potete verificare che l'indicatore di avanzamento, i tempi massimi e la ripresa dopo un'interruzione funzionino correttamente, senza dover procurarvi dati reali.

Stima dello spazio di archiviazione e della banda

Collocando davvero un file della dimensione prevista, potete misurare in modo concreto il consumo di spazio e il tempo di trasferimento.

Termini legati alla convalida dei file

Tipo di supporto (MIME)
Una stringa che indica il genere di un file, scritta ad esempio come image/png, usata comunemente per decidere se un caricamento è ammesso.
Collaudo dei valori limite
Un metodo di verifica che controlla il punto esatto di un limite insieme ai valori appena prima e appena dopo, perché è lì che si concentrano più spesso i difetti.
Riempimento
Dati privi di significato aggiunti solo per raggiungere la dimensione desiderata. Vengono collocati in aree che il formato consente di ignorare, così il file resta integro.
GiB e GB
Un GiB corrisponde a 1.073.741.824 byte, mentre un GB corrisponde a 1.000.000.000 byte. Questa differenza è una causa frequente di interpretazioni discordanti dei limiti di dimensione.
Scrittura in flusso
Un metodo che scrive i dati verso la destinazione un po' alla volta, così anche i file molto grandi possono essere generati senza doverli caricare interamente in memoria.
Valore limite (boundary)
Il punto esatto in cui un limite passa da accettato a rifiutato: è la zona più utile da collaudare perché rivela con precisione dove scatta il controllo.

Domande frequenti

No. La generazione avviene interamente nel navigatore e il contenuto non è mai trasmesso ad alcun servente.

Sì: nei navigatori compatibili si registrano realmente alcuni secondi di animazione con il codificatore incorporato e aprendo il file lo si vede riprodurre. La maggior parte del file è riempimento, necessario a raggiungere la dimensione esatta. Nei navigatori che non sanno registrare, il formato MP4 passa automaticamente a un segnaposto valido nella sola struttura e la generazione non fallisce; il formato WebM è selezionabile soltanto dove la registrazione è possibile.

Perché in entrambi i formati il campo che registra la dimensione è fissato dalla specifica a 32 bit, cioè a circa 4,29 miliardi di byte. Non è un limite della nostra realizzazione, ma della specifica stessa.

I formati TXT, CSV, JSON, BIN, PNG, PDF, MP4 e WebM non hanno limiti di specifica: con una versione recente di Chrome o di Edge, che consentono la scrittura diretta su disco, si possono generare dimensioni molto elevate.
Tool-kun

A proposito — il confine fra un file valido e un file corrotto

Quasi tutti i formati prevedono aree che l'analizzatore può legittimamente saltare: i blocchi sconosciuti del PNG, le scatole libere dell'MP4, gli elementi vuoti del WebM, l'area dei commenti dello ZIP. Erano nate come spazi riservati a future estensioni, che gli analizzatori dell'epoca dovevano ignorare, e riempirle non corrompe il file.

Per i filmati, collocando prima del riempimento un video autentico si ottiene un file realmente riproducibile. Poiché scrivere di proprio pugno la codifica bit per bit di un codec video renderebbe difficile garantirne l'esattezza, si preferisce far registrare alcuni secondi di animazione al codificatore incorporato nel navigatore e accodarvi il riempimento: un accorgimento che concilia il principio di restituire sempre un file certamente valido con il desiderio di un filmato davvero visibile.

È curioso che un archivio ZIP sia progettato in modo da rivelare l'elenco del proprio contenuto leggendone soltanto la parte finale, il cosiddetto indice centrale. Si dice che sia un retaggio dell'epoca dei nastri magnetici, in cui si procedeva a ritroso dalla fine, ed è ancora oggi la ragione per cui da un archivio voluminoso si può estrarre rapidamente un solo file.