ما هو Signal Lab
Signal Lab مختبرُ اختبار لـ OSC وبروتوكولات الشبكة. يرسل الرسائل التي تتخاطب بها المعدات والخدمات، ويعرض ما يعود منها، ويؤدي دور الجهاز أو الـ API الذي لم يتوفر بعد، ويُضعف الشبكة بينها عمدًا، ويحوّل ذلك كله إلى تجارب يمكن تشغيلها مرة بعد مرة — من التطبيق أو من سكربت أو من خط CI.
صُمّم لتجهيز التركيب قبل أن يوجد التركيب نفسه: يمكن اختبار وحدة التحكم في العرض وخادم الوسائط وأجهزة الاستشعار وواجهة API السحابية، كلٌّ منها مقابل بديل يقوم مقام الطرف الآخر، على حاسوب محمول واحد، قبل أن تلتقي في الموقع بوقت طويل.
لمن هو
- من يجهّزون أنظمة التحكم في العروض والتركيبات والأجهزة المتصلة بالشبكة: خوادم الإضاءة والوسائط، ووحدات التحكم، وأجهزة الاستشعار، وأجهزة العرض، وكل ما يتخاطب بـ OSC أو UDP أو TCP أو MQTT.
- مختبرو واجهات API والخدمات: نقاط نهاية HTTP وWebSocket، ومصادقتها، وسلوكها تحت الحمل وعند تعطل إحدى تبعياتها.
- من يؤتمت أيًّا من ذلك: التجارب نفسها تعمل دون واجهة في خط CI، أو على خادم مختبر بجوار المعدات، أو بتوجيه من مساعد ذكاء اصطناعي.
ما يمكن فعله
إرسال حركة المرور ومراقبتها
لكل بروتوكول شاشة خاصة به:
| البروتوكول | ما يمكن فعله | الصفحة |
|---|---|---|
| OSC | إرسال رسائل بوسائط محددة النوع، ومراقبة منفذ، وبث شكل موجي إلى نقطة نهاية | OSC |
| UDP وTCP الخام | إرسال نص أو بايتات في التجارب ومن المكتبة، ومحاكاة الأجهزة التي تتخاطب بهما | UDP وTCP |
| HTTP | طلب واحد باستجابته الكاملة، ومصادقة Basic أو Bearer أو Digest، ومخزن لملفات تعريف الارتباط، ودفعة حمل | HTTP |
| WebSocket | الاتصال بالترويسات والبروتوكولات الفرعية التي تتوقعها الخدمة، وإرسال نص أو بايتات، وقراءة كل رسالة | WebSocket |
| MQTT 3.1.1 | الاتصال بوسيط، ومراقبة كل موضوع لديه، والنشر بـ QoS 0 أو 1 أو 2، ومسح قيمة محتفظ بها | MQTT |
| البث والبث المتعدد | الإرسال إلى قائمة، أو إلى عنوان بث، أو إلى مجموعة بث متعدد، أو إلى كل مضيفات شبكة فرعية؛ والاستماع لمن يجيب | البث والاكتشاف |
رؤية كل إطار
يسجّل الفاحص كل إطار ترسله الأدوات وتستقبله، في خط زمني واحد: مفكوك الترميز، ومعه بايتاته، وقابلًا للتصفية والتصدير. ويمكن أن يصبح الإطار الذي التقطه إشارةً تعيد إرساله بايتًا ببايت.
الاحتفاظ بما ينجح
تُحفظ الرسالة التي نجحت في مكتبة الإشارات: باسم، وفي مجلدات، ومعها ملاحظة عمّا ينبغي أن تُحدثه. ثم تُرسل مجددًا من شاشتها، أو من المكتبة، أو من أي مكان بـ Ctrl+K.
أداء دور الطرف الآخر
تجيب المحاكيات بصفتها الـ API أو الجهاز أو الخدمة التي يتحدث إليها النظام: واجهة HTTP API بمسارات واستجابات، أو جهاز OSC أو UDP أو TCP بقواعد، أو وسيط MQTT. ويمكنها أن تجيب ببطء، أو تفشل وفق تسلسل، أو ترسل متونًا مشوّهة، أو تتعطل وفق جدول زمني — فيُختبر تعامل النظام مع ذلك قبل أن يتوفر الشيء الحقيقي.
إفساد الشبكة عمدًا
يقف مرحّل الإضعاف بين العميل وهدفه، فيضيف إلى UDP زمن انتقال أو تذبذبًا أو فقدًا أو ازدواجًا أو إعادة ترتيب أو حدًا لعرض النطاق، أو يؤخّر اتصالات TCP ويحدّ من سرعتها ويعيد تعيينها ويجمّدها. يتبع كل قرار بذرةً، فتلقى حركة المرور نفسها المصير نفسه في المرتين.
تحويل ذلك إلى اختبار
التجربة تدفقٌ من الخطوات يُرسم على لوحة: إرسال طلب، وانتظار الرد، والتحقق منه، واستخراج قيمة، والتفرّع، والحلقات، وتشغيل فروع بالتوازي، وتشغيل محاكٍ أو مرحّل إضعاف طوال التشغيل. يُعرض كل تشغيل خطوةً بخطوة ويُحفظ في تقرير يمكن مقارنته بتقرير سابق.
إخضاع خدمة للحمل
يمكن لطلب HTTP في تجربة أن يعمل تحت الحمل — بمعدل ثابت، أو تصاعد، أو درجات، أو طفرة، أو وصول عشوائي — مع قياسه والحكم عليه بالعتبات. وفي شاشة HTTP دفعة حمل سريعة، وتولّد العاصفة حمل UDP أو TCP خامًا على الخوادم والروابط الخاصة بك.
العثور على ما هو موجود
يعثر البث والاكتشاف على الأجهزة التي تجيب على طلب اكتشاف، ويعرض الماسح منافذ TCP المفتوحة على مضيف.
الأتمتة
يشغّل سطر الأوامر signallab التجارب دون نافذة، ويخرج برمز يفهمه خط CI؛ ويكتب تقارير JUnit لـ CI. ويتيح signallab mcpلمساعد ذكاء اصطناعي قراءة التجارب وكتابتها وتشغيلها. ويقدّم الخادم ذلك نفسه عبر واجهة HTTP API الخاصة به.
طريقتان لتشغيله
| التطبيق المكتبي | الخادم، في المتصفح | |
|---|---|---|
| يعمل على | Windows 10 و11 (x64)، وLinux (x86_64) | Linux بصورة Docker (amd64 وarm64)، أو مبنيًا من المصدر |
| الاستخدام | في نافذته الخاصة | في Chrome أو Edge أو Firefox، من أي جهاز يصل إلى الخادم |
| تنطلق حركة المرور من | هذا الكمبيوتر | الخادم |
| يأتي معه | سطر الأوامر signallab | سطر الأوامر signallab، داخل الصورة |
| التحديثات | يحدّث نفسه، عند الطلب | مع صورته |
كلاهما الواجهة نفسها على المحرك نفسه: كل الشاشات والفاحص والتجارب والتقارير تعمل بالطريقة نفسها. والخادم هو الخيار حين تكون المعدات على شبكة لا يصل إليها الكمبيوتر الخاص بك — كمبيوتر في خزانة المعدات أو جهاز Linux صغير بجوارها، يُستخدم من حاسوب محمول أو من خط CI. التفاصيل في التثبيت والتحديث والخادم؛ أما الفروق بين الطريقتين ففي المفاهيم.
كيف يُنظَّم
- الشاشات أدوات لعمل يُنجز الآن، يدويًا: إرسال هذا، والاستماع هناك، وتشغيل ذلك المحاكي. يسردها الشريط الجانبي؛ وتحتفظ كل شاشة بما كُتب فيها وما استقبلته أثناء الانتقال إلى غيرها. التفاصيل في النافذة.
- التجارب تدفقات تُبنى مرة وتُشغَّل مجددًا، بالطريقة نفسها في كل مرة، مع تقرير لكل تشغيل.
- المكتبات تحفظ ما صُنع: الإشارات في مكتبة الإشارات، والمحاكيات في مكتبة المحاكيات. وتستخدم التجارب كلتيهما.
- المهام هي العمل الذي يستمر طويلًا — مراقب، أو محاكٍ، أو مرحّل، أو تشغيل — وتُسرد أسفل النافذة، حيث يمكن إيقاف إحداها أو إيقافها جميعًا.
وتشرح صفحة المفاهيم كلًّا من ذلك بتفصيل أكبر.
آمن افتراضيًا
- لا يرسل Signal Lab شيئًا قبل الضغط على زر، ولا يرسل إلا إلى حيث يُطلب منه. والاستثناء الوحيد هو تحقق التطبيق المكتبي من وجود تحديثات، مرة يوميًا، ويمكن إيقافه (انظر التحديثات).
- الإشارات الأولية والمحاكيات الأولية وقوالب التجارب كلها تشير إلى
127.0.0.1، أي هذا الكمبيوتر. والوصول إلى الشبكة خيار يُتخذ بكتابة عنوان. - الخادم الذي يبدأ دون رمز وصول لا يستمع إلا على
127.0.0.1ويرفض أي عنوان آخر. - لا يتغير جدار الحماية إلا بنقرة تسمح بذلك.
الاستخدام المسؤول
حركة مرور حقيقية إلى مضيفات حقيقية
ترسل العاصفة والماسح والبث حركة مرور حقيقية إلى مضيفات حقيقية، ويصل البث أو تمشيط الشبكة الفرعية إلى كل جهاز في المقطع، لا إلى الجهاز المقصود وحده. لا تُوجَّه إلا إلى أنظمة مملوكة لك أو مصرّح لك باختبارها، ويلزم التحقق أولًا من الشبكة المتصل بها. قد تُشبع المعدلات العالية الروابط وتُطلق أنظمة كشف التسلل.
Signal Lab مزوّد في محركه بحواجز أمان: لا يصل التمشيط إلى أكثر من 1024 مضيفًا، ولا ترسل المنارة أكثر من 50,000 حزمة في الثانية على جميع أهدافها. إنها حواجز أمان، لا إذن.
اللغات
الواجهة وتلميحاتها ورسائل الأخطاء فيها، وسطر الأوامر signallab، وصفحة تسجيل الدخول إلى الخادم، وبرنامج الإعداد على Windows، كلها بـ 11 لغة: English (الإنجليزية)، وРусский (الروسية)، وEspañol (الإسبانية)، وFrançais (الفرنسية)، وDeutsch (الألمانية)، وPortuguês (البرتغالية البرازيلية)، و中文 (الصينية المبسطة)، و日本語 (اليابانية)، و한국어 (الكورية)، وहिन्दी (الهندية)، والعربية (من اليمين إلى اليسار). وتُبدَّل اللغة مباشرة من الشريط العلوي؛ التفاصيل في النافذة.
الخطوات التالية
- تثبيت Signal Lab.
- التعرّف على النافذة.
- تنفيذ الخطوات الأولى على هذا الكمبيوتر.
- قراءة المفاهيم التي يقوم عليها.