Tam boyutta gerçek test dosyaları üretin
PDF, PNG, DOCX, ZIP - toplam 26 biçim ve her biri ait olduğu programda açılan, tam istediğiniz boyutta gerçek bir dosya. Her çalıştırma ayrıca uygulamanızın her dosyayla ne yapması gerektiğini de yazar. Komut satırı ve masaüstü penceresi, ücretsiz ve açık kaynak, tamamen makinenizde çalışır.
Ücretsiz ve açık kaynak, GPL-3.0. Kayıt gerekmez. Windows ve macOS indirmeleri imzalıdır ve uyarı vermeden başlar.
-
26
gerçek biçim, her biri ait olduğu programda açılır
-
1 bayt
istediğiniz her boyutun doğruluğu, asla sessizce yuvarlanmaz
-
0
hiçbir yere bağlantı - hesap yok, telemetri yok, güncelleme denetimi yok
Sorun
Bir test dosyası yapmak kolay. Doğru bini yapmak sıkıcı kısım
İnsanlardan dosya kabul eden bir yazılımı test ediyorsunuz. Er ya da geç şunlara ihtiyacınız olur:
- yükleme sınırının gerçek olup olmadığını anlamak için tam 10 MB'lık bir PDF
- bir eksik veya fazla hatalarını yakalamak için o sınırın iki yanındaki üç dosya
- klasör büyükken gece işinin ne yaptığını görmek için 10.000 günlük dosyası
- doğru uzantılı boş bir kabuk değil, gerçekten 200 belge içeren bir ZIP
- deponuzda 4 GB'lık bir dosya tutmadan 4 GB'lık bir dosya
- dizüstü bilgisayarınızda ve derleme sunucusunda aynı fixture'lar, bayt bayt
Bunun yerini alan şey bu. QA mühendisleri, test otomasyonu ve kodunun arkasında bir yükleme formu, içe aktarma rutini, ayrıştırıcı veya depolama kotası olan herkes için yapıldı.
Onu farklı kılan
Diğer üreticiler baytlarda durur. Bu, testinizin gerçekte ne sorduğunu yanıtlar
Bir dosya klasörü, her birinin neyi kanıtlaması gerektiğine yine sizin karar vermenize bırakır.
Burada her çalıştırma dosyaların yanına bir manifest.json yazar - üretilen her
şeyin düz bir listesi ve her girdi için bir bildirilmiş beklenti.
Yükleme endpoint'inizin 1 MB'a izin verdiğini varsayalım. O çizgideki üç dosyayı isteyin:
tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
| Dosya | Bayt | Sisteminiz | Çünkü |
|---|---|---|---|
1mb_under_1b.pdf | 1048575 | kabul etmeli | sınırın içinde |
1mb_at_limit.pdf | 1048576 | kabul etmeli | sınırın kendisine izin verilir |
1mb_over_1b.pdf | 1048577 | reddetmeli | size_limit |
Üç dosya, üç farklı yanıt, makine tarafından okunabilir biçimde. Testiniz, sizin elle assertion yazmanız yerine manifesti okur:
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"]
Yanıt kendi politikanıza bağlıysa manifest bunu söyler
Bir beklenti uydurmak yerine unspecified kaydeder. Tahmin yürüten bir üretici yanlış
hatalar üretir ve sürekli yalancı alarm veren bir test takımı kapatılır.
Hazır ayarlar
Soruyu seçin, setin tamamını alın
Hazır ayar, hangi dosyanın neyi kanıtladığını sizin çözmeniz gerekmesin diye tek bir test sorusu etrafında tasarlanmış bir test dosyası setidir. Her birinin, genelde ne bulduğunu, sette ne olduğunu ve kabul ettiği her ayarı anlatan bir sayfası vardır.
-
Biçimin izin verdiği kadar küçük, geçerli bir dosya geçer mi?
empty-and-minimal -
Sistemim beklemediği bir dosya adını saklayıp gösterecek ve geri verecek mi?
filename-handling -
Bir boyut sınırı tam bildirildiği yerde uygulanıyor mu?
size-boundaries -
Tablo içe aktarmam gerçek araçların dışa aktardıklarına dayanıyor mu?
tabular-import -
Okuyucum bir dosyanın hangi kodlamada olduğunu biliyor mu, yoksa tahmin mi ediyor?
text-encoding -
Yükleme formum alması gerekeni alıp geri kalanı reddediyor mu?
upload-validation
Hızlı başlangıç
Çalıştığını görmek için üç komut
-
Bir dosya üretin
Bir PNG, tam iki megabayt:
tfg generate --format png --size 2mb --out ./fixtures -
Çok sayıda dosya üretin
Her biri bir ile sekiz kilobayt arasında on bin günlük dosyası, boyutlar seed'den çekilir ki yarın aynı seti versin. Her çalıştırmaya kendi dizinini verin - manifest bir çalıştırmanın ne yazdığının tek kaydıdır, bu yüzden araç üzerine ikincisini yazmayı reddeder:
tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs -
Denetleyin, sonra silin
verifyhiçbir şeyin kımıldamadığını söyler.cleanupyazılanı tam olarak ve başka hiçbir şeyi silmez:tfg verify ./logs/manifest.json tfg cleanup ./logs/manifest.json --yes
Boyutlar, dosya yöneticinizin yaptığı gibi 1024'lerle sayılır, yani 2mb 2097152 bayt
demektir. Düz bir bayt sayısı da olur. Dokümantasyon tarifleri,
manifesti ve çıkış kodlarını kapsar.
Neler elde edersiniz
Gözetimsiz çalışan bir test takımı için yapıldı
-
Tam boyut, bayta kadar
10485761 bayt isteyin ve tam olarak onu alın. Bir biçimin ulaşamayacağı boyut nedeni olan bir hatadır, asla yanlış boyutta bir dosya değil.
-
26 gerçek biçim
Uzantılı dolgu sıfırları değil. Üretilmiş bir PNG resim görüntüleyicide, bir DOCX Word'de açılır, bir ZIP çıkarılır. Her biri yayımlanmadan önce bağımsız okuyucularla doğrulanır.
-
Test oracle'ı olan bir manifest
Yol, boyut, SHA-256, biçim, seed, araç sürümü - ve sisteminizin dosyayla ne yapması gerektiği.
-
Tekrarlanabilir
Aynı tarif ve aynı seed, aynı baytlar, her makinede. Büyük ikili fixture'lar yerine küçük bir YAML tarifini commit edin.
-
İki arayüz, tek motor
CI için yapılmış bir komut satırı ve keşif amaçlı testler için bir masaüstü penceresi. Hiçbiri diğerinin kırpılmış sürümü değildir ve bir test ikisini yetenek yetenek karşılaştırır.
-
Tamamen çevrimdışı
Hesap yok, bulut yok, telemetri yok, güncelleme denetimi yok. Komut satırı ikilisinin içine hiç ağ yığını derlenmemiştir.
İndirme
Sisteminiz için derlemeyi seçin
Arşivi açın ve çalıştırın. tfg komut satırı, tfg-gui masaüstü
penceresidir. Yükleyici yok ve makinenize eklenecek hiçbir şey yok.
| Sistem | Komut satırı | Masaüstü penceresi |
|---|---|---|
| Windows | amd64, arm64 |
amd64 |
| Linux | amd64, arm64 |
amd64 |
| macOS | arm64 |
arm64 |
Neler imzalı, neler değil
Windows ve macOS indirmeleri imzalıdır, bu yüzden bilinmeyen geliştirici uyarısı olmadan başlar.
Linux olanlar değildir, çünkü masaüstü Linux'ta onları imzalayacak bir karşılık yoktur. Her
arşiv sürüm sayfasındaki verify-SHA256SUMS.txt içinde listelenir, böylece
indirdiğinizi doğrulayabilirsiniz.
Ücretsiz ve açık kaynak, GPL-3.0. Kayıt gerekmez. Windows ve macOS indirmeleri imzalıdır ve uyarı vermeden başlar.