خط أنابيب اختبار وحدة Hyvä لدينا: 50 ترحيل علمتنا هذا
كل وحدة متوافقة مع Hyvä نقوم بشحنها تمر عبر خط أنابيب اختبار من أربع مراحل قبل أن تصبح حية في الكتالوج. قمنا ببناء هذا الخط بشكل تكراري على مدار أكثر من 50 ترحيل Hyvä وحوالي 200 تثبيت وحدة. هذه التدوينة هي هيكل ذلك الخط، وما تلتقطه كل مرحلة، وما كنا سنبنيه بشكل مختلف إذا بدأنا من جديد.
المرحلة 1: المتجر المرجعي
يتم تثبيت كل وحدة أولاً ضد متجر Hyvä مرجعي نظيف. المرجع هو Magento Open Source 2.4.7 بالإضافة إلى Hyvä Themes 1.3 بالإضافة إلى Hyvä Checkout. يحتوي الكتالوج على 200 منتج في 6 فئات مع وزن وسائط واقعي. لا توجد وحدات خارجية أخرى.
المتجر المرجعي هو أنظف بيئة ممكنة. إذا تعطلت وحدة هنا، فإن المشكلة هي الوحدة، وليس الكود المحيط بها. يلتقط المتجر المرجعي: أخطاء وقت التثبيت، تعارضات XML التخطيط مع Hyvä، الاعتمادات المفقودة في Composer، فشل ترحيل المخطط، أخطاء عرض واجهة المستخدم الإدارية.
ما لا يلتقطه المتجر المرجعي: تعارضات الوحدات الخارجية، حالات الحافة في حركة المرور الحقيقية، تراجعات الأداء الناتجة عن تأثيرات التفاعل.
المرحلة 2: ميزانية Lighthouse
تقوم المرحلة 2 بتشغيل المتجر المرجعي ضد تدقيقات Lighthouse المحمولة قبل وبعد تثبيت الوحدة. تمر الوحدة فقط إذا بقي أداء الهاتف المحمول فوق 90 مع تفعيل الوحدة.
تتضمن الميزانية تسع فحوصات محددة:
- إجمالي وقت الحظر أقل من 200 مللي ثانية
- أكبر رسم محتوى أقل من 2.5 ثانية
- تغيير التخطيط التراكمي أقل من 0.1
- لا يوجد JavaScript قديم (ES5 polyfills للمتصفحات التي لا يستخدمها أحد)
- لا يوجد CSS غير مستخدم يزيد عن 20 كيلوبايت
- موارد حظر العرض أقل من 600 مللي ثانية
- تنسيقات الصور الحالية (WebP كحد أدنى)
- لا توجد iframes خارجية تحظر العرض
- استجابة الخادم أقل من 600 مللي ثانية TTFB
تنجح معظم شحنات الوحدات في هذه المرحلة. الوحدات التي تفشل تميل إلى الفشل في النقاط 1 أو 4 أو 6. تعود عمليات التدقيق الفاشلة إلى المطور مع تتبع Lighthouse المحدد.
المرحلة 3: مصفوفة تعارض الوحدات الخارجية
تقوم المرحلة 3 بتثبيت الوحدة ضد 20 من أكثر وحدات Magento شعبية مجتمعة. نحن نحافظ على مصفوفة توضح أي وحدات متوافقة مع Hyvä نشطة في هذا التكوين: عربة التسوق، الدفع، البحث، بوابات الدفع، التحليلات، موافقة GDPR.
تلتقط مصفوفة التعارض: تعارضات خصوصية CSS، تداخل معالجات أحداث JavaScript (وحدة واحدة تتجاوز روابط Alpine لوحدة أخرى)، تعارضات الاعتماد في Composer، تعارضات ترحيل جداول قاعدة البيانات.
لقد اكتشفنا تراجعات في هذه المرحلة كانت ستشحن للعملاء دون اكتشاف: وحدة تتبع الدفع التي تعطلت عند تثبيتها جنبًا إلى جنب مع وحدة موافقة GDPR لأن كلاهما سجل مستمعي الأحداث على نفس خطاف إرسال Magento.
المرحلة 4: اختبارات دخان المتجر الحقيقي
تقوم المرحلة النهائية بتشغيل الوحدة على نسخة تجريبية من أحد متاجر عملائنا. كتالوج منتج حقيقي، هيكل فئة حقيقي، تدفقات عربة ودفع حقيقية. تنفذ اختبارات الدخان رحلات المستخدم الكلاسيكية: الصفحة الرئيسية → الفئة → المنتج → إضافة إلى العربة → الدفع → الطلب تم تقديمه.
تلتقط هذه المرحلة: حالات الحافة المحددة للكتالوجات الحقيقية (منتجات قابلة للتكوين ذات هياكل سمات غير عادية، منتجات تحتوي على أكثر من 50 عنصر وسائط، فئات تحتوي على أكثر من 5000 منتج)، تأثير الأداء في العالم الحقيقي تحت تحميل ذاكرة التخزين المؤقت الحقيقي، أخطاء على مستوى التكامل تظهر فقط مع أحجام بيانات واقعية.
نقوم بتدوير أي متجر عميل يستضيف اختبار المرحلة 4. يتم إبلاغ المالك وتعويضه عن تكاليف بيئة الاختبار. لا يرى المتجر أي تأثير يواجه العملاء في الإنتاج لأن الاختبارات تتم على نسخة تجريبية.
ما كنا سنبنيه بشكل مختلف
ثلاثة أشياء تعلمناها على طول الطريق كنا سنغيرها إذا أعيد بناء كل شيء من الصفر.
متجر مرجعي على كل إصدار فرعي من Magento. نقوم بإعادة بناء المتجر المرجعي مرة واحدة لكل إصدار رئيسي من Magento (2.4.6، 2.4.7) ولكن ليس على التصحيحات الفرعية. يجب أن نعيد البناء على كل إصدار فرعي لأن إصدارات التصحيح تغير السلوك أحيانًا بطرق تؤثر على توافق الوحدة.
تحديد إصدار الوحدة مقابل إصدار Magento الذي تم اختباره. يجب أن يعلن كل إصدار وحدة بالضبط عن أي إصدار فرعي من Magento تم اختباره ضده. نحن نفعل ذلك بشكل غير رسمي في سجل التغييرات؛ يجب أن نفعل ذلك بشكل رسمي في إعلان اعتماد Composer.
تراجع تلقائي لحالات الاستخدام الرئيسية للعملاء. المرحلة 4 هي اختبارات دخان يدوية اليوم. ستلتقط أتمتة Cypress ضد ثلاثة متاجر عملاء التراجعات بشكل أسرع وتقلل من عبء بيئة الاختبار على هؤلاء العملاء.
لماذا ننشر هذا
يحتوي كتالوج وحدات Magento على عدد كبير من البائعين الذين يشحنون الشيفرة بدون بنية تحتية للاختبار. تشرح الصفحات على مدونتنا مثل منشور حظر شحن وحدة Lighthouse 90 سياستنا؛ تشرح هذه التدوينة الخط الذي يفرضها.
إذا كنت متجر Magento تقيم الوحدات، اسأل بائعك المحتمل عن شكل خط أنابيب الاختبار لديهم. إذا كانت الإجابة غير واضحة، فمن المحتمل أن الوحدة لم يتم اختبارها ضد إصدار Magento المحدد الخاص بك، أو النسخة المحددة من Hyvä، أو مجموعة الوحدات الخارجية الأخرى الخاصة بك. هذه مخاطرة تتحملها، وليس هم.
ذات صلة
- منشور حظر شحن وحدة Lighthouse 90 يغطي السياسة.
- دليل شراء ملحقات Magento هو الإطار للمشترين.