Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Дополнительные ождания в тестах


(lexand) #1

implicitWait - не хватает для нормального прохода теста

приходится местами вставлять костыли в виде sleep(...)

пока что ставили 1 с. Знали что вылещет и вылезло - на некоторых машинах одной секунды мало надо увеличивать.

На сколько правильно расставлять слипы в тестах? есть какойто другой гарантированный способ?

(мы используем PHPUnit и Selenium2TestCase, который с вебдрайвер, может имеет смыл вообще все селеним тесты на джаве писать ? )

 


(Mykhailo Poliarush) #2

вставлять sleep в автотесты, это всеравно что хардкодить в программировании

т.е. это плохо, так лучше не делать

для этого есть как неявные ожидания, которые вы уже используете

так, есть и явные ожидания, которые реализуются классов WebDriverWait

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


(lexand) #3

исходя из вашего сообщения я так понял что ну его нафиг тот PHPUnit
и лучше пользоваться тем у чего есть полная поддержка WebDriver


(jackkainov) #4

ИМХО, Каждый случай индивидуален) Просто как раз в Вашем случае в WebDriverWait есть инструменты, которые не просто "остановят" весь процесс на какое-то время, а будут ожидать появления некоторого элемента на странице в течение, например, максимум 10 секунд и каждые 5 мл сек перепроверять не появился ли он. То есть ресурсы и время прохождения теста расходуются эффективнее.


(Mykhailo Poliarush) #5

просто надо понимать, что уже есть функциональность, которая уже реализована и ее можно использовать

а дальше вы сами принимайте решение, хотите вы ее использовать

или писать свой велосипед


(lexand) #6

вот это все

https://github.com/sebastianbergmann/phpunit-selenium/blob/master/Tests/Selenium2TestCaseTest.php

что есть для вебдрайвера в в PHPUnit

я все больше убеждаюь что нужно таки на джаву переходить


(Mykhailo Poliarush) #7

ну чего сразу на дваву, хотя все новшества появляются сразу там

вы можете посмотреть разные реализации php bindings для selenium webdriver и посмотреть как там реализован класс WebDriverWait

примеры php bindings для selenium webdriver

https://github.com/facebook/php-webdriver

https://github.com/Nearsoft/PHP-SeleniumClient

https://github.com/Element-34/php-webdriver/tree/master/PHPWebDriver

http://code.google.com/p/php-webdriver-bindings/

https://github.com/chibimagic/WebDriver-PHP/

 

примеры реализации WebDriverWait

https://github.com/Element-34/php-webdriver/blob/master/PHPWebDriver/WebDriverWait.php

https://github.com/Nearsoft/PHP-SeleniumClient/blob/master/SeleniumClient/WebDriverWait.php


(lexand) #8

огромнейшее спасибо