Testing Files Generator
한국어

정확한 크기의 실제 테스트 파일을 만드세요

PDF, PNG, DOCX, ZIP 등 모두 26가지 형식이며, 모두 해당 소프트웨어에서 열리는 실제 파일로 요청한 크기와 정확히 같습니다. 매 실행마다 애플리케이션이 각 파일을 어떻게 처리해야 하는지도 함께 기록합니다. 명령줄과 데스크톱 창, 무료 오픈 소스이며, 모두 여러분의 컴퓨터에서 동작합니다.

무료 오픈 소스, GPL-3.0. 가입이 필요 없습니다. Windows와 macOS 다운로드는 서명되어 있어 경고 없이 실행됩니다.

테스트 파일 배치를 쓸 준비가 된 Testing Files Generator 데스크톱 창
파일 배치를 쓸 준비가 된 데스크톱 창. 명령줄 뒤에서도 같은 엔진이 동작합니다.

문제

테스트 파일 하나를 만드는 것은 쉽습니다. 알맞은 천 개를 만드는 것이 번거로운 부분입니다

여러분은 사람들에게서 파일을 받는 소프트웨어를 테스트하고 있습니다. 머지않아 다음이 필요해집니다.

이것이 바로 이 도구가 대체하는 일입니다. QA 엔지니어, 테스트 자동화, 그리고 코드 뒤에 업로드 양식, 가져오기 루틴, 파서, 저장 용량 할당이 있는 모든 분을 위해 만들었습니다.

무엇이 다른가

다른 생성기는 바이트에서 멈춥니다. 이 도구는 테스트가 실제로 묻는 것에 답합니다

파일이 가득한 폴더만으로는 각 파일이 무엇을 증명해야 하는지 여전히 직접 정해야 합니다. 여기서는 실행할 때마다 파일 옆에 manifest.json을 씁니다. 만들어진 모든 것의 단순한 목록이며, 항목마다 선언된 기대값이 있습니다.

업로드 엔드포인트가 1MB까지 허용한다고 해 봅시다. 그 경계선 위에 놓인 파일 세 개를 요청합니다.

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
파일바이트시스템의 처리이유
1mb_under_1b.pdf1048575수락한도 안쪽입니다
1mb_at_limit.pdf1048576수락한도 값 자체는 허용됩니다
1mb_over_1b.pdf1048577거부size_limit

파일 세 개, 서로 다른 세 가지 답을 기계가 읽을 수 있는 형태로 줍니다. 어서션을 직접 쓰는 대신 테스트가 매니페스트를 읽습니다.

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

답이 여러분의 정책에 달려 있는 경우, 매니페스트는 그렇다고 말합니다

기대값을 지어내지 않고 unspecified를 기록합니다. 추측하는 생성기는 거짓 실패를 만들고, 거짓 경보를 울려 대는 테스트 묶음은 결국 꺼집니다.

프리셋

질문을 고르면 세트 전체를 얻습니다

프리셋은 하나의 테스트 질문을 중심으로 설계한 테스트 파일 세트로, 어떤 파일이 무엇을 증명하는지 직접 따져 볼 필요가 없습니다. 각 프리셋에는 보통 무엇을 찾아내는지, 세트에 무엇이 들어 있는지, 어떤 설정을 받는지 설명하는 페이지가 있습니다.

모든 프리셋과 레시피와의 관계

빠른 시작

동작을 확인하는 명령 세 개

  1. 파일 하나 만들기

    PNG 하나, 정확히 2메가바이트:

    tfg generate --format png --size 2mb --out ./fixtures
  2. 많은 파일 만들기

    각각 1KB에서 8KB 사이이고 크기를 시드에서 뽑은 로그 파일 1만 개로, 내일도 같은 세트가 나옵니다. 실행마다 고유한 디렉터리를 쓰세요. 매니페스트는 실행이 쓴 내용의 유일한 기록이므로, 도구는 그 위에 두 번째 매니페스트를 쓰기를 거부합니다.

    tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs
  3. 검사한 뒤 삭제하기

    verify는 아무것도 바뀌지 않았음을 알려 줍니다. cleanup은 쓰인 것만 정확히 삭제하고 다른 것은 건드리지 않습니다.

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

크기는 파일 관리자처럼 1024 단위로 세므로 2mb는 2097152바이트입니다. 바이트 수를 그대로 써도 됩니다. 문서에서 레시피, 매니페스트, 종료 코드를 다룹니다.

얻는 것

무인으로 실행되는 테스트 묶음을 위해 만들었습니다

다운로드

시스템에 맞는 빌드를 고르세요

압축 파일을 풀고 실행하세요. tfg는 명령줄이고 tfg-gui는 데스크톱 창입니다. 설치 프로그램은 없으며 컴퓨터에 추가할 것도 없습니다.

시스템 명령줄 데스크톱 창
Windows amd64, arm64 amd64
Linux amd64, arm64 amd64
macOS arm64 arm64

서명된 것과 그렇지 않은 것

Windows와 macOS 다운로드는 서명되어 있어 확인되지 않은 개발자 경고 없이 실행됩니다. Linux용은 데스크톱 Linux에 서명할 수 있는 대응 수단이 없어 서명되어 있지 않습니다. 모든 압축 파일은 릴리스 페이지의 verify-SHA256SUMS.txt에 나열되어 있으므로 내려받은 것을 확인할 수 있습니다.

무료 오픈 소스, GPL-3.0. 가입이 필요 없습니다. Windows와 macOS 다운로드는 서명되어 있어 경고 없이 실행됩니다.