Fitnesse Framework بطيء جدًا عندما يكون عمق المجلد أكبر 4 - لماذا؟

StackOverflow https://stackoverflow.com/questions/1945770

سؤال

نقوم حاليًا بإنشاء اللياقة البدنية كاختبار قبول مستخدم أداة الاختبار. حتى الآن كل شيء جيد. نحن نستخدم إصدار Java "20091121". نواجه مشكلات مع مجلدات أعمق من 4.

قمنا بإعداد بنية المجلد التالية:

نصب

حزمة اختبار

content.txt + properties.xml (فقط "! المحتويات" من الداخل)

USECASE2204

content.txt + properties.xml (فقط "! المحتويات" من الداخل)

SingleRequest02

content.txt + properties.xml (فقط "! المحتويات" من الداخل)

positivetest

content.txt + properties.xml (فقط "! المحتويات" من الداخل)

oneadultwithchild

هنا content.txt + properties.xml للاختبار الفعلي الذي يحتوي على 18 جدول تركيب

عندما نبدأ اللياقة وانتقل إلى أعمق مجلد ("oneadultwithchild") ، يستغرق الأمر الدوار 10 ثوانٍ حتى يتم عرض الصفحة. الآن ، عندما أقوم بنقل المحتوى إلى أعلى مستوى التسلسل الهرمي (إلى "positivetest") ، تستغرق الصفحة 3 ثوانٍ لتقديمها. عندما أضع محتوى الاختبار في المستوى الثاني ("USECASE2204") ، فإنه يعرض تقريبًا في لحظة.

يحدث السلوك نفسه أثناء التنفيذ. بعد الضغط على زر "الاختبار" التي تجرها الاختبارات:

  • المستوى الثاني: 12 ثانية
  • المستوى الرابع: 14 ثانية
  • المستوى الخامس: 40 ثانية! (بالإضافة إلى ذلك ، يستغرق الأعمار حتى يظهر زر "النتيجة التي تم التقاطها")

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

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

المحلول

قد لا يكون هذا هو الحل المحدد ، ولكن هناك حل لمشكلة عرض عنصر واجهة مستخدم يتم النظر إليها حاليًا: http://www.pivotaltracker.com/story/show/2200962

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

نصائح أخرى

هل حاولت الاتصال بمباريات (ق) من اللياقة البدنية حول هذا؟ يجب أن يكون هذا أول مسار للعمل. إليك رابط "الحصول على المساعدة": http://www.fitnesse.info/help .

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

تحديث: مجرد فكرة ، هل التسلسل الهرمي للاختبار على جبل NFS؟ هل يمكنك محاولة تشغيله على قرص "حقيقي"؟

لذلك ، قمنا ببعض التنميط. يتم إنفاق الوقت الرئيسي لمدة 40 ثانية لتحميل الصفحة (فقط تحميل ، وليس تشغيل) في الطرق التالية:

  • fitnesse.wikitext.widgets.widgetroot.render
  • fitnesse.wikitext.widgets.widgetRoot.getVariable
  • fitnesse.wiki.pagedata.initializevariableroot
  • fitnesse.wikitext.widgets.variableWidget.dorender

إنه يحظى مثل منطق استبدال varibale + استخدام عنصر واجهة المستخدم يستخدم طوال الوقت :(

لا سيما "private void dorender ()" في fitnesse.wikitext.widgets.variableWidget يعطيني الصداع. هناك تعليق يشكو من التعقيد وأن كل هذا يجب أن يتم إعادة تمهيده.

انظر هنا

http://github.com/lvonk/fitnesse/commit/a7242991039970d769db681afa236285700d421#diff-10

بالنسبة لي يبدو وكأنه طريق مسدود في الوقت الحالي. سوف نستخدم اللياقة البدنية ل هل حقا مشروع كبير ، أحد أكبر مشاريع تكنولوجيا المعلومات الجارية حاليًا في ألمانيا/أوروبا. لكن لا يمكنني بيع هذا إذا كانت هذه الأشياء الأساسية لا تعمل بسرعة كافية:-/

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

لقد لاحظت للتو أن هناك إصدارًا جديدًا (2009-11-25) على GIT Hub تخلصت من التعليق وتم تغيير بعض خطوط التعليمات البرمجية أيضًا. سأجرب ذلك .....

تساعد في تقديرها بشدة

هتاف مارسيل

دان ،

شكرا لإجابتك. هذا ما نشرته على مجموعة Yahoo Fitnesse:

مرحبا،

لقد قمت للتو بتنزيل الإصدار "20100103" من الموقع وتجربته بنفس الإعداد. تحسن كبير! أنا سعيد جدا حول هذا الموضوع. الآن يمكنني الاستمرار في الإعداد الأولي ونأمل أن أقنع الجميع بذلك.

يعد تحسين الأداء مرئيًا أيضًا أثناء تنفيذ الاختبار - جيد جدًا. لا يمكنني رؤية أي فرق كبير بين اختبارات المستوى الأعلى والمتداخلة بعد الآن.

آمل أن يتصرف بقية النظام بنفس الطريقة :)

شكرا جزيلا للمساعدة السريعة. سأعود مع المزيد من التعليقات (أو المشكلات ؛-)) بعد الانتهاء من الإعداد الداخلي ويبدأ الناس العمل معها (المطورين والمختبرين).

هتاف مارسيل

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