Главная > web, Программирование > Ghost.py: Реализация sleep с обработкой событий.

Ghost.py: Реализация sleep с обработкой событий.

Вообще мне Ghost.py не очень пока нравится. Судя по его версии (у меня Ghost.py 0.1b2) - достаточно сырой продукт. Нет некоторыз полезных shortcut'ов, некоторые фичи работают не очень хорошо (например, click - генерирует только JS-событие click, а для ExtJS надо бы mouseDown, для полной эмуляции клика мышкой - ещё и mouseUp). Называть пакет ghost и добавлять в него модуль ghost - тоже не лучшая идея, на мой взгляд (ну их, эти name collisions). Нет функции sleep, может это и плохо использовать именно sleep, но иногда так гораздо удобней, а в случае, если это будет работать плохо, - можно и переделать.

Но в целом, т.к. я не работал с другими системами web-тестирования (например, selenium), само написание тестов понравилось... Это же какая-то магия, когда ты сидишь, а тут за тебя что-то кликает, формы заполняет и т.п. Даже закралась мысль переквалифицироваться в QA.

Немного отошёл от сути. На самом деле pull request с фичей sleep'а висит почти месяц уже как, но автор что-то не торопится мерджить и выпускать новую версию. А посему, вот небольшой helper для реализации sleep в Ghost.py:

import time

from ghost import ghost

def ghost_sleep(sleep):
"""Sleep and process events."""
start = time.time()
ghost.Ghost._app.processEvents()
while time.time() - start < sleep: time.sleep(0.01) ghost.Ghost._app.processEvents()[/code]

Update

Отписался в pull request'е что фича хорошая. Вчера автор вмерджил её, вероятно, в следующем релизе будет возможность использовать внутри testcase self.ghost.sleep(time).

Пожалуйста, оцените полезность и качество данной статьи. Одна звезда - плохо, 5 - хорошо.
1/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.2/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.3/5. Мы будем признательны, если вы напишете комментарий с причиной низкой оценки.4/5.5/5. (2 голосов, средний: 4,50 из 5)
Загрузка...
  1. QA
    1 июня 2013 в 15:43 | #1

    Возможно, selenium будет более достойной альтернативой. Как минимум, это более популярное решение для автоматизации тестирования. :)

  1. Пока что нет уведомлений.