Testing Files Generator
Español

Genera archivos de prueba reales al tamaño exacto

PDF, PNG, DOCX, ZIP - 26 formatos en total, y cada uno es un archivo real que se abre en el programa que le corresponde, con exactamente el tamaño que pediste. Cada ejecución también anota qué debe hacer tu aplicación con cada archivo. Línea de comandos y ventana de escritorio, gratis y de código abierto, funcionando por completo en tu máquina.

Gratuito y de código abierto, GPL-3.0. Sin registro. Las descargas de Windows y macOS están firmadas y se inician sin advertencias.

La ventana de escritorio de Testing Files Generator, lista para escribir un lote de archivos de prueba
La ventana de escritorio, lista para escribir un lote de archivos. El mismo motor funciona detrás de la línea de comandos.

El problema

Hacer un archivo de prueba es fácil. Hacer los mil correctos es la parte tediosa

Estás probando software que acepta archivos de personas. Tarde o temprano necesitas:

Eso es lo que esto sustituye. Está pensado para ingenieros de QA, automatización de pruebas y cualquiera cuyo código tenga detrás un formulario de subida, una rutina de importación, un analizador o una cuota de almacenamiento.

Qué lo hace distinto

Otros generadores se quedan en los bytes. Este responde a lo que tu prueba realmente pregunta

Una carpeta de archivos te deja aún decidiendo qué se supone que demuestra cada uno. Cada ejecución escribe aquí un manifest.json junto a los archivos - una lista simple de todo lo producido y, para cada entrada, una expectativa declarada.

Supón que tu endpoint de subida permite 1 MB. Pide los tres archivos que están sobre esa línea:

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
ArchivoBytesTu sistema debePorque
1mb_under_1b.pdf1048575aceptarestá dentro del límite
1mb_at_limit.pdf1048576aceptarel propio límite está permitido
1mb_over_1b.pdf1048577rechazarsize_limit

Tres archivos, tres respuestas distintas, en forma legible por máquina. Tu prueba lee el manifiesto en lugar de que escribas las aserciones a mano:

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

Donde la respuesta depende de tu propia política, el manifiesto lo dice

Registra unspecified en lugar de inventar una expectativa. Un generador que adivina produce falsos fallos, y un conjunto de pruebas que da falsas alarmas acaba apagado.

Presets

Elige la pregunta, obtén el conjunto entero

Un preset es un conjunto de archivos de prueba diseñado en torno a una pregunta de prueba, para que no tengas que averiguar qué archivos demuestran qué. Cada uno tiene una página que dice qué suele encontrar, qué hay en el conjunto y cada ajuste que admite.

Todos los presets, y cómo se relacionan con las recetas

Inicio rápido

Tres comandos para verlo funcionar

  1. Crea un archivo

    Un PNG, exactamente dos megabytes:

    tfg generate --format png --size 2mb --out ./fixtures
  2. Crea muchos archivos

    Diez mil archivos de registro, cada uno de entre uno y ocho kilobytes, con los tamaños sacados de la semilla para que mañana dé el mismo conjunto. Dale a cada ejecución su propio directorio - el manifiesto es el único registro de lo que escribió una ejecución, así que la herramienta se niega a escribir un segundo encima:

    tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs
  3. Compruébalos y luego elimínalos

    verify te dice que nada se movió. cleanup elimina exactamente lo que se escribió y nada más:

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

Los tamaños cuentan de 1024 en 1024, como hace tu gestor de archivos, así que 2mb significa 2097152 bytes. Un número de bytes simple también sirve. La documentación cubre las recetas, el manifiesto y los códigos de salida.

Qué obtienes

Pensado para un conjunto de pruebas que corre sin supervisión

Descarga

Elige la versión para tu sistema

Descomprime el archivo y ejecútalo. tfg es la línea de comandos y tfg-gui es la ventana de escritorio. No hay instalador ni nada que añadir a tu máquina.

Sistema Línea de comandos Ventana de escritorio
Windows amd64, arm64 amd64
Linux amd64, arm64 amd64
macOS arm64 arm64

Qué está firmado y qué no

Las descargas de Windows y macOS están firmadas, así que se inician sin advertencia de desarrollador desconocido. Las de Linux no, porque Linux de escritorio no tiene un equivalente con el que firmarlas. Cada archivo aparece en verify-SHA256SUMS.txt en la página de versiones, para que puedas comprobar lo que descargaste.

Gratuito y de código abierto, GPL-3.0. Sin registro. Las descargas de Windows y macOS están firmadas y se inician sin advertencias.