Фреймворк Fitnesse работает очень медленно, когда глубина папки больше 4 - почему?

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

Вопрос

В настоящее время мы внедряем fitnesse в качестве инструмента тестирования для приемочного тестирования пользователей.Пока все идет хорошо.мы используем версию java "20091121".У нас возникли проблемы с папками глубиной более 4.

Мы настроили следующую структуру папок:

Настройка

Тестовый набор

content.txt + properties.xml (просто "!содержимое" внутри)

Использование2204

content.txt + properties.xml (просто "!содержимое" внутри)

Одиночный запрос 02

content.txt + properties.xml (просто "!содержимое" внутри)

Положительный тест

content.txt + properties.xml (просто "!содержимое" внутри)

Один взрослый с ребенком

здесь content.txt + properties.xml для фактического теста, содержащего 18 таблиц приспособлений

Когда мы запускаем fitnesse и переходим к самой глубокой папке ("OneAdultWithChild"), требуется около 10 секунд, пока страница не отобразится.Теперь, когда я перемещаю содержимое на один уровень иерархии выше (в "PositiveTest"), рендеринг страницы занимает 3 секунды.Когда я помещаю тестовый контент на второй уровень ("UseCase2204"), он отображается почти мгновенно.

То же самое происходит и во время выполнения теста.После нажатия кнопки "тест" тесты будут выполнены:

  • второй уровень:12 секунд
  • четвертый уровень:14 секунд
  • пятый уровень:40 секунд!(кроме того, требуется целая вечность, пока не появится кнопка "зафиксированный результат")

Теперь я застрял с этим.Нам нужна эта глубоко вложенная структура, чтобы сгруппировать все тесты.Но если не будет решения или обходного пути, мы не сможем использовать fitnesse, и я буду большим идиотом, продвигая фреймворк.В прошлом я добивался положительных результатов с fitnesse, но у нас не было таких глубоко вложенных структур.

Это было полезно?

Решение

Возможно, это не конкретное решение, но есть исправление одной проблемы с рендерингом виджета, над которой в настоящее время ведется работа: http://www.pivotaltracker.com/story/show/2200962

Существует также история о том, как переделать парсер, чтобы сделать его более эффективным и функциональным, но это требует значительных усилий.Неизвестно, когда над этим начнутся работы.

Другие советы

Вы пытались связаться по этому поводу с сопровождающими FitNesse?Это должно быть вашим первым действием.Вот их ссылка "Получить помощь": http://www.fitnesse.info/help .

В то же время, если вы можете, вы могли бы попробовать профилировать фитнес.Вполне возможно, что большая часть этого времени проводится в одном или двух местах, и можно найти подходящее обходное решение.Поскольку это проект с открытым исходным кодом, вы должны иметь возможность быстро ознакомиться с кодом.Во всяком случае, если ты этого захочешь.

Обновить: Просто подумалось, есть ли ваша тестовая иерархия на монтировании NFS?Не могли бы вы попробовать запустить его на "реальном" диске?

итак, мы провели некоторое профилирование.основное время из 40 секунд на загрузку страницы (именно загрузку, а не запуск) тратится следующими способами:

  • фитнес.викитекст.виджеты.WidgetRoot.визуализация
  • фитнес.викитекст.виджеты.WidgetRoot.GetVariable
  • fitnesse.wiki.PageData.initializeVariableRoot
  • фитнес.викитекст.виджеты.Переменный виджет.doRender

это похоже на логику замены переменных + рендеринг виджета используется постоянно :(

особенно "private void doRender()" в fitnesse.wikitext.widgets.VariableWidget вызывает у меня головную боль.там есть комментарий, в котором жалуются на сложность и на то, что все это должно быть переработано.

смотрите здесь

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

на данный момент мне кажется, что это тупик.мы бы использовали фитнес для в самом деле большой проект, один из крупнейших ИТ-проектов, реализуемых в настоящее время в Германии / Европе.но я не могу продать это, если такие базовые вещи не работают достаточно быстро :-/

я все еще надеюсь, что кто-нибудь знает, как это исправить, иначе мне придется покопаться в коде на рождество и попытаться сделать это немного быстрее.

я только что заметил, что на git hub есть более новая версия (2009-11-25), в которой удален комментарий, и некоторые строки кода также были изменены.я попробую это сделать.....

помощь высоко ценится

ваше здоровье марсель

dan,

спасибо за ваш ответ.это то, что я опубликовал в группе yahoo fitnesse:

привет,

я только что скачал релиз "20100103" с веб-сайта и попробовал его с теми же настройками.значительное улучшение!я очень рад этому.теперь я могу продолжить первоначальную настройку и, надеюсь, убедить в этом всех.

улучшение производительности также заметно во время выполнения теста - очень хорошее.я больше не вижу существенной разницы между тестами верхнего уровня и вложенными тестами.

я надеюсь, что остальная часть системы ведет себя таким же образом :)

большое спасибо за быструю помощь.я вернусь с дополнительными отзывами (или проблемами ;-)) после того, как начальная настройка будет завершена и люди начнут с ней работать (разработчики и тестировщики).

ваше здоровье марсель

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top