إن بساطة Python تجعلها واحدة من أفضل لغات البرمجة لكتابة الاختبارات الآلية. تقدم اللغة اثنين من أطر اختبار البرامج لمساعدتك على الاختبار بشكل أكثر كفاءة.
سواء كنت في اختبار شامل أو اختبار تحميل وتحمل أو أكثر ، فهذه هي أفضل أطر عمل لاختبار البرامج المستندة إلى Python.
1. بيتيست
Pytest هو إطار اختبار بسيط مكتوب بلغة Python و Python. لماذا يجب استخدامه للاختبار؟ يحتوي على منحنى تعليمي سهل وهو إطار عمل go-to لاختبار الوحدة والتكامل. كما أنه يدعم الميراث الطبقي من الوحدة.
تتمثل إحدى نقاط القوة في إطار العمل في أنه يوفر طريقة أنظف وأقصر لكتابة الاختبارات في بايثون. على سبيل المثال ، يعد التحقق من صحة إخراج الكود أمرًا مباشرًا مثل استدعاء ملف يجزم كلمة رئيسية. إذا كنت ترغب في إجراء اختبارات متعددة في وقت واحد ، فإن Pytest يوفر الوقت من خلال ميزة الاختبار المتوازي بدون رأس.
يدعم Pytest أيضًا تنفيذ سطر الأوامر لمجموعات الاختبار. هذا بسيط مثل تشغيل ملف الأمر pytest من محطة مجلد الاختبار. لا داعي للقلق بشأن ملفات الاختبار ، حيث يكتشفها إطار العمل تلقائيًا.
ومع ذلك ، يعمل الأمر أيضًا مع إعلان الملف. لذلك يمكنك أيضًا استدعاء Pytest باسم ملف:
بيتيستpatter_tests.السنة التحضيرية
يؤدي تشغيل ملف اختبار باستخدام Pytest إلى إنتاج مخرجات صديقة للإنسان تتعقب خطوات الاختبار وتخبرك بمكان الخطأ:
2. الكاتب المسرحي
إطار عمل الكاتب المسرحي هو عرض Microsoft لمجتمع اختبار البرامج. بينما تعمل العديد من الأطر على اختبار بدون رأس فقط ، يدعم Playright كلا الوضعين بدون رأس ووضع الرأس. إنه أحد أفضل الأطر لاختبار واجهة المستخدم ، مع دعمه لمتصفحات Firefox و Chromium مثل Edge و Chrome.
من ناحية الميزات ، يكون الكاتب المسرحي قريبًا من السيلينيوم. إنه يطابق الأخير لأدوات التنسيق والاختبار المتوازي المستندة إلى مجموعة النظراء. لكنه يتفوق على السيلينيوم بوظائف اختبار API. يمكن أن يكون الاختبار المتوازي لـ Playwright معقدًا - نظرًا لأن حلقة الحدث الخاصة به تعمل فقط بقدرة اختبار واحدة بشكل افتراضي. ومع ذلك ، يمكنك أن تجد طريقك للتغلب على هذا باستخدام الاستخدام المناسب لحلقات بايثون.
إذا كنت تريد أن تصبح بدون تشفير ، فيمكنك استخدام برنامج Playwright's codegen لكتابة رمز الاختبار ديناميكيًا. يقوم بإنشاء ملف اختبار خاص بلغة معينة أثناء تفاعلك مع DOM. يتيح لك مُنشئ المحددات أيضًا اختيار عناصر الويب بسهولة بمجرد المرور فوقها دون معاناة فحص DOM.
الكاتب المسرحي لديه الانتظار التلقائي الافتراضي. وبالتالي ، فإنه يتوقف مؤقتًا حتى يتم تحميل DOM قبل تشغيل حالات الاختبار. اعتبارًا من الكتابة ، يدعم إطار عمل الكاتب المسرحي JavaScript و TypeScript و Java و .NET بالإضافة إلى Python.
3. السيلينيوم
السيلينيوم هو أحد أكثر أطر اختبار الأتمتة استخدامًا مع دعم مجتمعي جيد. على عكس Playwright ، فإنه لا يوفر إمكانية اختبار واجهة برمجة التطبيقات. لذلك فهو ليس إطار عمل لاختبار منطق الواجهة الخلفية. ولكنه يوفر كلاً من برامج تشغيل المستعرضات المستندة إلى Chromium وغير المستندة إلى Chromium لتقييم واجهة المستخدم والتحقق منها.
يتمتع إطار العمل بمزيد من دعم لغة البرمجة وهو أكثر تنوعًا في أتمتة الويب العامة. كما تقبل أيضًا إمكانية الشبكة السحابية لتنظيم حالات الاختبار بالتوازي. وبالتالي ، يعد اختيارًا ممتازًا للاختبار عبر المستعرضات وعبر الأنظمة الأساسية.
يحتوي السيلينيوم على مجموعة من المحددات المخصصة التي تتيح لك التفاعل مع واجهة المستخدم كمستخدم عادي. وإذا كنت بحاجة إلى جرعة من تأكيد إجراء واجهة المستخدم ، فيمكنك أن ترث هذا من الطبقة غير الملائمة. يحتوي السيلينيوم أيضًا على امتداد IDE لمتصفحي Chrome و Firefox. يوفر هذا اختبار التسجيل والتشغيل. ولكن على عكس برنامج الترميز Playwright ، فإنه لا ينشئ رمز اختبار.
4. إنسان آلي
الروبوت عبارة عن إطار عمل اختبار بايثون مفتوح المصدر يعتمد على الكلمات الرئيسية. بشكل عام ، يجعل أتمتة الاختبار أسهل ما يمكن. بينما يتعين عليك كتابة رمز لحالات الاختبار في أطر أخرى ، فهي لغة إنجليزية بسيطة في الروبوت. لذلك فهو مفيد لكتابة المزيد من حالات الاختبار الصديقة للإنسان.
تكمن قوتها في اختبار القبول - للتأكد من أن البرنامج يفي بالمعايير المحددة. بالإضافة إلى الاختبار ، فإنه يتميز أيضًا بأدوات أتمتة روبوتية عامة لأتمتة مهام واجهة المستخدم.
إن البدء بإطار عمل الروبوت أمر سهل ؛ يمكنك إنشاء مجموعة من المهام مكتوبة بلغة بشرية بسيطة. ثم قم بإعداد حالات الاختبار لكل منها في ملفات منفصلة. يوفر الروبوت القليل من وظائف الاختبار ، ولكن يمكنك توسيع ذلك مع مكتبات الاختبار الأخرى. على سبيل المثال ، يمكنك إقرانه بالسيلينيوم لإضافة إمكانيات المتصفح لاختبار واجهة المستخدم.
5. مذهب
Doctest عبارة عن مكتبة اختبار Python مضمنة تتيح لك توثيق التعليمات البرمجية أثناء الاختبار. إنه أحد أفضل الخيارات لإجراء اختبارات الوحدة. ولكنه يدعم أيضًا اختبار مكونات واجهة المستخدم. المكتبة بديهية ، تقرأ السلاسل من التعليمات البرمجية الخاصة بك وتتحقق من صحة المخرجات المتوقعة.
يعمل Doctest عن طريق فحص دالة مقابل إخراج معين. إنه يؤدي فقط إلى حدوث خطأ ويعيد الإخراج المحسوب بشكل صحيح إذا كانت النتيجة المتوقعة خاطئة. إخراج الاختبار في Doctest نظيف. إذا كان الاختبار على بيانات إدخال متعددة ، على سبيل المثال ، فإنه يعطي تقرير فشل مفصل ، بما في ذلك مكان فشل الكود.
جزء من اختبار Doctest الموثق يبدو كالتالي ، على سبيل المثال:
deffindFirst(نص):
"""
بالنظر إلى السلسلة ، يعود الأبجدية الأولى
: بارام: خيط
>>> findFirst ("ايدوو")
يو
"""
يعودنص[0].upper()
إذا __name __ =="__رئيسي__":
يستورد مذهب
مذهب.testmod()
فشل الاختبار الموثق أعلاه لأننا نتوقع أ يو لكن النتيجة المحسوبة أنا بدلاً من:
6. موحش
توفر Unittest واحدة من أكثر الطرق المنظمة لكتابة اختبارات الوحدة. انه يدعم البرمجة الشيئية بشكل افتراضي. إنه يلف حالات الاختبار في فصول مخصصة وينفذها في حلقة حدث. مع أخذ ذلك في الاعتبار ، يعد unittest خيارًا ممتازًا إذا كنت تفضل تنظيم اختباراتك في نموذج كائن صفحة.
لا يقدم Unittest اختبار واجهة المستخدم بشكل افتراضي. ولكن يمكنك إقرانه بإطار اختبار آخر مثل السيلينيوم للحصول على إمكانيات متعددة للمتصفح. يمكنك أيضًا إجراء اختبارات متوازية بأسلوب غير ملائم عند إقرانها بأطر عمل مدعومة من الشبكة السحابية. وبالتالي ، يمكنك الاستفادة من قوتها في التكامل والاختبار الشامل.
عند الدمج مع السيلينيوم ، على سبيل المثال ، يمكنك التحقق من المخرجات المتوقعة مقابل نتيجة المكون باستخدام الكلمة الأساسية الموروثة التأكيد. ومع ذلك ، على عكس Pytest ، من المحتمل أن تكتب المزيد من التعليمات البرمجية بأسلوب unittest نظرًا لأن استدعاء التأكيد الخاص به يكون أكثر ترميزًا.
7. أنف 2
يرتبط Nose2 ارتباطًا وثيقًا بوظيفة Pytest. ومع ذلك ، فإنه يرث خصائصه الأساسية من إطار العمل غير المناسب. مثل Pytest ، يمكنك استخدامه بمثابة عداء اختبار لحالات الاختبار المكتوبة في أطر أخرى مثل السيلينيوم أو unittest.
وهو يدعم كلاً من اختبار الوحدة والتكامل. لذا ، سواء كنت ترغب في اختبار واجهة المستخدم أو التحقق من وظائف التعليمات البرمجية الخاصة بك ، فإن Nose2 يوفر جميع الأدوات المساعدة اللازمة.
كما أنه يقبل الاختبار المحدد المعلمات. يتضمن ذلك إدخال معلمات الاختبار مثل متصفحات الاختبار والأنظمة الأساسية داخل أداة تزيين. يمكنك بعد ذلك الوصول إلى كل معلمة داخل نص الرمز. هذا يجعل Nose2 أحد أفضل الأطر لإجراء اختبارات عبر المتصفح بالتوازي عبر الشبكات السحابية.
اختبر برنامجك وأطلق برامج الجودة
يعد الاختبار ممارسة جيدة في البرمجة تساعدك على اكتشاف الأخطاء وإزالتها قبل الإصدار العام. في حين أن بعض أطر عمل الاختبار تعتمد بشكل أساسي على Python ، فإن البعض الآخر يدعم لغات برمجة متعددة.
على الرغم من أنه من الأفضل الاحتفاظ باختبارات الوحدة للغة التطوير الخاصة بك ، إلا أنه يمكن أن تكون أكثر استقلالية عن اللغة. لا تتردد في استخدام أي من أطر اختبار Python هذه وفقًا لذلك.