Testing Files Generator
العربية

ولّد ملفات اختبار حقيقية بحجم دقيق

PDF وPNG وDOCX وZIP، 26 صيغة في المجمل، وكلٌّ منها ملف حقيقي يُفتح في البرنامج الذي يملكه، وبـالحجم الذي طلبته تمامًا. كما يدوّن كل تشغيل ما يجب أن يفعله تطبيقك بكل ملف. سطر أوامر ونافذة سطح مكتب، مجاني ومفتوح المصدر، ويعمل بالكامل على جهازك.

مجاني ومفتوح المصدر، GPL-3.0. لا حاجة إلى التسجيل. تنزيلات ويندوز وماك موقّعة وتعمل دون تحذير.

نافذة سطح المكتب لـ Testing Files Generator، مجهّزة لكتابة دفعة من ملفات الاختبار
نافذة سطح المكتب، مجهّزة لكتابة دفعة من الملفات. المحرك نفسه يعمل خلف سطر الأوامر.

المشكلة

صنع ملف اختبار واحد سهل. صنع الألف الصحيحة هو الجزء المرهق

أنت تختبر برنامجًا يقبل ملفات من الناس. عاجلًا أم آجلًا ستحتاج إلى:

هذا ما يحل محله هذا المولّد. صُمم لمهندسي ضمان الجودة وأتمتة الاختبار، ولكل من خلف شيفرته نموذج رفع أو روتين استيراد أو محلل أو حصة تخزين.

ما الذي يميّزه

المولّدات الأخرى تتوقف عند البايتات. هذا المولّد يجيب عما يسأله اختبارك فعلًا

مجلد من الملفات يتركك تقرر بنفسك ما يُفترض أن يثبته كل ملف. يكتب كل تشغيل هنا ملف 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

ما الموقَّع وما غير الموقَّع

تنزيلات ويندوز وماك موقّعة، لذا تبدأ دون تحذير من مطوّر غير معروف. أما تنزيلات لينكس فغير موقّعة، لأن لينكس المكتبي لا يملك ما يوقَّع به. وكل أرشيف مدرج في verify-SHA256SUMS.txt على صفحة الإصدارات، لتتحقق مما نزّلته.

مجاني ومفتوح المصدر، GPL-3.0. لا حاجة إلى التسجيل. تنزيلات ويندوز وماك موقّعة وتعمل دون تحذير.