Buat file uji asli dengan ukuran tepat
PDF, PNG, DOCX, ZIP - 26 format seluruhnya, dan setiap file adalah file asli yang terbuka di aplikasi yang memilikinya, dengan ukuran persis seperti yang Anda minta. Setiap run juga mencatat apa yang harus dilakukan aplikasi Anda terhadap tiap file. Baris perintah dan jendela desktop, gratis dan open source, bekerja sepenuhnya di mesin Anda.
Gratis dan open source, GPL-3.0. Tanpa pendaftaran. Unduhan Windows dan macOS sudah ditandatangani dan berjalan tanpa peringatan.
-
26
format asli, masing-masing terbuka di aplikasi yang memilikinya
-
1 byte
ketepatan setiap ukuran yang Anda minta, tidak pernah dibulatkan diam-diam
-
0
koneksi ke mana pun - tanpa akun, tanpa telemetri, tanpa pemeriksaan pembaruan
Masalahnya
Membuat satu file uji itu mudah. Membuat seribu yang tepat adalah bagian yang membosankan
Anda menguji perangkat lunak yang menerima file dari orang. Cepat atau lambat Anda memerlukan:
- PDF berukuran tepat 10 MB, untuk mengetahui apakah batas unggahan itu nyata
- tiga file di kedua sisi batas itu, untuk menangkap kesalahan selisih satu
- 10.000 file log, untuk melihat apa yang dilakukan job malam saat foldernya besar
- ZIP yang benar-benar berisi 200 dokumen, bukan cangkang kosong dengan ekstensi yang tepat
- file 4 GB, tanpa menyimpan file 4 GB di repositori Anda
- fixture yang sama di laptop Anda dan di server build, byte demi byte
Itulah yang digantikan oleh alat ini. Dibuat untuk insinyur QA, otomasi pengujian, dan siapa pun yang kodenya memiliki formulir unggah, rutinitas impor, parser, atau kuota penyimpanan di baliknya.
Apa yang membuatnya berbeda
Generator lain berhenti di byte. Alat ini menjawab apa yang sebenarnya ditanyakan pengujian Anda
Sebuah folder berisi file masih membuat Anda yang memutuskan apa yang seharusnya dibuktikan tiap
file. Setiap run di sini menulis manifest.json di samping file - daftar sederhana
semua yang dihasilkan, dan untuk tiap entri sebuah ekspektasi yang dinyatakan.
Misalkan endpoint unggah Anda mengizinkan 1 MB. Mintalah tiga file yang berada di garis itu:
tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
| File | Byte | Sistem Anda harus | Karena |
|---|---|---|---|
1mb_under_1b.pdf | 1048575 | menerima | berada di dalam batas |
1mb_at_limit.pdf | 1048576 | menerima | batas itu sendiri diizinkan |
1mb_over_1b.pdf | 1048577 | menolak | size_limit |
Tiga file, tiga jawaban berbeda, dalam bentuk yang terbaca mesin. Pengujian Anda membaca manifes alih-alih Anda menulis asersi secara manual:
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"]
Bila jawabannya bergantung pada kebijakan Anda sendiri, manifes mengatakannya
Alat ini mencatat unspecified alih-alih mengarang ekspektasi. Generator yang menebak
menghasilkan kegagalan palsu, dan suite yang berteriak serigala akhirnya dimatikan.
Preset
Pilih pertanyaannya, dapatkan seluruh setnya
Preset adalah set file uji yang dirancang di sekitar satu pertanyaan pengujian, sehingga Anda tidak perlu mencari tahu file mana yang membuktikan apa. Masing-masing punya halaman yang menjelaskan apa yang biasanya ditemukan, isi set, dan setiap pengaturan yang diterimanya.
-
Apakah file valid yang sekecil yang diizinkan format dapat lolos?
empty-and-minimal -
Apakah sistem saya akan menyimpan, menampilkan, dan mengembalikan nama file yang tidak diduganya?
filename-handling -
Apakah batas ukuran ditegakkan tepat di tempat batas itu dinyatakan?
size-boundaries -
Apakah impor tabel saya tahan terhadap apa yang diekspor alat sungguhan?
tabular-import -
Apakah pembaca saya tahu enkoding suatu file, atau hanya menebak?
text-encoding -
Apakah formulir unggah saya menerima yang seharusnya dan menolak sisanya?
upload-validation
Mulai cepat
Tiga perintah untuk melihatnya bekerja
-
Buat satu file
Satu PNG, tepat dua megabyte:
tfg generate --format png --size 2mb --out ./fixtures -
Buat banyak file
Sepuluh ribu file log, masing-masing antara satu dan delapan kilobyte, dengan ukuran diundi dari seed sehingga besok menghasilkan set yang sama. Beri setiap run direktorinya sendiri - manifes adalah satu-satunya catatan tentang apa yang ditulis sebuah run, sehingga alat ini menolak menulis manifes kedua di atasnya:
tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs -
Periksa, lalu hapus
verifymemberi tahu bahwa tidak ada yang bergeser.cleanupmenghapus persis apa yang ditulis dan tidak lebih:tfg verify ./logs/manifest.json tfg cleanup ./logs/manifest.json --yes
Ukuran dihitung dalam kelipatan 1024, seperti pengelola file Anda, jadi 2mb berarti
2097152 byte. Jumlah byte biasa juga bisa. Dokumentasi membahas
resep, manifes, dan kode keluar.
Yang Anda dapatkan
Dibuat untuk suite yang berjalan tanpa pengawasan
-
Ukuran tepat, sampai ke byte
Minta 10485761 byte dan dapatkan persis itu. Ukuran yang tidak dapat dicapai format adalah galat dengan alasan, tidak pernah file berukuran salah.
-
26 format asli
Bukan nol pengisi dengan ekstensi. PNG yang dihasilkan terbuka di penampil gambar, DOCX terbuka di Word, ZIP bisa diekstrak. Masing-masing diperiksa dengan pembaca independen sebelum dirilis.
-
Manifes yang menjadi oracle pengujian
Path, ukuran, SHA-256, format, seed, versi alat - dan apa yang harus dilakukan sistem Anda terhadap file itu.
-
Dapat direproduksi
Resep dan seed yang sama, byte yang sama, di mesin mana pun. Commit resep YAML kecil alih-alih fixture biner besar.
-
Dua antarmuka, satu mesin
Baris perintah yang dibuat untuk CI dan jendela desktop untuk pengujian eksploratif. Tidak ada yang merupakan versi terpangkas dari yang lain, dan sebuah pengujian membandingkannya kemampuan demi kemampuan.
-
Sepenuhnya offline
Tanpa akun, tanpa cloud, tanpa telemetri, tanpa pemeriksaan pembaruan. Biner baris perintah sama sekali tidak memiliki stack jaringan yang dikompilasi di dalamnya.
Unduh
Pilih build untuk sistem Anda
Ekstrak arsip dan jalankan. tfg adalah baris perintah dan tfg-gui adalah
jendela desktop. Tidak ada installer dan tidak ada yang perlu ditambahkan ke mesin Anda.
| Sistem | Baris perintah | Jendela desktop |
|---|---|---|
| Windows | amd64, arm64 |
amd64 |
| Linux | amd64, arm64 |
amd64 |
| macOS | arm64 |
arm64 |
Apa yang ditandatangani, dan apa yang tidak
Unduhan Windows dan macOS ditandatangani, sehingga berjalan tanpa peringatan tentang pengembang tak
dikenal. Yang untuk Linux tidak, karena Linux desktop tidak punya padanan untuk
menandatanganinya. Setiap arsip tercantum di verify-SHA256SUMS.txt pada halaman
rilis, sehingga Anda dapat memeriksa apa yang Anda unduh.
Gratis dan open source, GPL-3.0. Tanpa pendaftaran. Unduhan Windows dan macOS sudah ditandatangani dan berjalan tanpa peringatan.