RobotFramework и Jython: как исследовать производительность

#java #jython #robotframework

#java #jython #robotframework

Вопрос:

Я унаследовал платформу robot framework, которая использует jython и определяет все его ключевые слова на Java.

Он работает в темпе, который я мог бы описать как, ну, «величественный».

Подключив yourkit к шоу, я вижу — какой сюрприз — интерпретатор python от jython.

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

Ответ №1:

Вы могли бы проверить, определяют ли ваши наборы / тесты ненужные тайм-ауты. Недавно мы заметили, что использование тайм-аутов вызывает довольно большие накладные расходы (в основном потому, что тайм-ауты довольно грубо реализованы в самом RF.)

Кроме того, я думаю, что требуется некоторое дальнейшее профилирование. Пара предложений:

  • Собственный репортер времени Robot Framework [1]. Используя это, вы можете увидеть, какие наборы / тесты / ключевые слова занимают больше всего времени, и, возможно, также, какие ключевые слова библиотеки неоправданно медленные.
  • Вы также можете попробовать профилирование с помощью профилировщика Python [2], который также реализован в Jython. Теоретически, вы должны быть в состоянии хотя бы видеть, тратится ли большая часть времени на код фреймворка или библиотечный код.

[1] http://robotframework.googlecode.com/hg/tools/times2csv/doc/times2csv.html?r=2.6.3

[2] http://docs.python.org/library/profile.html