سؤال

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

  1. افتح 2 متصفحين في موقعنا
  2. المتصفح 1 ينتظر نشر سؤال
  3. يقوم Browser 2 بنشر سؤال ثم ينتظر استلام عرض
  4. يرى المتصفح 1 السؤال ، ويرسل عرضًا وينتظر قبوله
  5. يرى المستعرض 2 العرض ويقبله ثم ينتظر أن تبدأ جلسة الدردشة
  6. إلخ...

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

لذا سؤالي هو ، هل قام أي شخص بهذا النوع من الاختبار؟ إذا كان الأمر كذلك ، فما هي الأدوات التي تقترح استخدامها وهل لديك أي نصائح حول كتابة الاختبارات؟

سنحتاج إلى قيادة المتصفحات الفعلية ، وليس الرأس ، وسيجب أن يكون من الممكن دمج هذا مع CI لدينا ، نستخدم حاليًا مختبرات الصلصة والسيلينيوم كجزء من إعداد CI لدينا.

هل كانت مفيدة؟

المحلول

لكي نكون صادقين ، يبدو أن هذا ينتمي إلى فئة "Somethings يجب ألا تكون آلية".

القضايا المتوقعة:

  • أحد المتصفحات لا يدور بشكل صحيح ربما يضع المتصفح الآخر في حالة من المصل حتى يمر بالخارج

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

  • سيكون الصيانة أمرًا صعبًا للغاية لأنه إذا حدث شيء ما تحتاجه إلى تحديث الاختبار ، فأنت بحاجة إلى التأكد من عمل كل من حالات المتصفح

أنا متأكد من أن هناك المزيد من المشكلات ولكن لا يمكنني التفكير فيها الآن.

أود أن أكتب اختبارات للتأكد من أنه يمكنك إضافة أسئلة جديدة إلى النظام. كان لدي اختبار واحد على الأقل في قاعدة بيانات الاختبار التي يمكنك دائمًا قراءتها والإجابة عليها (ربما في معاملة يمكنك التراجع عنها).

مع نظام الدردشة ، سأختبر هذا يدويًا وهذا هو المكان الذي سيأتي فيه تطبيق تطبيقك. احصل على كل شخص في الشركة (من Dev إلى Ops وما بعده) لاختبار الدردشة لأنني متأكد من أنك تقوم بالفعل بعمل IM من نوع ما.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top