Привет всем для кого лень двигатель прогресса.
Те, кто посмотрят мои публикации, увидят очень странные вопросы с моей стороны и очень хорошие ответы со стороны комментаторов.
В компании, которой я работаю, использовали webforms и Web UI Telerik для написания менеджера по управлению продуктом(сервером и клиентами нижнего уровня). К добавок к этому использовали структуру из фреймсетов и фреймов для реализации web морды.
Об автоматизации тестирования на момент создания сиего чуда природы некто не задумывался, поэтому написали не очень удобное приложение с точки зрения написания UI тестов.
Следовательно прибавив к этому IIS Microsoft и самописный сервер( на WCF) для обработки запросов(не прошедший оптимизацию скорости работы и траты ресурсов) наша компания получила довольно таки громоздкую, прожорливую систему.
Я думаю многие опытные тестеры догадаются о подводных камнях, которые мешают написанию UI тестов. А именно это скорость работы, то есть ожидания(Wait) и все что с ними связано.
Я столкнулся с проблемой того что время транзакций по времени между IIS и самописным сервером(даже при выполнение тестов в UnitHTML) не являются постоянными и выполняются с очень большим разбросом времени( от 5 до 180 сек).
Это ужасно, так как перед запуском тестов я использую xml файл для конфигурирования браузера(в том числе и UnitHTML). В этом файле указываются все необходимые настройки плюс Wait-ы.
Тест зачастую валились из за истечения времени. Я долго боролся с этой проблемой пытаясь ее решить изящным способом. В результате опустился до рекурсии
public IList<IWebElement> FindToSetSystemParametersForSearch() { try { new WebDriverWait(driver, TimeSpan.FromSeconds(60)).Until(ExpectedConditions.ElementIsVisible(By.XPath("XPath"))); return this.driver.FindElements(By.XPath("XPath")); } catch (WebDriverTimeoutException e) { return FindToSetSystemParametersForSearch(); } }
Такое решение работает, и мне за такое надо по отрывать руки, так как это решение в корне не правильною Я это понял когда пришел утром и увидел что выполнение тестов зависло, чего и следовало ожидать.
Настала пора еще одного такого вопроса:
Кто то может что то подсказать по решению этой проблемы?