Comments 18
Selenium великолепен. Единственный напрягающий момент — скорость работы.
Запустил тесты — пошел курить или пить чай. Это слегка отпугивает от частого запуска тестов.
Хотя, дело может быть в том, что я тестировал его на нетбуке с AMD E-450, 2x1.6GHz. Хочу позже попробовать его на чём-нибудь мощнее.
Запустил тесты — пошел курить или пить чай. Это слегка отпугивает от частого запуска тестов.
Хотя, дело может быть в том, что я тестировал его на нетбуке с AMD E-450, 2x1.6GHz. Хочу позже попробовать его на чём-нибудь мощнее.
Причин может быть много, в любом случае Selenium не может работать быстрее чем отвечает сервер, у нас в проекте сервер как раз и является узким местом когда натравливливаешь на него Selenium-тесты хотя бы в 8-10 потоков. Приходится оптимизировать сами тесты, переиспользовать сущности в БД и т.п.
Когда оплата зависит от того, сколько ты успел сделать — отмазки отпадают сами собой. И уже сам считаешь кропотливо каждую потраченную минуту.
Вы знаете, и пра… Стоп.

На самом деле, я даже «плюсанул» ваш комментарий. Он этого стоил хотя бы за XKCD. =)
Раньше, когда какое-то время работал на фиксированной ставке, я тоже на эту тему шутил. И про тесты тоже. Но сейчас для меня эти шутки не особо актуальны, как и для многих других программистов, я уверен.
Ещё из той же оперы: а что ты успеваешь сделать, покатечёт твой любимый кетчуп запускается твоя любимая IDE?

На самом деле, я даже «плюсанул» ваш комментарий. Он этого стоил хотя бы за XKCD. =)
Раньше, когда какое-то время работал на фиксированной ставке, я тоже на эту тему шутил. И про тесты тоже. Но сейчас для меня эти шутки не особо актуальны, как и для многих других программистов, я уверен.
Ещё из той же оперы: а что ты успеваешь сделать, пока
Selenium великолепен. Единственный напрягающий момент — скорость работы.
Запустил тесты — пошел курить или пить чай. Это слегка отпугивает от частого запуска тестов.
Учитывая, что Selnium-тесты эмулируют работу пользователя – то в сравнении с этим скорость работы WebDriver – значительно выше.
И да, скорее всего тут все упирается в железо и скорость передачи по сети
Но, еще очень важны и другие оптимизации, например:
1. Не закрывать браузер после каждого теста
2. Иногда применять JavaScript для получения той информации, которая посредством WebDriver получить долго
Пример:
Известно, что WebDriver работает по протоколу REST и HTTP, который сам по себе не самый быстрый (зато понятный и универсальный).
Если мы попробуем найти все элементы на страницы, то REST вернет лишь ссылки на эти элементы, а не всю информацию целиком.
Потом, если мы захотим вывести, например имя тэга и значение Displayed – то будет сделано по два HTTP запроса к серверу на каждый элемент.
И это хорошо, если сервер развернут локально, а иначе – тормоза будут ощущаться очень сильно
1. Не закрывать браузер после каждого теста
Да, я так и делал. И сервер с приложением развёрнут был локально.
Хочу заметить, что вызовы JavaScript передаются через тот же REST интерфейс, так что прирост скорости местами будет сомнительный.
P.S. Уточнение, за исключением когда приходится долго обходить дерево и атрибуты :)
P.S. Уточнение, за исключением когда приходится долго обходить дерево и атрибуты :)
Зависит от ситуации, конечно.
Если два вызова Вебдрайвера заменить на один JavaScript – то выигрыш будет действительно сомнительным.
А вот если сотню на один – то вполне можно.
Тут есть другое дело, что при такой оптимизации, решение на JavaScript может вызывать меньшее доверие и некоторые вызовы могут вести себя по иному, чем это делает реальный пользователь.
В таких обстоятельствах нужно просто учитывать конкретную ситуацию и конкретный код
Еще пример.
На странице Линкедина есть блок добавления группы пользователей. У каждого пользователя есть своя кнопка «Добавить». Как показывает практика, один вызов на JQuery с «одновременным» нажатием всех кнопок работает на порядок быстрее и не портит конечный результат.
Если два вызова Вебдрайвера заменить на один JavaScript – то выигрыш будет действительно сомнительным.
А вот если сотню на один – то вполне можно.
Тут есть другое дело, что при такой оптимизации, решение на JavaScript может вызывать меньшее доверие и некоторые вызовы могут вести себя по иному, чем это делает реальный пользователь.
В таких обстоятельствах нужно просто учитывать конкретную ситуацию и конкретный код
Еще пример.
На странице Линкедина есть блок добавления группы пользователей. У каждого пользователя есть своя кнопка «Добавить». Как показывает практика, один вызов на JQuery с «одновременным» нажатием всех кнопок работает на порядок быстрее и не портит конечный результат.
А улучшения в работе с регулярными выражениями планируются?
Sign up to leave a comment.
Путь к Selenium 3.0