सटीक आकार की असली टेस्ट फ़ाइलें बनाएँ
PDF, PNG, DOCX, ZIP - कुल 26 फ़ॉर्मैट, और हर एक असली फ़ाइल है जो अपने सॉफ़्टवेयर में खुलती है, ठीक उसी आकार में जो आपने माँगा। हर रन यह भी लिखता है कि आपके एप्लिकेशन को हर फ़ाइल के साथ क्या करना चाहिए। कमांड लाइन और डेस्कटॉप विंडो, मुफ़्त और ओपन सोर्स, पूरी तरह आपकी मशीन पर चलता है।
मुफ़्त और ओपन सोर्स, GPL-3.0। साइन अप की ज़रूरत नहीं। Windows और macOS के डाउनलोड हस्ताक्षरित हैं और बिना चेतावनी के शुरू होते हैं।
-
26
असली फ़ॉर्मैट, हर एक अपने सॉफ़्टवेयर में खुलता है
-
1 बाइट
आपके माँगे हर आकार की सटीकता, कभी चुपचाप राउंड नहीं की जाती
-
0
कहीं भी कनेक्शन - न खाता, न टेलीमेट्री, न अपडेट जाँच
समस्या
एक टेस्ट फ़ाइल बनाना आसान है। सही हज़ार बनाना थकाऊ हिस्सा है
आप ऐसे सॉफ़्टवेयर को टेस्ट कर रहे हैं जो लोगों से फ़ाइलें लेता है। देर-सबेर आपको चाहिए होगा:
- ठीक 10 MB की एक PDF, यह पता करने के लिए कि अपलोड सीमा असली है या नहीं
- उस सीमा के दोनों ओर की तीन फ़ाइलें, एक से चूकने वाली गलतियाँ पकड़ने के लिए
- 10,000 लॉग फ़ाइलें, यह देखने के लिए कि फ़ोल्डर बड़ा होने पर रात का जॉब क्या करता है
- एक ZIP जिसमें सच में 200 दस्तावेज़ हों, सही एक्सटेंशन वाला खोखला खोल नहीं
- एक 4 GB की फ़ाइल, बिना अपनी रिपॉज़िटरी में 4 GB की फ़ाइल रखे
- आपके लैपटॉप और बिल्ड सर्वर पर एक जैसे फ़िक्स्चर, बाइट-दर-बाइट
यही वह है जिसे यह बदलता है। यह QA इंजीनियरों, टेस्ट ऑटोमेशन और हर उस व्यक्ति के लिए बना है जिसके कोड के पीछे अपलोड फ़ॉर्म, इंपोर्ट रूटीन, पार्सर या स्टोरेज कोटा है।
यह अलग क्यों है
दूसरे जनरेटर बाइट पर रुक जाते हैं। यह वह बताता है जो आपका टेस्ट असल में पूछता है
फ़ाइलों से भरा फ़ोल्डर आपको फिर भी तय करने देता है कि हर फ़ाइल क्या साबित करे। यहाँ हर रन फ़ाइलों के
बगल में एक manifest.json लिखता है - जो कुछ बना उसकी सादी सूची, और हर प्रविष्टि के
लिए एक घोषित अपेक्षा।
मान लें कि आपका अपलोड एंडपॉइंट 1 MB की अनुमति देता है। उस रेखा पर आने वाली तीन फ़ाइलें माँगें:
tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges
| फ़ाइल | बाइट | आपके सिस्टम को चाहिए | क्योंकि |
|---|---|---|---|
1mb_under_1b.pdf | 1048575 | मंज़ूर करना | यह सीमा के अंदर है |
1mb_at_limit.pdf | 1048576 | मंज़ूर करना | सीमा ख़ुद अनुमत है |
1mb_over_1b.pdf | 1048577 | अस्वीकार करना | 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 दर्ज करता है। अंदाज़ा लगाने वाला जनरेटर झूठी
विफलताएँ पैदा करता है, और झूठा शोर मचाने वाला टेस्ट सूट आख़िरकार बंद कर दिया जाता है।
प्रीसेट
सवाल चुनें, पूरा सेट पाएँ
प्रीसेट एक टेस्ट सवाल के इर्द-गिर्द बनाया गया टेस्ट फ़ाइलों का सेट है, ताकि आपको खुद न सोचना पड़े कि कौन सी फ़ाइल क्या साबित करती है। हर एक का एक पेज है जो बताता है कि वह आम तौर पर क्या पकड़ता है, सेट में क्या है और वह कौन सी सेटिंग लेता है।
-
क्या फ़ॉर्मैट की अनुमति जितनी छोटी वैध फ़ाइल पास हो जाती है?
empty-and-minimal -
क्या मेरा सिस्टम ऐसा फ़ाइल नाम सहेजेगा, दिखाएगा और लौटाएगा जिसकी उसे उम्मीद नहीं थी?
filename-handling -
क्या आकार की सीमा ठीक वहीं लागू होती है जहाँ उसकी घोषणा की गई है?
size-boundaries -
क्या मेरा टेबल इंपोर्ट वह झेल पाता है जो असली टूल एक्सपोर्ट करते हैं?
tabular-import -
क्या मेरा रीडर जानता है कि फ़ाइल किस एन्कोडिंग में है, या अंदाज़ा लगा रहा है?
text-encoding -
क्या मेरा अपलोड फ़ॉर्म वह लेता है जो उसे लेना चाहिए और बाकी को लौटा देता है?
upload-validation
जल्दी शुरू करें
इसे चलते देखने के लिए तीन कमांड
-
एक फ़ाइल बनाएँ
एक PNG, ठीक दो मेगाबाइट की:
tfg generate --format png --size 2mb --out ./fixtures -
बहुत सी फ़ाइलें बनाएँ
दस हज़ार लॉग फ़ाइलें, हर एक एक से आठ किलोबाइट के बीच, आकार सीड से निकाले गए ताकि कल वही सेट मिले। हर रन को उसकी अपनी डायरेक्टरी दें - रन ने जो लिखा उसका एकमात्र रिकॉर्ड मैनिफ़ेस्ट है, इसलिए टूल उसके ऊपर दूसरा लिखने से इनकार कर देता है:
tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./logs -
उन्हें जाँचें, फिर हटाएँ
verifyबताता है कि कुछ नहीं खिसका।cleanupजो लिखा गया था उसे ही हटाता है, और कुछ नहीं:tfg verify ./logs/manifest.json tfg cleanup ./logs/manifest.json --yes
आकार 1024 के गुणकों में गिने जाते हैं, जैसा आपका फ़ाइल मैनेजर करता है, इसलिए 2mb का
मतलब 2097152 बाइट है। सादी बाइट संख्या भी चलती है। दस्तावेज़ीकरण में
रेसिपी, मैनिफ़ेस्ट और एग्ज़िट कोड समझाए गए हैं।
आपको क्या मिलता है
बिना निगरानी के चलने वाले सूट के लिए बना
-
सटीक आकार, बाइट तक
10485761 बाइट माँगें और ठीक वही पाएँ। जिस आकार तक कोई फ़ॉर्मैट नहीं पहुँच सकता, वह कारण सहित त्रुटि है, गलत आकार की फ़ाइल कभी नहीं।
-
26 असली फ़ॉर्मैट
एक्सटेंशन वाले भराव के शून्य नहीं। बनाई गई PNG इमेज व्यूअर में खुलती है, DOCX Word में खुलता है, ZIP खुल जाता है। हर एक को भेजने से पहले स्वतंत्र रीडरों से जाँचा जाता है।
-
टेस्ट ऑरेकल जैसा मैनिफ़ेस्ट
पाथ, आकार, SHA-256, फ़ॉर्मैट, सीड, टूल का संस्करण - और आपके सिस्टम को फ़ाइल के साथ क्या करना चाहिए।
-
दोहराए जा सकने वाला
वही रेसिपी और वही सीड, वही बाइट, किसी भी मशीन पर। बड़े बाइनरी फ़िक्स्चर की जगह एक छोटी YAML रेसिपी कमिट करें।
-
दो इंटरफ़ेस, एक इंजन
CI के लिए बनी कमांड लाइन और खोजपरक टेस्टिंग के लिए डेस्कटॉप विंडो। कोई भी दूसरे का घटाया हुआ रूप नहीं है, और एक टेस्ट दोनों की क्षमता-दर-क्षमता तुलना करता है।
-
पूरी तरह ऑफ़लाइन
कोई खाता नहीं, कोई क्लाउड नहीं, कोई टेलीमेट्री नहीं, कोई अपडेट जाँच नहीं। कमांड लाइन बाइनरी में नेटवर्क स्टैक कंपाइल ही नहीं किया गया है।
डाउनलोड
अपने सिस्टम का बिल्ड चुनें
आर्काइव खोलें और चलाएँ। 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 के डाउनलोड हस्ताक्षरित हैं और बिना चेतावनी के शुरू होते हैं।