Testing Files Generator
हिन्दी

सटीक आकार की असली टेस्ट फ़ाइलें बनाएँ

PDF, PNG, DOCX, ZIP - कुल 26 फ़ॉर्मैट, और हर एक असली फ़ाइल है जो अपने सॉफ़्टवेयर में खुलती है, ठीक उसी आकार में जो आपने माँगा। हर रन यह भी लिखता है कि आपके एप्लिकेशन को हर फ़ाइल के साथ क्या करना चाहिए। कमांड लाइन और डेस्कटॉप विंडो, मुफ़्त और ओपन सोर्स, पूरी तरह आपकी मशीन पर चलता है।

मुफ़्त और ओपन सोर्स, GPL-3.0। साइन अप की ज़रूरत नहीं। Windows और macOS के डाउनलोड हस्ताक्षरित हैं और बिना चेतावनी के शुरू होते हैं।

Testing Files Generator की डेस्कटॉप विंडो, टेस्ट फ़ाइलों का बैच लिखने के लिए तैयार
फ़ाइलों का बैच लिखने के लिए तैयार डेस्कटॉप विंडो। कमांड लाइन के पीछे वही इंजन चलता है।

समस्या

एक टेस्ट फ़ाइल बनाना आसान है। सही हज़ार बनाना थकाऊ हिस्सा है

आप ऐसे सॉफ़्टवेयर को टेस्ट कर रहे हैं जो लोगों से फ़ाइलें लेता है। देर-सबेर आपको चाहिए होगा:

यही वह है जिसे यह बदलता है। यह QA इंजीनियरों, टेस्ट ऑटोमेशन और हर उस व्यक्ति के लिए बना है जिसके कोड के पीछे अपलोड फ़ॉर्म, इंपोर्ट रूटीन, पार्सर या स्टोरेज कोटा है।

यह अलग क्यों है

दूसरे जनरेटर बाइट पर रुक जाते हैं। यह वह बताता है जो आपका टेस्ट असल में पूछता है

फ़ाइलों से भरा फ़ोल्डर आपको फिर भी तय करने देता है कि हर फ़ाइल क्या साबित करे। यहाँ हर रन फ़ाइलों के बगल में एक manifest.json लिखता है - जो कुछ बना उसकी सादी सूची, और हर प्रविष्टि के लिए एक घोषित अपेक्षा।

मान लें कि आपका अपलोड एंडपॉइंट 1 MB की अनुमति देता है। उस रेखा पर आने वाली तीन फ़ाइलें माँगें:

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, ठीक दो मेगाबाइट की:

    tfg generate --format png --size 2mb --out ./fixtures
  2. बहुत सी फ़ाइलें बनाएँ

    दस हज़ार लॉग फ़ाइलें, हर एक एक से आठ किलोबाइट के बीच, आकार सीड से निकाले गए ताकि कल वही सेट मिले। हर रन को उसकी अपनी डायरेक्टरी दें - रन ने जो लिखा उसका एकमात्र रिकॉर्ड मैनिफ़ेस्ट है, इसलिए टूल उसके ऊपर दूसरा लिखने से इनकार कर देता है:

    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 के डाउनलोड हस्ताक्षरित हैं और बिना चेतावनी के शुरू होते हैं।