Сегодня мы опубликуем в открытом доступе доклад Игоря Хрола “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников”, который был признан лучшим на прошедшей онлайн-конференции для для специалистов по автоматизации тестирования Auto ConfeT&QA.
Когда мы говорим об автоматизации тестирования, чаще всего вспоминается Selenium, Microsoft Coded UI, QTP и другие аналогичные инструменты. Мы хотим воспроизводить действия ручного тестирования с максимальной точностью, чтобы можно было с уверенностью сказать, что тот или иной тест-скрипт повторяет какую-то часть сложившихся на проекте тестов. Когда же тестов становится чуть больше, то мы обнаруживаем, что наши тесты запускаются долго, работают нестабильно. После чего мы начинаем говорить о параллелизации, виртуализации, четырёхслойной архитектуре фреймворка и прочих жутко интересных вещах… Это всё очень хорошо, но главная цель где-то остаётся в стороне – контроль качества нашего продукта.
В своём докладе я попытаюсь слегка задать направление другой альтернативе: отойти от автотестов через пользовательский интерфейс в сторону более низкоуровневых, которые значительно быстрее и стабильнее. Если вас также волнует “переворачивание” пирамиды автоматизации тестирования, то приглашаю присоединиться к обсуждению этой сложной и важной темы.
Сегодня мы опубликуем в открытом доступе доклад Игоря Хрола “Можно ли перевернуть пирамиду?” – автоматизируем тестирование с меньшим числом посредников”, который был признан лучшим на прошедшей онлайн-конференции для для специалистов по автоматизации тестирования Auto ConfeT&QA.
Когда мы говорим об автоматизации тестирования, чаще всего вспоминается Selenium, Microsoft Coded UI, QTP и другие аналогичные инструменты. Мы хотим воспроизводить действия ручного тестирования с максимальной точностью, чтобы можно было с уверенностью сказать, что тот или иной тест-скрипт повторяет какую-то часть сложившихся на проекте тестов. Когда же тестов становится чуть больше, то мы обнаруживаем, что наши тесты запускаются долго, работают нестабильно. После чего мы начинаем говорить о параллелизации, виртуализации, четырёхслойной архитектуре фреймворка и прочих жутко интересных вещах… Это всё очень хорошо, но главная цель где-то остаётся в стороне – контроль качества нашего продукта.
В своём докладе я попытаюсь слегка задать направление другой альтернативе: отойти от автотестов через пользовательский интерфейс в сторону более низкоуровневых, которые значительно быстрее и стабильнее. Если вас также волнует “переворачивание” пирамиды автоматизации тестирования, то приглашаю присоединиться к обсуждению этой сложной и важной темы.
Возможно кто-нибудь поможет разобраться со следующей проблемой.
Во время разработки сценария решил воспользоваться IF Controller-ом для присвоения переменным различных значений в зависимости от условия. Условие: "${Owner} == _значение_". Внутрь Если-контроллера засунул Parametrized Controller и Module Controller (ссылающийся на соответствующий запрос). Ожидается, что в случае выполнения условия Параметрирующий контроллер будет присваивать описанным в User Defined Variables переменным некоторые значения, а далее будет выполняться соответствующий запрос.
На деле имеет место следующее: значения переменным присваиваются независимо от выполнения условия, а запрос НЕ выполняется независимо от выполнения условия. Вне IF Controller-а запрос работает без проблем.
У меня запущено много копий msiexec.exe и мне необходимо найти определённую копию. Это я сделал, но возникает проблема с том, что если я передаю найденную строчку дальше в код, то возникает ошибка. Т.е. понятно, что не инициализируется Sys. Можно как-то это обойти или надо искать другие способы поиска процесса?
var i;
var C;
var FindInstaller = Sys.FindAll("ProcessName", "msiexec",1)
FindInstaller=VBArray(FindInstaller).toArray();
C=FindInstaller.length;
for (i=0; i<C;i++)
{
{
var TestCount=FindInstaller[i].IsOpen;
if (TestCount == true)
{
Log.Message(TestCount);
Log.Message(FindInstaller[i].FullName);
var NCopyMsiexec = FindInstaller[i].FullName
}
}
}
Sys.Refresh();
var TestStr2 = (NCopyMsiexec);
Log.Message("TestStr2: "+ TestStr2);
//Runner.Stop() TestStr2.Window("MsiDialogNoCloseClass", "Window Caption1", 1).Window("Button", "&Yes").Click();
Runner.Stop();