ما هي التحديات والمزالق الشائعة لاستخدام نموذج كائن الصفحة وكيف يمكنك التغلب عليها؟

نشرت: 2023-11-27

يُعرف نمط تصميم السيلينيوم باسم نموذج كائن الصفحة، أو POM، والذي يتضمن إنشاء مستودع كائنات لإيواء عناصر الصفحة وكائناتها وترتيبها. في مجال أتمتة الويب/الهاتف المحمول، يعد هذا نمط تصميم مستخدمًا بشكل كبير. يمكن أن يساعدك اختبار أتمتة السيلينيوم الفعال كثيرًا في استخدام نموذج كائن الصفحة بفعالية.

من خلال العمل كواجهة للصفحة التي يتم اختبارها، يقلل POM من التعقيد والتكرار في الكود مع تحسين قابليته للتوسعة وصيانة البرنامج النصي للاختبار. لكل صفحة ويب، نقوم بإنشاء ملف فئة لتبسيط مفهوم POM. عناصر الويب المتوفرة على صفحة الويب والتي يمكن استخدامها بواسطة البرامج النصية للاختبار للقيام بمهام متنوعة موجودة في ملف الفصل الدراسي.

فوائد استخدام نموذج كائن الصفحة

الطريقة المقترحة لحل المشكلات التي قد تنشأ أثناء تنفيذ إطار عمل أتمتة الاختبار هي نموذج كائن الصفحة. قائمة المزايا التي يقدمها هي كما يلي:

  • يتيح POM إنشاء مستودعات كائنات تسهل إضافة عناصر الويب وتعديلها وإعادة استخدامها بشكل بسيط. يتم تضمين اسم عنصر الويب ومحددات المواقع لتحديد موقعه في نفس الموقع في كل مرة تتم فيها مراجعة الكود في مستودع الكائنات هذا.
  • يتم تمثيل كل صفحة ويب كفئة مميزة في POM. إذا كانت صفحة الويب تحتوي على أي عناصر ويب إضافية، فإن إضافتها تكون بسيطة مثل الانتقال إلى فصل دراسي يشترك في نفس اسم صفحة الويب. على سبيل المثال: يمكنك البحث عن عنصر ويب جديد وإضافته إلى ملف customerClass.java لإضافته إلى مستودع كائنات صفحة العميل. وينطبق الشيء نفسه على تغيير محددات المواقع كلما تغير عنصر الويب الخاص بصفحة الويب.
  • بالإضافة إلى ذلك، لا توجد برامج نصية للاختبار مضمنة في مستودع الكائنات. قم باستدعاء أي كائنات من مستودع الكائنات المحدد هذا والمطلوبة لإنشاء برامج نصية للاختبار. وإلى أن يتم استخدام العنصر، فإنه لن يحدد موقع عناصر الويب. من أجل تحقيق أقصى قدر من الكفاءة، تسمح لنا التهيئة البطيئة بتأجيل إنشاء الكائنات حتى قبل أن نحتاج إليها. المبرر الرئيسي للقيام بذلك هو أنه إذا لم تكن بحاجة إلى الكائن، فيمكنك عادة تجنب إنشائه.
  • يتيح لك تجزئة الحقل صفحة تلو الأخرى إنشاء مستودع كائنات. ونتيجة لذلك، يحتوي التطبيق على مستودع الصفحات مع وصف كل صفحة على أنها فئة Java. تحدد الواجهة حقول الصفحة كأعضاء، ثم يقوم الفصل بتنفيذ الواجهة.
  • تُعرف عملية إنشاء وتغليف كل إجراء أو ميزة يمكن تنفيذها على الصفحة في فئة واحدة مصممة خصيصًا لتلك الصفحة بالتغليف الوظيفي. وهذا يجعل من السهل تحديد وفهم نطاق الوظائف المتاحة في كل صفحة.
  • يمكن تنفيذ أي تغييرات أساسية بسهولة دون الحاجة إلى صيانة كبيرة لأنه يمكن تحديث كل من الواجهة والفئة بسرعة. نظرًا لطبيعته الموجهة للكائنات، قد ينتج إطار العمل تعليمات برمجية أكثر قابلية للقراءة وموثوقية، مما يجعله أكثر ملاءمة للمبرمجين.
  • يمكن أن تساعد ميزة Low Redundancy في تقليل مقدار تكرار التعليمات البرمجية. قد يحقق POM المزيد باستخدام تعليمات برمجية أقل عندما تكون البنية شاملة ومحددة جيدًا. فعال وقابل للتوسيع: يتفوق على التقنيات البديلة التي تعتمد على تفسير أو إنشاء مستندات Excel للاختبار المعتمد على البيانات أو الكلمات الرئيسية.

عيوب استخدام نموذج كائن الصفحة

سيتطلب تطوير إطار عمل الأتمتة التزامًا أوليًا كبيرًا بالجهد من أجل إنشاء نموذج كائن الصفحة (POM) لتطبيقات الويب ذات الصفحات المتعددة. على الرغم من أن هذه قد تكون مهمة كبيرة، إلا أنه يُنصح بتنفيذها جنبًا إلى جنب مع عملية تطوير التطبيق.

إنه خطأ فادح أن يتم توظيف مختبرين عديمي الخبرة مع توقع تدريبهم أثناء النشر. لمنع مثل هذه الكوابيس، من الضروري أن يكون لديك مختبرين ذوي كفاءة فنية ويفهمون أفضل الممارسات في البرمجة. يجب على المختبرين غير المهرة حضور معسكر تدريبي للاستعداد لهذه المهمة.

علاوة على ذلك، ومن أجل تجنب أي ثغرات في المراحل اللاحقة من التطوير، من الضروري تحديد بنية الإطار بدقة ودقة قبل البدء في التطوير. وبما أن كل تطبيق يختلف عن الآخر، فقد يكون من الضروري إجراء تخصيص كبير لإطار التشغيل الآلي لتلبية احتياجاته.

بدلاً من أن يكون نموذجًا عامًا، تم تصميم إطار الأتمتة الذي تم تطويره عبر استخدام تقنية POM خصيصًا للتطبيق. إنها ليست مثل الأطر المعتمدة على البيانات أو المعتمدة على الكلمات الرئيسية والمخصصة للتطبيقات.

يعتبر POM بشكل عام هو الأسلوب الأكثر فعالية لإنشاء تطبيقات الويب، على الرغم من عيوبه. مع تطور الإطار، فإن استخدام POM بدلاً من التقنيات الأخرى المعتمدة على البيانات أو المعتمدة على الكلمات الرئيسية يمكن أن يجعل التحول إلى إطار عمل مختلط أسهل.

من منظور الصيانة، على سبيل المثال، يمكن أن تؤثر التغييرات التي يجريها المطورون على صفحة تسجيل الدخول على الاختبارات المرتبطة مباشرة بعمل تسجيل الدخول. وبما أن الاختبارات المتبقية تستخدم تسجيل الدخول فقط لاختبار وظائف مختلفة، فإنها لا تتأثر بهذه التغييرات. ولضمان عدم تأثر الاختبارات المتبقية، من الضروري التأكد من أن ميزة تسجيل الدخول تعمل بشكل صحيح حتى في حالة تغيير عناصر الصفحة الأخرى.

الهدف الرئيسي من عملية الاختبار هو تحسين جودة المنتج، واختبار الأتمتة ضروري لتحقيق هذا الهدف من خلال البحث عن المشكلات والإبلاغ عنها إلى فريق التطوير. تعد تغطية أتمتة الاختبار بمثابة مؤشر أداء رئيسي (KPI) مهم لتقييم فعالية رمز الاختبار، بغض النظر عما إذا كان يتم اتباع منهجية تطوير البرمجيات.

المزالق الشائعة لـ POM

فيما يلي بعض المشكلات الشائعة في POM:

  • سيتطلب إنشاء إطار التشغيل الآلي قدرًا كبيرًا من الوقت والجهد إذا كان التطبيق يحتوي على مئات أو آلاف صفحات الويب.
  • ونظرًا لأن الحفاظ على فئات ضخمة ينتهك مبدأ التصميم، فإن التكاليف ترتفع جنبًا إلى جنب مع تكاليف الصيانة العامة.
  • يجب أن يكون المختبرون على دراية تامة بأفضل ممارسات البرمجة لأن إنشاء إطار عمل POM للعديد من الصفحات يعادل عمل المطورين.
  • نموذج كائن الصفحة خاص بالتطبيق وليس عامًا بطبيعته.

كيف يمكن التغلب على عيوب POM؟

تعد إعادة هيكلة فكرة POM إلى نمط السيناريو هي الطريقة الأكثر فعالية للتغلب على المشكلات المذكورة أعلاه. مبدأ المسؤولية الفردية والمبدأ المفتوح والمغلق، أول مبدأين من مبادئ تصميم SOLID، يعملان كأساس لنمط السيناريو، وهو طريقة لإنشاء اختبارات قبول آلية ممتازة. قبل أن نفهم نمط السيناريو، دعونا نراجع أول مبدأين "صلبين".

  • ينص مبدأ المسؤولية الفردية على أن الفصل يجب أن يكون لديه واجب واحد فقط ولا ينبغي أن يكون له مضاعفات لأن تغيير واحد قد يكون له تأثير على المضاعفات.
  • يجب تطوير فئة جديدة كلما تمت إضافة حاجة أو تعديلها بدلاً من تحديث فئة قديمة في فئة موجودة. وذلك لأن التعديلات على مكون واحد قد تؤدي إلى تعديلات أخرى في العملية. يُعرف الإجراء بأكمله بمبدأ مفتوح ومغلق،

نمط تصميم شائع لأتمتة ضمان الجودة، يساعدك نموذج كائن الصفحة (POM) في كتابة تعليمات برمجية قابلة لإعادة الاستخدام وقابلة للصيانة لاختبارات الويب الخاصة بك.

● POM الإجراءات الأمثل

هناك ممارسات وقواعد موصى بها يجب عليك الالتزام بها لضمان نجاح أتمتة ضمان الجودة باستخدام POM. يمكن إنتاج كائنات الصفحة التي تحقق التوازن بين الحجم والشكل باتباع فكرة المسؤولية الفردية. يجب أن تتبع أسماء الطرق ومحددات المواقع وكائنات الصفحة أيضًا اصطلاح التسمية وأن تكون وصفية. بالإضافة إلى ذلك، يجب أن تكون عناصر الويب مخفية عن العرض العام ولا يمكن الوصول إليها إلا من خلال وظائف كائن الصفحة. يساعد استخدام أطر عمل مثل السيلينيوم أو TestNG لتنفيذ تصميم Page Factory على تبسيط التعليمات البرمجية وتحسين كفاءة الاختبار.

● نصائح وأساليب POM

يمكنك الاستفادة من بعض الاستراتيجيات لتحسين تنفيذ POM الخاص بك وزيادة فعالية وكفاءة أتمتة ضمان الجودة لديك. على سبيل المثال، يمكن توسيع وظائف كائنات الصفحة وإعادة استخدامها من خلال الوراثة والتكوين. تعد الواجهات السلسة أداة أخرى لتحسين سهولة القراءة والتعبير وإيجاز التعليمات البرمجية. بالإضافة إلى ذلك، يمكن حل مشكلات المزامنة بين تطبيق الويب والاختبار من خلال استخدام تقنيات الانتظار مثل الانتظار الضمني أو الصريح أو بطلاقة. يمكن أيضًا استخدام تقنيات الانتظار المخصصة لإدارة المواقف الفريدة أو المعقدة.

ليس من الرفاهية لأي فريق تطوير برمجيات رشيق أن يكتب اختبارات آلية فحسب، بل هو أيضًا متطلب. أثناء عملية تطوير ميزة جديدة، يمكن للمطورين استخدام الاختبارات الآلية لمراقبة مدى تأثير التغييرات على مناطق أخرى من النظام. وهنا يمكن أن يلعب اختبار الأتمتة دورًا حيويًا.

تعد منصات الاختبار الآلية مثل LambdaTest بالغة الأهمية لتحديد العيوب بسرعة في المراحل الأولى من دورات تطوير البرامج. لن يؤدي LambdaTest إلى تقليل وقت تنفيذ الاختبار فقط عن طريق تشغيل الاختبارات بالتوازي، ولكن بالإضافة إلى ذلك، سيعمل أيضًا على تحسين تغطية المتصفح الخاص بك مما يتيح لك الوصول إلى أكثر من 3000 بيئة اختبار مثل متصفحات Chrome وSafari عبر الإنترنت.

يمكن تعزيز ضمان جودة البرمجيات (QA) ويمكن جعل حلول المشكلات أقل تكلفة من خلال أتمتة الاختبار. عند إجراء الاختبارات بشكل صحيح، يمكن للمطورين تحديد الأخطاء وإصلاحها قبل أن يراها ضمان الجودة. يمكننا أيضًا أتمتة ميزات التراجع وحالات الاختبار باستخدام أتمتة الاختبار. سيكون لدى مهندسي ضمان الجودة وقتًا إضافيًا نتيجة لاختبار مجالات أخرى من التطبيق. بالإضافة إلى ذلك، يضمن هذا جودة المنتج لإصدارات الإنتاج. ونتيجة لذلك، فإننا نحصل على منتجات مستقرة أكثر فعالية وأساليب ضمان الجودة أكثر كفاءة.

بالنسبة للمطورين والمهندسين، قد يبدو تطوير الاختبارات الآلية بمثابة عملية بسيطة، ولكن لا يزال هناك احتمال أن تكون النتائج عبارة عن اختبارات سيئة البناء وتعليمات برمجية سيئة الصيانة. في أي مشروع تطوير رشيق، قد تكون محاولة تقديم الميزات أو التعديلات طوال الوقت مكلفة عند إجراء الاختبار. إذا تم تغيير عنصر واحد في صفحة ويب واعتمد عليه 20 اختبارًا، فيجب تحديث جميع إجراءات الاختبار العشرين لتعكس العنصر الجديد. يستغرق هذا الكثير من الوقت، مما يمنع المطورين من إجراء الاختبارات الآلية في أسرع وقت ممكن.

الكلمات الأخيرة

أحد أبرز أنماط التصميم في برنامج Selenium Webdriver هو نموذج كائن الصفحة (POM). من الأفضل معالجة مشاكل صيانة البرنامج النصي وتكرار التعليمات البرمجية التي تنشأ من أتمتة العديد من الصفحات على مواقع الويب ومواقع التجارة الإلكترونية من خلال هذا النموذج. يتم استخدام POM عن طريق أتمتة الاختبار لأتمتة مواقع التجارة الإلكترونية لأن البرامج النصية الخاصة بها قابلة للبرمجة النصية.

عند دمجه مع Cucumber، يمكن استخدام POM لمواقع التجارة الإلكترونية ليس فقط للاختبار الوظيفي ولكن أيضًا لاختبار المقبولية. يساعد POM في تحسين إمكانية القراءة وإعادة الاستخدام وقابلية الصيانة للكود، ولكنه يمثل أيضًا بعض الصعوبات.

يعد POM أداة مفيدة لأتمتة ضمان الجودة، ومع ذلك، فهو يحتوي على العديد من أوجه القصور والمشكلات التي تحتاج إلى حل. يمكن أن يكون العثور على أجزاء الويب أمرًا صعبًا ويستغرق وقتًا طويلاً، كما أن صيانة كائنات الصفحة أمر ضروري عند تطور تطبيق الويب. علاوة على ذلك، نظرًا لأن كائنات الصفحة قد تعتمد على عناصر أخرى مثل المتصفح أو البيئة، فمن الضروري إدارة تبعياتها. يجب تجنب المراجع الدائرية أو الاقتران القوي بين كائنات الصفحة.