يمكن تعريف 100 عمود على الأكثر، واختيار نوع حقل لكل عمود، وتحديد عدد صفوف من 1 إلى مليون صف، وبذرة. البذرة نفسها مع إعدادات الأعمدة نفسها تعطي دائمًا الصفوف نفسها في كل متصفح، فيمكن إعادة إنشاء ملف الاختبار بدل تخزينه. الأسماء وعناوين البريد وأرقام الهواتف وهمية: تنتهي عناوين البريد بـ@example.test، وأرقام الهواتف في الواجهة الإنجليزية من النطاق 555. يجري التوليد في متصفحك ولا يُرفع أي شيء.
طريقة إنشاء ملف CSV
- حدِّد عدد الصفوف (من 1 إلى مليون) والبذرة. الإعداد الأولي فيه ستة أعمدة:
idتسلسلي، واسم كامل، وبريد إلكتروني، وتاريخ تسجيل في 2024 أو 2025، وخطة تُختار من Free أو Pro أو Team بنسبة 6:3:1، ومبلغ من 0 إلى 500 بخانتين عشريتين. - أضِف أعمدة أو احذفها أو أعِد تسميتها، واختر نوع حقل لكل منها. يجب أن يكون لكل عمود اسم غير فارغ وغير مكرر.
- يمكن اختياريًا تحديد نسبة للخلايا الفارغة أو اشتراط قيم فريدة في كل عمود، ثم إنشاء الملف وتنزيله.
تُكتب الصفوف على أجزاء في عامل خلفي (Web Worker) بدل سلسلة نصية واحدة ضخمة، فلا تتجمّد الصفحة عند إنشاء ملف من مليون صف، ويوقف الإلغاءُ المهمة. الحد الأقصى لملف الناتج الواحد 4 غيغابايت.
أنواع الحقول
| تسلسل | يعدّ من قيمة بداية (الافتراضي 1) بخطوة (الافتراضي 1). ويكتب عرض التعبئة الاختياري معرّفات بصيغة 000001، ولا تُعبّأ الأرقام السالبة أبدًا. |
|---|---|
| UUID | بنية الإصدار 4 من RFC 9562 (xxxxxxxx-xxxx-4xxx-[89ab]xxx-…)، مأخوذة من المولّد ذي البذرة. وبما أنها قابلة للتكرار فهي لا تصلح سرًّا أو رمزًا أمنيًا. |
| الاسم الأول، اسم العائلة، الاسم الكامل | أسماء شائعة بلغة الواجهة. تُكتب الأسماء الكاملة الصينية واليابانية والكورية باسم العائلة أولًا دون مسافة. |
| البريد الإلكتروني | بصيغة name.word<row>@example.test، مثل casey.maple1@example.test. يجعل رقم الصف كل عنوان فريدًا، ولا يُشتق العنوان من عمود الاسم. |
| الهاتف | نمط يتحول فيه كل # إلى رقم. يُترك فارغًا لاستخدام الصيغة الافتراضية للغة، وهي في الإنجليزية +1 555-###-####. |
| الشركة، المدينة، الدولة | أسماء شركات مخترعة وأسماء مدن حقيقية بلغة الواجهة؛ وتُختار الدولة من قائمة ثابتة من 20 دولة. |
| عدد صحيح | عدد صحيح بين الحد الأدنى والحد الأقصى شاملًا الحدين. كلا الحدين مطلوب، ويجب أن يبقى ضمن ±9,007,199,254,740,991، وهو أكبر عدد صحيح تخزّنه JavaScript بدقة. |
| عدد عشري | عدد بين الحد الأدنى والحد الأقصى بعدد خانات عشرية من 0 إلى 10، مثل 114.71. |
| منطقي | true أو false باحتمال متساوٍ. |
| تاريخ، تاريخ ووقت | يوم عشوائي بين تاريخين بصيغة YYYY-MM-DD شاملًا الطرفين. ويضيف «تاريخ ووقت» وقتًا عشوائيًا بتوقيت UTC: 2026-01-04T09:17:35Z. |
| اختيار | قيمة في كل سطر، مع وزن اختياري بعد نقطتين: Free:6 وPro:3 وTeam:1 تختار Free في نحو 60% من المرات. السطر الذي لا وزن له يُحسب 1. |
| نمط | قالب يمثّل فيه # رقمًا، و? حرفًا لاتينيًا كبيرًا، و* رقمًا أو حرفًا كبيرًا: يعطي SKU-####-?? قيمة مثل SKU-6836-LU. وتُنسخ كل الأحرف الأخرى كما هي. |
| كلمات | من 1 إلى 20 كلمة (الافتراضي 3) من قائمة ثابتة من 20 كلمة إنجليزية بسيطة، كنص حشو. |
| ثابت | النص نفسه في كل صف. |
البذرة وقابلية التكرار
البذرة أي نص. يسحب كل عمود قيمه من تيار عشوائي خاص به مشتق من البذرة واسم العمود، ولذلك:
- البذرة نفسها وعدد الصفوف نفسه وإعدادات الأعمدة نفسها تعطي ملفًا مطابقًا بايتًا ببايت في كل مرة وفي كل متصفح؛
- إضافة أعمدة أخرى أو حذفها أو تغيير ترتيبها لا تغيّر قيم العمود، أما إعادة تسميته فتغيّرها؛
- طلب صفوف أكثر يُبقي الصفوف السابقة كما هي ويضيف صفوفًا جديدة بعدها؛
- لغة الواجهة تغيّر الأسماء والمدن والشركات وصيغة الهاتف الافتراضية، ولا تغيّر الأرقام والتواريخ والاختيارات وعناوين البريد.
للخلايا الفارغة تيار منفصل. الخلية الفارغة لا تستهلك قيمة، لذا فإن تغيير نسبة الخلايا الفارغة يغيّر القيم التي تظهر في الصفوف اللاحقة من ذلك العمود.
الخلايا الفارغة والقيم الفريدة
الخلايا الفارغة نسبة مئوية من 0 إلى 100 لكل عمود، وتُترك كل خلية فارغة بهذا الاحتمال. وهي مفيدة لاختبار تعامل عملية الاستيراد مع القيم المفقودة.
خيار القيم الفريدة يعيد سحب القيمة حتى يجد قيمة لم تُستخدم في ذلك العمود، ويتوقف بعد ألف محاولة برسالة خطأ تذكر اسم العمود. وتُرفض الإعدادات مسبقًا إذا استحال التفرّد: نطاق أعداد صحيحة فيه أعداد أقل من الصفوف، أو اختيارات أقل من الصفوف. وقد تنفد الأنواع الأخرى في منتصف الطريق، مثل الاسم الكامل الفريد بعد نحو 144 صفًا في الإنجليزية (12 اسمًا أول × 12 اسم عائلة). أعمدة التسلسل وUUID والثابت لا تخضع لهذا الفحص، ولا تُحسب الخلايا الفارغة قيمًا.
أخطاء الإعدادات
- يجب أن يكون عدد الصفوف عددًا صحيحًا من 1 إلى مليون، وعدد الأعمدة من 1 إلى 100.
- اسم عمود فارغ أو مستخدم مرتين: يجب أن يكون لكل عنوان اسم مختلف وغير فارغ.
- أعمدة الأعداد الصحيحة والعشرية تحتاج حدًا أدنى وحدًا أقصى معًا، على ألا يزيد الأدنى على الأقصى.
- تُكتب نطاقات التواريخ بصيغة
YYYY-MM-DD، مثل 2024-01-01؛ وتُرفض 2024/01/01 أو 01/02/2024. - يجب أن يحتوي النمط على واحد على الأقل من
# أو ? أو *؛ وإلا فاستخدم عمودًا ثابتًا. - قائمة الاختيارات تحتاج قيمة واحدة على الأقل وزنها أكبر من صفر.
مثال
خمسة صفوف بالبذرة demo-2026 والواجهة الإنجليزية: تسلسل يبدأ من 1001 ومعبّأ إلى 6 خانات، واسم كامل، وبريد إلكتروني، واختيار مرجّح، وعدد عشري من 0 إلى 250 مع 40% خلايا فارغة، والنمط SKU-####-??. بتشغيله مرة أخرى بالإعدادات نفسها تحصل على هذه الصفوف بالضبط. تظهر نهايات الأسطر هنا كفواصل أسطر عادية.
rows: 5 seed: demo-2026 language: English customer_id sequence start 1001, width 6 name full name email email plan choice Free:6 / Pro:3 / Team:1 mrr decimal 0–250, 2 places, 40% blank sku pattern SKU-####-??
customer_id,name,email,plan,mrr,sku 001001,Mary Brown,casey.maple1@example.test,Free,,SKU-6836-LU 001002,Ethan Davis,taylor.copper2@example.test,Pro,,SKU-8060-HR 001003,Ethan Clark,morgan.falcon3@example.test,Team,114.71,SKU-1401-TZ 001004,Olivia Davis,jordan.harbor4@example.test,Pro,91.82,SKU-8840-PT 001005,Mia Taylor,casey.prism5@example.test,Free,6.99,SKU-6878-OZ
أسئلة وأجوبة
هل مشاركة البيانات المولَّدة آمنة؟
لا تحتوي أشخاصًا حقيقيين: الأسماء أزواج عشوائية من أسماء شائعة، وعناوين البريد تستخدم النطاق المحجوز .test (RFC 2606)، وأرقام الهواتف في الإنجليزية تستخدم 555. أما أسماء المدن فأماكن حقيقية.
هل سيحصل زميلي على الملف نفسه؟
نعم، إذا استخدم البذرة نفسها وعدد الصفوف نفسه ولغة الواجهة نفسها وإعدادات الأعمدة نفسها، بما فيها أسماء الأعمدة. يستخدم المولّد خوارزمية خاصة به تعتمد على البذرة، لا الأرقام العشوائية للمتصفح.
هل أحتاج إلى ملف كبير أم إلى ملف اختبار صغير؟
لبضعة صفوف موثّقة بحالات حدّية معروفة، استخدم ملفات CSV النموذجية. واستخدم المولّد عند الحاجة إلى حجم كبير أو أسماء أعمدة خاصة بك أو مزيج محدد من الأنواع.